[FFmpeg-user] Issue with using amerge & pan to map & mix

Christian Johannesen chrisjohannesen at gmail.com
Wed Mar 18 23:01:09 CET 2015


I am trying to utilize the amerge & pan filters to combine the audio tracks
of an MXF & MOV to create a 10 channel mix from them. I am trying to mix
both channels from the stereo WAV to output channels 3 & 4, if I do this, I
get silent audio on the output. If I map the inputs and apply no mixing, I
get audio output. If I just mix Stereo WAV's input channels to two channel
WAV, that results in a file with audio. It only seems to be that when I
combine mapping and mixing, I get no audio output.

ffmpeg D:\MIX\VIDEO.mxf -i D:\MIX\Stereo_AUDIO.wav -filter_complex
"[0:1][0:2][1:0]amerge=inputs=3,pan=10c|c0=c0|c1=c1|c2<c16+c17|c3<c16+c17|c4=c4|c5=c5|c6=c6|c7=c7|c8=c8|c9=c9[a1]"
-map "[a1]" -acodec pcm_s24le -timecode 00:59:45;02
D:\MIX\VIDEO_audio_only.mov

ffmpeg version N-70803-g0f16dfd Copyright (c) 2000-2015 the FFmpeg
developers
  built with gcc 4.9.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads
--enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r
--enable-gnutls --enable-iconv --enable-libass --enable-libbluray
--enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme
--enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
--enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr
--enable-libspeex --enable-libtheora --enable-libtwolame
--enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc
--enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp
--enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid
--enable-lzma --enable-decklink --enable-zlib
  libavutil      54. 20.100 / 54. 20.100
  libavcodec     56. 28.100 / 56. 28.100
  libavformat    56. 25.101 / 56. 25.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 12.100 /  5. 12.100
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
[mxf @ 00000000003425e0] invalid KAGSize 0 - guessing 1
[mxf @ 00000000003425e0] invalid KAGSize 0 - guessing 1
[mxf @ 00000000003425e0] invalid KAGSize 0 - guessing 1
[mxf @ 00000000003425e0] invalid KAGSize 0 - guessing 1
Input #0, mxf, from 'D:\MIX\VIDEO.mxf':
  Metadata:
    uid             : 56eacd47-9dc1-df11-b78c-00d0280b114c
    generation_uid  : 1eebcd47-9dc1-df11-bddb-00d0280b114c
    company_name    : Omneon Inc.
    product_name    : Omneon Media Subsystem
    modification_date: 2010-09-16 14:18:30
    product_version : 5.5.0.0.release
    application_platform: Omneon Media Api
    product_uid     : 00000000-0000-0010-8000-050e0b010602
    material_package_umid:
0x060A2B340101010501010D2313006411B021CE479DC1DF11989800D0280B114C
    timecode        : 00:59:45;02
  Duration: 00:24:30.10, start: 0.000000, bitrate: 118345 kb/s
    Stream #0:0: Video: mpeg2video (4:2:2), yuv422p(tv), 1920x1080 [SAR 1:1
DAR 16:9], 100000 kb/s, 29.97 fps, 29.97 tbr, 29.97 tbn, 59.94 tbc
    Metadata:
      file_package_umid:
0x060A2B340101010501010D231300DE5A262ECE479DC1DF11B46500D0280B114C
    Stream #0:1: Audio: pcm_s24le, 48000 Hz, 8 channels, s32 (24 bit), 9216
kb/s
    Metadata:
      file_package_umid:
0x060A2B340101010501010D231300DE5A262ECE479DC1DF11B46500D0280B114C
    Stream #0:2: Audio: pcm_s24le, 48000 Hz, 8 channels, s32 (24 bit), 9216
kb/s
    Metadata:
      file_package_umid:
0x060A2B340101010501010D231300DE5A262ECE479DC1DF11B46500D0280B114C
Input #1, wav, from 'D:\MIX\Stereo_AUDIO.wav':
  Metadata:
    encoded_by      : Pro Tools
    originator_reference: 6eG5f88xyWpaaaGk
    date            : 2014-03-31
    creation_time   : 09:07:08
    time_reference  : 172082311
  Duration: 00:24:30.10, bitrate: 2340 kb/s
    Stream #1:0: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, 2
