【问题标题】:ffmpeg: recode transport stream (MPEG2 or h264) to another transport stream (h264)ffmpeg:将传输流(MPEG2 或 h264)重新编码为另一个传输流(h264)
【发布时间】:2017-11-16 13:54:25
【问题描述】:

目前,我正在为一项我想在 Synology DiskStation 上使用 perl 脚本执行的任务而苦苦挣扎。 我不确定要使用的 ffmpeg 命令。 实际上,DiskStation 支持硬件编码,它对 MKV 文件的编码效果很好。唯一缺少的是:我不想编码为 MKV,因为很难使用我的其他切割软件处理这些文件。 因此,我想再次编码为传输流。 我现在正在使用这个命令:

sudo ffmpeg -hide_banner -loglevel verbose -vaapi_device /dev/dri/renderD128 -i my_input_file.ts -map 0:v -map 0:a -c:v h264_vaapi -vf yadif,format=nv12,hwupload -y -b:v my_bitrate my_output_file.ts

现在,我总是得到一个错误:

Automatic encoder selection failed for output stream #0:1. Default encoder for format mpegts (codec mp2) is probably disabled. Please choose an encoder manually.
Error selecting an encoder for stream 0:1

在我看来,它似乎没有意识到我想使用 h264 编码而不是传输流的默认编码器。

对此有何想法?

解释:

  • 完成映射是为了摆脱不受支持的流,例如图文电视,并减少一些流,因为我通常会获得一种以上的语言流。
  • 需要 sudo,因为在 Synology 上仅允许 root 使用 vaapi 设备(可能在所有系统上)

如果有人能在这方面帮助我,那就太好了。

谢谢, 马蒂亚斯

【问题讨论】:

    标签: ffmpeg synology


    【解决方案1】:

    错误与音频流有关。默认编码器是 mp2,但您的构建似乎没有它。添加-c:a aac(更安全)或-c:a copy。如果 ffmpeg 的 MPEG-TS muxer 支持输入音频编解码器,则后者将起作用。

    【讨论】:

    • 太好了,非常感谢!那成功了。虽然我当然知道 mp2 编解码器,但我只是没有考虑到音频可能有问题的可能性。
    猜你喜欢
    • 2011-08-20
    • 2016-11-27
    • 2019-12-31
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    • 2015-02-23
    • 2011-08-26
    • 1970-01-01
    相关资源
    最近更新 更多