使用 ffmpeg 转换 SEC 文件

Posted

技术标签:

【中文标题】使用 ffmpeg 转换 SEC 文件【英文标题】:Using ffmpeg to convert an SEC file 【发布时间】:2019-02-24 04:09:32 【问题描述】:

我需要将 SEC 文件转换为我可以分享和/或上传到 Youtube 的任何视频格式。 MP4等

我是所有终端的新手。我试过了:

ffmpeg -i video.sec video.mp4

ffmpeg -i video.sec -bsf:v h264_mp4toannexb -c:v 复制 video.avi

ffmpeg -i video.sec -b 256k -vcodec h264 -acodec aac video.mp4

我不明白这些是什么意思,它们只是我在网上找到的示例。但是,无论我尝试什么都会返回此错误:

处理输入时发现无效数据

有什么想法吗?谢谢!

【问题讨论】:

秒?那是什么格式? 这是三星专有格式,此文件来自安全摄像头。 【参考方案1】:

我必须添加以下选项,以便跳过 SEC 的自定义标头。

-skip_initial_bytes 48

【讨论】:

【参考方案2】:

我知道这是旧的,但我也试图弄清楚这一点,最终对我有用的是这个命令。

./ffmpeg -f h264 -i INPUT.sec -filter:v "setpts=4*PTS" OUTPUT.avi

-f h264 是我缺少的部分。 -filter:v "setpts=4*PTS" 部分是将其减慢到原始速度。您还可以将末尾的 .avi 更改为最适合您的格式。

我希望这可以帮助某人:)

【讨论】:

【参考方案3】:

好的,只是为了清理一些最近的线程......

这里使用的三星 DVR 是 SRD-440。 RB 好心给我发了一个文件来测试,他给我发了一个 .BU 文件和一个关联的 .db2 文件。这有点令人惊讶,因为在所有旧的三星 DVR 中,.bu 文件只能在 DVR 中播放。我在这里提到了这个,https://spreadys.wordpress.com/2014/07/21/ifsec-samsung-exports/

看来三星已经流行起来了,BU 文件现在可以播放了,因为它是符合标准配置文件的 H264/AVC 流。我已经更新了上面提到的 IFSEC 帖子以突出这一变化。

回到 RB 的直播,挑战在于如何让这些文件以 WMV 格式显示。它们都是基于现场的,分辨率为 704×288。

播放速度由三星软件控制,使用 .db2 文件。因此,视频流中的元数据和时间信息是错误的。在尝试纠正此问题时,这会导致速度问题和质量问题。

因此,我发现有必要在输入文件之前强制输入速率并生成新的演示时间戳

以下 FFmpeg 字符串完成了这项工作……

ffmpeg -r 12 -fflags genpts -i FILE.bu -vf scale=704:528 -sws_flags lanczos -q:v 2 FILE.wmv

请记住,这是为了预览 - 由于缩放、插值方法和 WMV 压缩,分析的完成方式会有所不同!

由于 RB 可能在一个文件夹中可能有很多 .bu 文件,因此我将其放入一个批处理文件中,以便在几分钟内对全部文件进行转码……更多关于批处理文件的信息将在新帖子中发布!

https://spreadys.wordpress.com/2014/07/21/ifsec-samsung-exports/

ffmpeg -i (name of file).sec (name of final file).mp4

ffmpeg -i (name of file).sec -filter:v "setpts=3.3*PTS"  (name of final_file).mp4

【讨论】:

以上是关于使用 ffmpeg 转换 SEC 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ffmpeg 将 .srt 文件转换为基于 ttml 的 xml 字幕文件?

FFmpeg 常用转换命令

使用python+ffmpeg批量转换格式

FFmpeg 转换的 mp4 文件无法在 Quicktime 中加载

使用啥 ffmpeg 命令将无符号整数列表转换为音频文件?

请问如何使用 ffmpeg 将一张 720*576 的JPEG 图片 转换为 1帧 的mpg文件?