Vídeo da webcam com stream VLC com áudio

0

Usando o Linux Mint 18.1 32bit, o Logitech pro 9000, o vlc 2.2.2

Eu pesquisei em muitos sites por dicas e encontrei muitos para gravar o vídeo, mas nenhum que chegou perto de transmitir ou gravar tanto o vídeo quanto o áudio.

O mais próximo foi de Trouble fazer com que o VLC grave da webcam via linha de comando . Isso transmite o vídeo, mas não reproduz o áudio.

cvlc v4l2:// :input-slave=alsa:// :v4l-vdev="/dev/video0" :v4l-norm=3 \
  :v4l-frequency=-1 :v4l-caching=300 :v4l-chroma="" :v4l-fps=-1.000000 \
  :v4l-samplerate=44100 :v4l-channel=0 :v4l-tuner=-1 :v4l-audio=-1 :v4l-stereo \
  :v4l-width=480 :v4l-height=360 :v4l-brightness=-1 :v4l-colour=-1 :v4l-hue=-1 \
  :v4l-contrast=-1 :no-v4l-mjpeg :v4l-decimation=1 :v4l-quality=100 \
  --sout="#transcode{vcodec=theo,vb=2000,fps=12,scale=0.67,acodec=vorb,ab=90,channels=1,samplerate=44100}:standard{access=file,mux=ogg,dst=output.ogg}"

Como o comando seria modificado para reproduzir vídeo e áudio?

Editar

O Pulseaudio está em execução:

$ ps axu | grep pulse
bill 1553 0.0 0.5 176268 10456 ? S<l 15:15 0:02 /usr/bin/pulseaudio --start --log-target=syslog

Lista de dispositivos de áudio:

$ arecord -l **** List of CAPTURE Hardware Devices ****
card 0: Intel [HDA Intel], device 0: STAC9200 Analog [STAC9200 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Q9000 [QuickCam Pro 9000], device 0:
  USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 
    
por Otto Gvert 22.02.2018 / 19:21

1 resposta

0

Revisão rápida do áudio do Linux: Hoje, basicamente todos os drivers de dispositivos fazem parte do ALSA. O ALSA pode ser usado sozinho, mas basicamente todas as distribuições executam o Pulseaudio no topo, o que oferece uma melhor experiência em alguns aspectos. O Pulseaudio inclui uma camada de compatibilidade que permite que aplicativos antigos somente do ALSA usem o Pulseaudio fingindo que é um dispositivo ALSA (chamado pulse ), enquanto o Pulseaudio, por sua vez, usa os drivers de dispositivo do ALSA.

Seu sistema é assim e você tem dois dispositivos de áudio (o dispositivo interno e a câmera).

Então, o que acontece quando você usa --input-slave=alsa:// é que vlc usa a camada de compatibilidade, que acessa o Pulseaudio, que adivinha qual dispositivo você quer e fornece o primeiro dispositivo, que é o dispositivo interno e não a webcam. Assim, nenhum som.

Você pode usar pavucontrol (ou pacmd ou pactl se você não tiver uma GUI) durante a gravação para alterar de onde vlc grava. Dependendo da sua configuração do Pulseaudio, essa escolha geralmente será lembrada da próxima vez, então você só precisa fazer isso uma vez.

Ou melhor ainda, diga ao vlc para usar o Pulseaudio em primeiro lugar. Não consegui encontrar rapidamente documentação adequada sobre --input-slave para vlc, mas os resultados do google sugerem --input-slave=pulse funciona, e muito provavelmente há alguma sintaxe --input-slave=pulse://pulseaudio_source_name que realmente permite que você especifique a placa correta (chamada "fonte de som" em Pulseaudio).

Editar

O código-fonte diz que o formato é pulse://SOURCE , sem especificar detalhes, então eu acho que você pode fazer

pactl list short sources

e, em seguida, especifique algo como pulse://alsa_input.usb-XXX-YYY com qualquer nome de origem do Pulseaudio. Novamente, você pode usar pavucontrol para reatribuir a fonte, se necessário.

    
por 25.02.2018 / 08:28

Tags