[FFmpeg-user] Recording audio from mic and speakers from commandline
Mohan G
mail2mohan81 at gmail.com
Sat Oct 17 12:53:54 CEST 2015
Finally I found a way to achieve what I wanted, using the PulseAudio
utility **"pacmd"**.
$ pacmd list-sources|awk '/index:/ {print $0}; /name:/ {print $0};
/device\.description/ {print $0}'
Run above command to get the indexes of all the system recording
interfaces, with respect to PulseAudio. Sample output given below.
index: 0
name: <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor>
device.description = "Monitor of Built-in Audio Analog Stereo"
* index: 1
name: <alsa_input.pci-0000_00_1b.0.analog-stereo>
device.description = "Built-in Audio Analog Stereo"
Run the following command to start recording using the ffmpeg application.
$ ffmpeg -f alsa -i pulse -f alsa -i default -acodec libmp3lame -map
0:0 -map 1:0 outfile.mkv
Now, get the indexes of the ffmpeg application interfaces, with
respect to PulseAudio. Then set each of this 'application interface
index' to the desired 'recording interface index'.
$ pacmd list-source-outputs|tr "\n" " "| awk 'BEGIN {RS="index:"};
/application.process.binary = "ffmpeg"/ {print $0 }' |awk '{print
"pacmd move-source-output " $1 " " (NR-1)}'|bash
This solution works only when no other instance of "ffmpeg" is running
on the system.
The solution could have been better, if I could specify the
recording-interfaces along with the "ffmpeg" command itself. Please
let me know if it is possible.
- Mohan
More information about the ffmpeg-user
mailing list