Dropping QuickTime Recording from Stereo to Mono

TL;DR: ffmpeg -i stereo.mov -codec:v copy -af pan="mono: c0=FL" mono.mov

QuickTime doesn’t let you select the channel for an input source, so if you have a standard mono mic connected to a multi-channel audio interface, then the recording you export from QuickTime will end up with the audio only on the left channel, and nothing on the right channel.

Professional video editing tools would make it easy to fix that, but I’m just using iMovie. Neither iMovie 9 or 10 will let you fix it in the project itself, but iMovie 9 will let you export via QuickTime with the audio set to mono.

I can’t use v9, though, because it severely degrades the video quality during import. iMovie 10 fixes the video quality issue, but it removed the export-via-QuickTime feature, so I’m still stuck with the mono audio problem.

One possible solution that sounded promising was using Soundflower to make an aggregate device, so that QuickTime could use it as the audio source, but I couldn’t get that working. The only other thing that seems like it would work would be to export the audio to a DAW like Audacity, convert it to mono, and then import that into iMovie as a separate track. That would be a big hassle for every project, though.

Luckily, there’s a much better solution. After exporting the recording from QuickTime, you can just use ffmpeg to copy the left channel to the right one:

ffmpeg -i stereo.mov -codec:v copy -af pan="mono: c0=FL" mono.mov

If you want an alias to do it quickly, you can add this to your .bashrc:

Then you can just run qtmono foo.mov and it’ll output foo-mono.mov.

7 thoughts on “Dropping QuickTime Recording from Stereo to Mono

  1. Lifesaver! Thanks a ton for this. Had exported a video from iMovie, only to have a single channel of audio. This took seconds, instead of me having to export the audio, fix it, re-import and re-render the video.

    Appreciate the post!

  2. Awesome! I noted that the syntax appears to have changed a bit, so instead of “mono: c0=FL”, you need to use “mono| c0=FL” with a pipe instead of the colon.

    Apart from this, you just saved me hours and hours of work.

  3. Same QT problem using Scarlett and I’ve never used the terminal before. I just successfully converted a stereo QT recording to mono using your FFMPEG directions (also confirmed use syntax “mono| c0=FL” not “mono: c0=FL”).

    I feel so powerful. Now I’m going to hack that greedy companies mainframe…

  4. I added this to my ~/.bash_profile

    ffmpeg -i $1 -codec:v copy -af pan=”mono| c0=FL” $2

    and I can now do

    tomono infile.mov outfile.mov

    note that the : has been deprecated and | is used instead.

Leave a Reply

Your email address will not be published. Required fields are marked *