Caveat: I'm not very familiar with audio codecs and terminology, so it could be that I'm not using the correct words to describe what I want to do. I've attempted to make that clear.
I'm using ecamm's Call Recorder for Skype. It records to a QuickTime MOV file with two audio streams. One is the audio recorded from the mic and the other is the audio recorded from the speakers. They provide a tool called "Convert to Internet" that they ship with their Movie Tools distribution.
I have a meeting every week that I've been recording, and I'm looking for a way to automate the process of "flattening" these audio streams into a single stream so I can share with others. The "Convert to Internet" application only supports converting a single file at a time, and it's a GUI app that works by dragging and dropping the file to convert onto the app's main window.
I'd like to find a way to achieve the same end result "Convert to Internet" application gets, but by using something that I run on the command line, (preferably from a Linux box that I can spin up to do the job and then spin down when it's done).
I think the product guide does a pretty good job of explaining the process that needs to happen. In the event that my rambling here is not all that clear.
I've dug into the documentation for FFmpeg, which I thought would be the best candidate for pulling this off. I found the amerge
filter, but the docs make it sound like it'll just give me a single audio stream with 4 chanels (left and right from the first stream and left and right from the second stream). Since that's not what I want, I looked at the amix
filter, but that appears to work with streams from different input files, and not multiple streams from a single file.
Any help getting pointed in the right direction is greatly appreciated.
Edit:
I thought the output of ffprobe
for the file that I'm working with might also be useful.
$ ffprobe input.mov
ffprobe version 2.8.3 Copyright (c) 2007-2015 the FFmpeg developers
built with Apple LLVM version 7.0.0 (clang-700.1.76)
configuration: --prefix=/usr/local/Cellar/ffmpeg/2.8.3 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libvo-aacenc --enable-libxvid --enable-vda
libavutil 54. 31.100 / 54. 31.100
libavcodec 56. 60.100 / 56. 60.100
libavformat 56. 40.101 / 56. 40.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 40.101 / 5. 40.101
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
libpostproc 53. 3.100 / 53. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mov':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
creation_time : 2015-09-18 17:04:00
Duration: 01:07:51.64, start: 0.000000, bitrate: 1503 kb/s
Stream #0:0(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 43 kb/s (default)
Metadata:
creation_time : 2015-09-18 17:04:00
handler_name : Apple Alias Data Handler
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 63 kb/s (default)
Metadata:
creation_time : 2015-09-18 17:04:00
handler_name : Apple Alias Data Handler
Stream #0:2(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720, 1381 kb/s, SAR 1:1 DAR 16:9, 19.63 fps, 14.42 tbr, 1k tbn, 50 tbc (default)
Metadata:
creation_time : 2015-09-18 17:04:00
handler_name : Apple Alias Data Handler
encoder : H.264