como formatar o comando ffmpeg para gravar o som da minha webcam

3

Usando ffmpeg arecord -L, posso identificar minha webcam usb da Logitech como:

hw:CARD=U0x46d0x821,DEV=0
USB Device 0x46d:0x821, USB Audio
Direct hardware device without any conversions

plughw:CARD=U0x46d0x821,DEV=0
USB Device 0x46d:0x821, USB Audio
Hardware device with all software conversions

quando entro em / dev / snd / by-id, a webcam é descrita como:

usb-046d_0821_6813BFD0-00 -> ../controlC1

Eu sei que o comando para usar um dispositivo de som no ffmpeg é

ffmpeg -f alsa -i $ALSA_DEVICE_NAME..

Eu tentei

ffmpeg -f alsa -i "hw:CARD=U0x46d0x821,DEV=0" and

ffmpeg -f alsa -i "plughw:CARD=U0x46d0x821,DEV=0"

e em ambos os casos recebo a mesma mensagem de erro

ALSA lib pcm.c:2208:(snd_pcm_open_noupdate) Unknown PCM hw=CARD=U0x46d0x821,DEV=0
[alsa @ 0x9c96580] cannot open audio device hw=CARD=U0x46d0x821,DEV=0 (No such file or directory)
hw:CARD=U0x46d0x821,DEV=0: Input/output error

Eu também tentei

ffmpeg -f alsa -i "usb-046d_0821_6813BFD0-00" and

ffmpeg -f alsa -i "usb-046d_0821_6813BFD0-00,DEV=0" and have still received error message

Poderia usar alguma ajuda para formular o formato correto do comando

    
por user1545779 24.07.2012 / 08:14

2 respostas

4

O seguinte é o caminho correto:

  1. Emita o comando arecord -L .
  2. Procure os valores plughw que correspondem ao seu hardware. Por favor note que plughw representa um hardware que foi conectado ao computador.
  3. Verifique os valores no diretório /dev/snd/by-id .
    • Quando você desconectar a (s) webcam (s), o diretório by-id sub desaparecerá do diretório /dev/snd . Este é um excelente teste para confirmar qual plughw é um dispositivo conectado externamente.
  4. O ID do dispositivo de som listado aqui será o mesmo ou corresponderá a um dos valores obtidos do comando arecord -L .
  5. O comando a usar é ffmpeg: -f alsa -i plughw .
  6. Por favor, note, NÃO coloque o valor plughw entre aspas.
  7. Um exemplo prático para mim foi:

    ffmpeg -f alsa -i plughw:CARD=U0x46d0x821,DEV=0 -acodec libmp3lame -t 20 output.mp4
    
  8. Você pode adicionar a parte do vídeo ao comando acima, adicionando:

    -f video4linux2 -i /dev/video0
    

Espero que isso ajude. Qualquer questão relacionada é bem-vinda.

    
por user1545779 25.07.2012 / 19:38
0

Eu tive uma rápida leitura da man page do ffmpeg e eles recomendam procurar em / proc / asound / cards

Eu tenho dois cartões na minha máquina 0 e 1 e minha web cam é 1, então o comando para mim é

ffmpeg -f alsa -i hw:1
    
por Choffee 24.07.2012 / 12:07