channels, s32 (24 bit), 2304 kb/s
[Parsed_amerge_0 @ 0000000004e9f120] No channel layout for input 1
[Parsed_amerge_0 @ 0000000004e9f120] Input channel layouts overlap: output
layout will be determined by the number of distinct input channels
Output #0, mov, to 'D:\MIX\VIDEO_audio_only.mov':
  Metadata:
    uid             : 56eacd47-9dc1-df11-b78c-00d0280b114c
    generation_uid  : 1eebcd47-9dc1-df11-bddb-00d0280b114c
    company_name    : Omneon Inc.
    product_name    : Omneon Media Subsystem
    modification_date: 2010-09-16 14:18:30
    product_version : 5.5.0.0.release
    application_platform: Omneon Media Api
    product_uid     : 00000000-0000-0010-8000-050e0b010602
    material_package_umid:
0x060A2B340101010501010D2313006411B021CE479DC1DF11989800D0280B114C
    timecode        : 00:59:45;02
    encoder         : Lavf56.25.101
    Stream #0:0: Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 10
channels, s32, 11520 kb/s (default)
    Metadata:
      encoder         : Lavc56.28.100 pcm_s24le
Stream mapping:
  Stream #0:1 (pcm_s24le) -> amerge:in0
  Stream #0:2 (pcm_s24le) -> amerge:in1
  Stream #1:0 (pcm_s24le) -> amerge:in2
  pan -> Stream #0:0 (pcm_s24le)
Press [q] to stop, [?] for help
[pcm_s24le @ 0000000004eabde0] not writing 'chan' tag due to lack of
channel information
size= 2067347kB time=00:24:30.10 bitrate=11520.1kbits/s
video:0kB audio:2067331kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: 0.000787%

Image of the audio waveform with silence on all 10 channels:
http://imgur.com/JpafflT

If I modify the command to not mix the audio I get all the audio channels.

ffmpeg -i D:\MIX\VIDEO.mxf -i D:\MIX\Stereo_AUDIO.wav -filter_complex
"[0:1][0:2][1:0]amerge=inputs=3,pan=10c|c0=c0|c1=c1|c2=c16|c3=c17|c4=c4|c5=c5|c6=c6|c7=c7|c8=c8|c9=c9[a1]"
-map "[a1]" -acodec pcm_s24le -timecode 00:59:45;02
D:\MIX\VIDEO_audio_only_no_mix.mov

Image of the audio waveform with audio on all 10 channels:
http://imgur.com/8Bc0b1K

I decided to just test taking the stereo audio file and mixing the audio to
mono. This command outputs a file with audio.

ffmpeg -i D:\MIX\Stereo_AUDIO.wav -af "pan=stereo|c0<c0+c1|c1<c0+c1"
-acodec pcm_s24le  D:\MIX\Stereo_AUDIO_mixed.wav

ffmpeg version N-70803-g0f16dfd Copyright (c) 2000-2015 the FFmpeg
developers
  built with gcc 4.9.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads
--enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r
--enable-gnutls --enable-iconv --enable-libass --enable-libbluray
--enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme
--enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
--enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr
--enable-libspeex --enable-libtheora --enable-libtwolame
--enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc
--enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp
--enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid
--enable-lzma --enable-decklink --enable-zlib
  libavutil      54. 20.100 / 54. 20.100
  libavcodec     56. 28.100 / 56. 28.100
  libavformat    56. 25.101 / 56. 25.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 12.100 /  5. 12.100
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Guessed Channel Layout for  Input Stream #0.0 : stereo
Input #0, wav, from 'D:\MIX\Stereo_AUDIO.wav':
  Metadata:
    encoded_by      : Pro Tools
    originator_reference: 6eG5f88xyWpaaaGk
    date            : 2014-03-31
    creation_time   : 09:07:08
    time_reference  : 172082311
  Duration: 00:24:30.10, bitrate: 2340 kb/s
    Stream #0:0: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, 2
channels, s32 (24 bit), 2304 kb/s
Output #0, wav, to 'D:\MIX\Stereo_AUDIO_mixed.wav':
  Metadata:
    ITCH            : Pro Tools
    originator_reference: 6eG5f88xyWpaaaGk
    ICRD            : 2014-03-31
    time_reference  : 172082311
    ISFT            : Lavf56.25.101
    Stream #0:0: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz,
stereo, s32 (24 bit), 2304 kb/s
    Metadata:
      encoder         : Lavc56.28.100 pcm_s24le
Stream mapping:
  Stream #0:0 -> #0:0 (pcm_s24le (native) -> pcm_s24le (native))
Press [q] to stop, [?] for help
size=  413466kB time=00:24:30.10 bitrate=2304.0kbits/s

Ultimately I think my solution is to do this in two passes, where I mix the
stereo file to mono and then map it in to the two channels. Can anyone
think of a way to accomplish this in one pass?


More information about the ffmpeg-user mailing list