Record desktop and microphone audio with Avconv
Install Pulse Audio Control
sudo apt-get install pavucontrol
Only playback record (no microphone)
Open it → Input Devices → Show: All input devices → Use Green Button to the right to Select "Monitor: Analog Audio"
There are different channel names but You can run some player and see which has signal.
When Gnome Volume Control is opened, It overrides it back to Microphone. I have noticed that in the late releases 13.04, 13.10, 14.04. It cannot be changed back using Gnome Volume Control. (Avoid using it on recording)
Both microphone and playback mixed:
pactl
CLI could be used. Exmaple:Check name of sink
$ pactl list short sinks 0 alsa_output.pci-0000_01_00.1.hdmi-stereo module-alsa-card.c s16le 2ch 44100Hz SUSPENDED 1 alsa_output.pci-0000_00_1b.0.analog-stereo module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
Loopback microphone source to analog sink
$ pactl load-module module-loopback latency_msec=1 sink=alsa_output.pci-0000_00_1b.0.analog-stereo 30
Use same step above to select the correct input device.
To close it:
$ pactl unload-module 30
or using name:
$ pactl unload-module module-loopback
To check module id:
$ pactl list short modules
In case, Unable to find a Playback Analog Monitor in the Input Devices
Check Configuration tab, it should be Full Duplex (Input/Output)
Otherwise, It is possible to create a virtual output device then loop it back.
pactl load-module module-null-sink sink_name=Virtual1 pactl load-module module-loopback latency_msec=1 sink=Virtual1
Then use Pulse Audio Control, Same step above to select the correct input device Virtual1.
For output device:
Use Output Devices tab if all mixed system output needed.
Or use Playback tab if only some application output needed (like: just VLC music play ...). In this case you can record somethings and listen to somethings else.
As reference see, How can I use PulseAudio virtual audio streams to play music over Skype?
if it didn't work (your case as example)
Check exact name of "Analog Stereo Output" sink
pactl list sinks
Loop back microphone to "Analog Stereo Output"
pactl load-module module-loopback latency_msec=1 sink=alsa_output.usb-C-Media_Electronics_Inc._USB_PnP_Sound_Device-00-Device.analog-stereo
Check exact name of "Analog Stereo Output Monitor" source
pactl list sources
Then Record directly by specifying device name of "Analog Stereo Output Monitor", Example in your case:
avconv -f pulse -i "alsa_output.usb-C-Media_Electronics_Inc._USB_PnP_Sound_Device-00-Device.analog-stereo.monitor" -b 64k -f x11grab -r 25 -s 1280x800 -i :0.0 -vcodec libx264 -preset ultrafast -threads 4 -y myscreencast2.mp4
-i:0.0 will "steal" the microphone from pulse and you won't be able to use the mirophone while recording (like on a skype conversation).
A looback interface will introduce some delay between the played sound and the recorded.
This worked for me:
ffmpeg -f pulse -i 0 -f pulse -i 1 -filter_complex amerge out.wav
0 & 1 are pulse audio sources listed with
pactl list sinks