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

Note: On some systems you may need to use a : instead of | in that command.

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.

10 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.

  5. Thanks for the tip!
    In my case, I wanted to merge the left and right channels into one mono channel (since the first half of the recording contained only the left channel and the second half contained only the right channel). So the following command worked for me:

    $ ffmpeg -i stereo.mov -codec:v copy -ac 1 mono.mov

  6. This didn’t work for me when trying to recover the audio on an ipad screen recording, but this article at least clued me in that my issue was a stereo recording with one silent audio channel being played back as mono. I finally found a solution that worked for me to select the right channel using the handbrake solution at the end of this write-up https://khalil-shreateh.com/khalil.shtml/computer/12056-solution-no-sound-when-sending-ios-11-screen-recordings.html

  7. If useful – I solved the ‘soundflower’ fix with Loopback and AudioHijack. Created a standard pass-thru in Loopback and named it Mono_mic. In Audiohijack create a session that is your input device (in my case Scarlett 2i2) Add the Channels effect block and set it to mono. Add Output device and set to your Loopback Pass-thru (in my case ‘mono_mic’) Start that session. In Quicktime or Filmora or where ever, select the Loopback device (mono_mic) as Input. Sorted :)

Leave a Reply to Chris Bell Cancel reply

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