使用 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 字幕文件?