这只是一个例子,有许多 mkv 文件的循环,只需要选择一首意大利语曲目和一首英文曲目。在这种情况下有 2 个音频
这是调试信息:
电影名称:La.casa.nera.1991.FULL.HD.1080p.DTS+AC3.ITAENG.SUB.LFi.mkv
Trovate 3 跟踪 DTS e 3 跟踪 AC3:
计数 DTS 曲目:3
计数 AC3 曲目:3
Stream #0:1(ita): Audio: dts (DTS), 48000 Hz, stereo, fltp, 1536 kb/s (default)
Stream #0:2(ita): Audio: ac3, 48000 Hz, stereo, fltp, 640 kb/s
Stream #0:3(ita): Audio: dts (DTS), 48000 Hz, stereo, fltp, 1536 kb/s
Stream #0:4(ita): Audio: ac3, 48000 Hz, stereo, fltp, 640 kb/s
Stream #0:5(eng): Audio: dts (DTS), 48000 Hz, stereo, fltp, 1536 kb/s
Stream #0:6(eng): Audio: ac3, 48000 Hz, stereo, fltp, 640 kb/s
Preferenza sorgente audio selezionata : ac3
音频 ID ITA:2 4
音频 ID ENG : 6
问题是音频 ID ITA 给我 2 个结果,命令 ffmpeg 不起作用。
$FFMPEG_BIN -y \
-i $MOVIE_INPUT"/"$FILE_NAME \
-i /home/mich/Eagle-Horror.png \
-filter_complex "color=s=1920x1080:c=black [base] ; \
[base][0:v] overlay=x=(main_w-overlay_w)/2:y=(main_h-overlay_h)/2, drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf: text='%{pts \: hms}': x=20: y=h-(2*lh): fontcolor=white: box=0: boxcolor=0x00000000@1: fontsize=12, drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf: text='$MOVIE_NAME - $FILM_TIME - Disponibile in multilingua': x=25: y=h-(2*lh)-20: fontcolor=white: box=0 [over];\
[over][1:v] overlay=main_w-overlay_w-40:40" \
-pix_fmt yuv420p \
-vsync 1 \
-threads 0 \
-map 0:0 -c:v h264_nvenc -profile:v high -preset:v slow -level 4.1 -vb 4500k -maxrate 4700k -bufsize 6000k -r 23.976 -map_metadata -1 -map_chapters -1 -t $FILM_DURATION -metadata:s:v:0 language=ita \
-map 0:"$AUDIO_ID_ITA" -c:a aac -ab 640k -ac 5 -metadata:s:a:0 language=ita \
-map 0:"$AUDIO_ID_ENG" -c:a aac -ab 640k -ac 5 -metadata:s:a:1 language=eng \
$MOVIE_OUTPUT"/"$FILE_NAME-new.mp4