Questão Stream / record desktop, mic e saída do sistema


Estou tentando transmitir meu desktop e dois de áudio: saída do sistema e mic. Estou usando este comando, mas o áudio do meu sistema (hw: 0,0) não ouve no arquivo de saída ...

avconv \
-f alsa -i pulse \
-f alsa -i hw:0,0 \
-f x11grab -r 10 -s 1600x900 -i :0.0 \
-map 0:a -map 1:a -map 2:v \
-acodec libvorbis -ab 160k \
-vcodec libvpx \
-threads 4 -deadline realtime -cpu-used 0 -qmin 2 -qmax 5 \
-y desktop-recording.webm;

Se eu executar este comando, mas sem entrada, o som é gravado bem:

avconv \
-f alsa -i hw:0,0 \
-f x11grab -r 10 -s 1600x900 -i :0.0 \
-map 0:a -map 1:v \
-acodec libvorbis -ab 160k \
-vcodec libvpx \
-threads 4 -deadline realtime -cpu-used 0 -qmin 2 -qmax 5 \
-y desktop-recording.webm;

Como posso transmitir / gravar todas as 3 entradas?

Nota: esta é a saída do comando:

gazambuja@linux:~$ avconv -ac 2 -f alsa -i pulse -f alsa -i hw:0,0 -f x11grab -r 10 -s 1600x900 -i :0.0 -map 0:a -map 1:a -map 2:v -acodec libvorbis -ab 160k -vcodec libvpx -threads 4 -deadline realtime -cpu-used 0 -qmin 2 -qmax 5 -y desktop-recording.webm; mplayer desktop-recording.webm 
avconv version 0.8.5-6:0.8.5-0ubuntu0.12.10.1, Copyright (c) 2000-2012 the Libav developers
  built on Jan 24 2013 14:52:53 with gcc 4.7.2
[alsa @ 0x96df900] capture with some ALSA plugins, especially dsnoop, may hang.
[alsa @ 0x96df900] Estimating duration from bitrate, this may be inaccurate
Input #0, alsa, from 'pulse':
  Duration: N/A, start: 1364262041.999468, bitrate: N/A
    Stream #0.0: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
[alsa @ 0x96e0320] Estimating duration from bitrate, this may be inaccurate
Input #1, alsa, from 'hw:0,0':
  Duration: N/A, start: 10169.999299, bitrate: N/A
    Stream #1.0: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
[x11grab @ 0x96e13e0] device: :0.0 -> display: :0.0 x: 0 y: 0 width: 1600 height: 900
[x11grab @ 0x96e13e0] shared memory extension  found
[x11grab @ 0x96e13e0] Estimating duration from bitrate, this may be inaccurate
Input #2, x11grab, from ':0.0':
  Duration: N/A, start: 1364262042.244502, bitrate: 460799 kb/s
    Stream #2.0: Video: rawvideo, bgra, 1600x900, 460799 kb/s, 10 tbr, 1000k tbn, 10 tbc
Incompatible pixel format 'bgra' for codec 'libvpx', auto-selecting format 'yuv420p'
[buffer @ 0x96fbc20] w:1600 h:900 pixfmt:bgra
[avsink @ 0x96e0ec0] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out'
[scale @ 0x96d4460] w:1600 h:900 fmt:bgra -> w:1600 h:900 fmt:yuv420p flags:0x4
[libvpx @ 0x96d46a0] v1.1.0
Output #0, webm, to 'desktop-recording.webm':
  Metadata:
    encoder         : Lavf53.21.1
    Stream #0.0: Audio: libvorbis, 48000 Hz, 2 channels, s16, 160 kb/s
    Stream #0.1: Audio: libvorbis, 48000 Hz, 2 channels, s16, 160 kb/s
    Stream #0.2: Video: libvpx, yuv420p, 1600x900, q=2-5, 200 kb/s, 1k tbn, 10 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (pcm_s16le -> libvorbis)
  Stream #1:0 -> #0:1 (pcm_s16le -> libvorbis)
  Stream #2:0 -> #0:2 (rawvideo -> libvpx)

2


origem




Respostas:


Está migrando seu áudio, mas você está mapeando seu áudio para dois fluxos separados.

Stream #0:0 -> #0:0 (pcm_s16le -> libvorbis)
Stream #1:0 -> #0:1 (pcm_s16le -> libvorbis)

Por padrão, a maioria dos players de vídeo reproduz o primeiro fluxo de áudio e vídeo no arquivo. Por exemplo. quando você joga seu vídeo no VLC, você pode clicar com o botão direito Audio -> Audio Track -> e depois escolha Audio 1 ou Audio 2.

Você pode usar o amerge filtrar para mesclar o áudio se você quiser isso?


2