ffmpeg条件复制或编码音频流

时间:2017-10-31 21:30:54

标签: ffmpeg

我的目标是在Plex中直接播放我的所有内容。 为此,我必须有条件地将一些音频和视频流重新编码为一种格式,无需服务器即可进行转码即可播放。

我目前正在使用HanbrakeCLI将视频编码为x264,将音频编码为兼容格式。

我使用" - aencoder copy --audio-fallback ac3"选项,如果是支持的格式,则复制音频流,即aac / ac3 / eac3 / truehd / dts / dtshd / mp3 / flac,或者如果不支持格式则编码为ac3。

我想从HandbrakeCLI切换,因为它不支持复制视频流,有时我的媒体有一个很好的视频流,但音频只需要编码,例如带有VC1视频和WMAPro音频流的WMV。

HandbrakeCLI的命令行如下所示:

    // Create the HandbrakeCLI commandline and execute
    // https://handbrake.fr/docs/en/latest/cli/cli-guide.html
    string commandline = $"--input \"{inputname}\" --output \"{outputname}\" --format av_mkv --encoder x264 " +
                         $"--encoder-preset medium --quality {Settings.Default.VideoEncodeQuality} --subtitle 1,2,3,4 --audio 1,2,3,4 " +
                         $"--aencoder copy --audio-fallback ac3";

在ffmpeg中我会使用:

    // Create the FFmpeg commandline and execute
    // https://trac.ffmpeg.org/wiki/Encode/H.264
    string commandline = $"-i \"{inputname}\" -c:v libx264 -crf {Settings.Default.VideoEncodeQuality} -preset medium -c:a copy -f matroska \"{outputname}\"";

是否有相当于HandbrakeCLI" - audio-fallback ac3"在ffmpeg?

即。我想要将视频编码为x264,如果轨道是aac或ac3或eac3或truehd或dts或dtshd或mp3或flac,则复制所有音轨,如果没有,则编码为ac3,同时还复制所有字幕和章节原样。

0 个答案:

没有答案