使用 FFmpeg 复制多个 PGS 字幕轨道

使用 FFmpeg 复制多个 PGS 字幕轨道

我使用的是 Debian 9。我在 PGS 中有一个包含多个音轨和字幕的文件。我想将视频传递给 h265 并将所有音轨和字幕原封不动地保存到 .mkv 容器中,因为据我所知,mp4 不支持基于图像的字幕。

我使用的命令是:

ffmpeg -i entrada.264.mkv -c:v libx265 -f matroska -map 0 salida.265.mkv

但是我在 ffmpeg 中收到此错误:

[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 6 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 7 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 8 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 9 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 10 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 11 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Only SUBTITLE_ASS type supported.
Subtitle encoding failed

并且,如果想一次复制一张,只需刻录第一个即可。

这里是相关文件的数据:

总之:

预期结果:将视频文件重新编码为 h265 并复制所有音频和字幕而不进行修改,或者将它们刻录在视频中以便能够选择使用哪一个。

得到的结果:由于缺少字幕参数而导致错误。

有没有办法直接从 ffmpeg 执行此操作,而不必逐个提取字幕,然后通过 mkvmerge 之类的程序将它们添加到视频中?

答案1

流复制(重新混合)除视频之外的所有内容:

ffmpeg -i entrada.264.mkv -map 0 -c copy -c:v libx265 salida.265.mkv

-map 0包括从输入到输出的所有流,而不是依赖于默认流选择行为每个流类型仅包含一个流。

答案2

这不是错误。这是警告消息。-loglevel warning返回消息:

ffmpeg -i entrada.264.mkv -loglevel warning -c:v libx265 -f matroska -map 0 salida.265.mkv

-loglevel error抑制它:

ffmpeg -i entrada.264.mkv -loglevel error -c:v libx265 -f matroska -map 0 salida.265.mkv

我测试了我自己的输出mkv文件的所有字幕字幕编辑并且它们都完好无损。我认为显示此警告只是为了提醒您,如果您决定稍后重新编码这些字幕。

相关内容