我有很多从 DVB-S 采集卡捕获的 MPEG-TS 视频文件(.TS 容器中带有 AC3 或 MP3 的 H.264 视频)。
当我播放这些视频时,在视频中搜索的速度比其他文件慢得多(即跳过 30 秒等)。
我不确定问题出在 H.264 编码(参考帧数?)还是 MPEG-TS 容器,或者 MPEG-TS 文件是否包含同步错误等。
有人有转换和修复这些文件的良好工作流程吗?
答案1
查找间隔取决于传输流发送同步信息的频率。这实际上取决于它是如何创建的——MPEG TS 允许单独设置此间隔,而对于您来说,它可能只是缺失了。我不确定修复现有的 TS 文件是否足够简单,所以我宁愿将传输流转换为更面向用户的容器,例如:
- 美军
- MP4
- 金属氧化物变阻器
请注意,AVI 不是一个选项,因为它对 h.264 的支持不太好。
你的第一个选择是尝试复制原始音频和视频比特流。使用FFmpeg,这很简单:
ffmpeg -i input.ts -c:v copy -c:a libfaac out.mp4
你可以在 Windows 上安装 FFmpeg下载版本,在 OS X 中通过自制使用brew install ffmpeg
,并在 Linux 上从源代码编译。
如果您想减小视频的大小,可以尝试设置恒定速率因子(类似于“恒定质量”)并使用最流行的 h.264 编码器 x264 对其进行重新编码:
ffmpeg -i input.ts -c:v libx264 -crf 24 -c:a libfaac out.mp4
将 CRF 设置为 19 到 25 之间的任意值,甚至更大。值越大,质量越差,但文件大小越小。
答案2
您可能会看看 VideoRedo (http://www.videoredo.com)。我曾用它来转换其他类型的流媒体视频。它确实将 .ts 列为可接受的输入。