[FFmpeg-user] FFMPEG 3.3.2 audio copy conversion question

Moritz Barsnick barsnick at gmx.net
Fri Oct 13 01:28:13 EEST 2017

On Wed, Oct 11, 2017 at 20:29:22 +0000, Adam Gendron wrote:
> for %%D in (*.mkv *.mp4) do ffmpeg -report -i "%%D" -filter_complex "[0:v]yadif=1:-1:1,fps=60000/1001;[0:a]aresample=matrix_encoding=dplii" -map 0:0 -c:v libx264 -preset veryslow -crf 21 -tune film -map 0:1 -c:a:0 copy -map 0:1 -c:a:1 aac -ac:a:1 2 -b:a:1 128k -cutoff:a:1 18000 -map 0:2 -c:s copy -movflags +faststart -threads 1 "%%~nD [480p x264].mp4"

Let me quote the important thing:
> ... -map 0:0 ...  -map 0:1 -c:a:0 copy -map 0:1 -c:a:1 aac -ac:a:1 2 -b:a:1 128k ...

You need to map the outputs of the filter chains to specific "tagd",
and explicitly map these "tags" into the output file:

$ ... -filter_complex "[0:v]yadif=1:-1:1,fps=60000/1001[v];[0:a]aresample=matrix_encoding=dplii[a]" \
  ... -map "[v]" -map 0:a -c:a:0 copy -map "[a]" -c:a:1 aac -ac:a:1 2 -b:a:1 128k ...

(Your filter probably wouldn't even have been applied to your video,
thanks to your mishap, as you were also mapping the input 0:0 instead
of the filter's video output. And you were mixing 0:v, 0:a with 0:0 and
0:1, although you presumably meant the same thing - that's confusing.)

> for %%D in (*.mkv *.mp4) do ffmpeg -report -i "%%D" -map 0:0 -map 0:1 -map 0:1 -map 0:2 -c:v libx264 -preset veryslow -vf "yadif=1:-1:1,fps=60000/1001" -crf 21 -tune film -c:a:0 copy -c:a:1 aac -ac:a:1 2 -b:a:1 128k -cutoff:a:1 18000 -af:a:1 aresample=matrix_encoding_dplii -c:s copy -movflags +faststart -threads 1 "%%~nD [480p x264].mp4"

What's this now? Your input suddenly has two audio streams? And you
changed the order of parameters?


More information about the ffmpeg-user mailing list