使用 avconv 并保留音频流和字幕

por*_*rts 4 avconv

我正在尝试对 mkv 文件进行编码,同时保留音频流和字幕。这是我正在使用的命令:

avconv -i inputfile.mkv -c:v mpeg2video -acodec copy - scodec copy -b:v 5000k -maxrate:v 6000k -bufsize 1835k outputfile.mkv
Run Code Online (Sandbox Code Playgroud)

问题是我的 mkv 包含不止一个音频流和字幕。并且使用 upper 命令输出文件只包含默认标记的音频流和字幕。是否有任何额外的命令来复制所有包含的音频流和字幕?

slh*_*hck 5

要强制 FFmpeg/Libav 将所有输入流复制到输出,请使用该-map 0选项。

ffmpeg -i in.mkv \
       -map 0 -c copy \
       -c:v mpeg2video -qscale:v 2 \
       out.mkv
Run Code Online (Sandbox Code Playgroud)

FFmpeg 和 Libav 在这里的行为应该相同。请参阅FFmpeg wiki 上的如何使用 -map 选项。在此命令行中尝试建议的“ -qscale:v 2 ”选项,它应该会提供出色的结果,或者只需保留您自己帖子中指定的比特率选项。