Take the 2-minute tour ×
Video Production Stack Exchange is a question and answer site for engineers, producers, editors, and enthusiasts spanning the fields of video, and media creation. It's 100% free, no registration required.

I have mxf files which went over the 2G limit, so were split up in the camera to produce two mxf files. They have two audio streams, one from each mic, like this:

Duration: 00:10:01.60, start: 0.000000, bitrate: 27165 kb/s
Stream #0:0: Video: mpeg2video (Main), yuv420p(tv, bt709), 1440x1080 [SAR 4:3 DAR 16:9], max. 25000 kb/s, 29.97 fps, 29.97 tbr, 29.97 tbn, 59.94 tbc
Stream #0:1: Audio: pcm_s16le, 48000 Hz, 1 channels, s16, 768 kb/s
Stream #0:2: Audio: pcm_s16le, 48000 Hz, 1 channels, s16, 768 kb/s

I know how to concatenate them with ffmpeg:

ffmpeg -i "concat:a01.mxf|b02.mxf" -y -c copy result.mxf

But, this combines the audio streams and produces a file with just one, merged stream.

I also know how to split out the individual audio streams into individual files:

ffmpeg -i a01.mxf -map 0:1 -vn one.aiff
ffmpeg -i a01.mxf -map 0:2 -vn two.aiff

Grabs the streams and correctly transfers them across untouched.

My question is, how to do this for the split up mxfs? I could rip their sound, then join the video, then put the sound back in, but it seems really unnecessary, and there should be a way to use a big -map command to do all of this.

share|improve this question
add comment

1 Answer

Apparently by default ffmpeg only copies one stream of each type. To tell it to copy all streams, you need -map 0

So, this does it:

ffmpeg -i "concat:a01.mxf|b02.mxf" -y -map 0 -c copy result.mxf
share|improve this answer
    
Thanks for posting what you found. –  AJ Henderson Feb 13 at 14:22
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.