How to get a stereo wav file from a Canon C300 camera with MXF format using ffmpeg

published Feb 12, 2019 03:45   by admin ( last modified Feb 12, 2019 04:12 )

This presumes you have been recording into the Canon C300 Mark I with two sound sources, split into separate channels. And you want the channels to be panned hard left and right, suitable for editing and comparison in e.g. Audacity (Although you can of course also export to different files and import).

This does the trick:

ffmpeg -i from_canon.MXF -filter_complex "[0:1] [0:2] amerge" -c:a pcm_s16le stereo.wav

Credit goes to FFMPEG: Need to mix dow multiple audio stream to single stereo - Stack Overflow

Software such as ffmpeg, Videolan Client (VLC) and audacity see Canon's MXF format as two separate sound channels inside a container, not as a left and right channel. In VLC you will only get one audio track for example, and you can switch to the other one if you want. So using ffmpeg, this won't work:

ffmpeg -i from_canon.MXF pcm_s16le stereo.wav

It will say that it will only include one audio stream in the wav file, althought there are two:

Stream mapping:
  Stream #0:1 -> #0:0 (pcm_s16le (native) -> pcm_s16le (native))

Mapping the channels into wav also won't work:

ffmpeg -i AA340601.MXF -map 0:1 -map 0:2 -c:a pcm_s16le all.wav

This will give the error:

WAVE files have exactly one stream
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Error initializing output stream 0:1 --