如何转换和修复 MPEG-TS(DVB-S 捕获)以实现更好的播放?

如何转换和修复 MPEG-TS(DVB-S 捕获)以实现更好的播放?

我有很多从 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 列为可接受的输入。

相关内容