ffmpeg 添加所有音轨到视频转换(mkv)
ffmpeg add all audio tracks to video conversion (mkv)
我有一个脚本可以输入视频文件(通常是 avi 或 mp4)并将其转换为 "lower quality" 针对网络流媒体优化的 mkv 视频。
我用的ffmpeg命令是这个:
ffmpeg -fflags +genpts -i file:"$input" -sn -codec:v:0 libx264 -force_key_frames expr:gte\(t,n_forced*5\) -vf "scale=trunc(min(max(iw\,ih*dar)\,1280)/2)*2:trunc(ow/dar/2)*2" -pix_fmt yuv420p -preset superfast -crf 23 -b:v 1680000 -maxrate 1680000 -bufsize 3360000 -vsync vfr -profile:v high -level 41 -map_metadata -1 -threads 8 -codec:a:0 libmp3lame -ac 2 -ab 320000 -af "aresample=async=1" -y "$output"
问题是这个命令只包含了我视频的第一个音轨。我有一些双语视频(意大利语和英语),我想在其中包含这两种语言。
是否有一个简单的 ffmpeg 命令选项可以自动包含在视频中找到的所有音轨?
添加 -map 0:a
以包含所有音频流。
我有一个脚本可以输入视频文件(通常是 avi 或 mp4)并将其转换为 "lower quality" 针对网络流媒体优化的 mkv 视频。
我用的ffmpeg命令是这个:
ffmpeg -fflags +genpts -i file:"$input" -sn -codec:v:0 libx264 -force_key_frames expr:gte\(t,n_forced*5\) -vf "scale=trunc(min(max(iw\,ih*dar)\,1280)/2)*2:trunc(ow/dar/2)*2" -pix_fmt yuv420p -preset superfast -crf 23 -b:v 1680000 -maxrate 1680000 -bufsize 3360000 -vsync vfr -profile:v high -level 41 -map_metadata -1 -threads 8 -codec:a:0 libmp3lame -ac 2 -ab 320000 -af "aresample=async=1" -y "$output"
问题是这个命令只包含了我视频的第一个音轨。我有一些双语视频(意大利语和英语),我想在其中包含这两种语言。
是否有一个简单的 ffmpeg 命令选项可以自动包含在视频中找到的所有音轨?
添加 -map 0:a
以包含所有音频流。