web-dev-qa-db-fra.com

comment formater la commande ffmpeg pour enregistrer le son depuis ma webcam

Avec ffmpeg arecord -L, je peux identifier ma webcam USB Logitech comme:

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

quand je vais dans/dev/snd/by-id, la webcam est décrite comme suit:

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

Je sais que la commande pour utiliser un périphérique audio dans ffmpeg est

ffmpeg -f alsa -i $ALSA_DEVICE_NAME..

J'ai essayé

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

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

et dans les deux cas, je reçois le même message d'erreur

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

J'ai aussi essayé

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

Pourrait utiliser de l'aide pour formuler le format correct de la commande

3
user1545779

Ce qui suit est la bonne façon:

  1. Emettez la commande arecord -L.
  2. Recherchez les valeurs plughw qui correspondent à votre matériel. Veuillez noter que plughw représente un matériel branché sur l'ordinateur.
  3. Recouper les valeurs dans le répertoire /dev/snd/by-id.
    • Lorsque vous débranchez la ou les webcam (s), le sous-répertoire by-id disparaît du répertoire /dev/snd. C’est un excellent test pour vérifier quel plughw est un périphérique branché à l’extérieur.
  4. Le ou les périphériques de son répertoriés ci-dessus sont identiques ou correspondent à l'une des valeurs obtenues à l'aide de la commande arecord -L.
  5. La commande à utiliser est ffmpeg: -f alsa -i plughw.
  6. Veuillez noter, ne mettez PAS la valeur complète entre guillemets.
  7. Un exemple de travail pour moi était:

    ffmpeg -f alsa -i plughw:CARD=U0x46d0x821,DEV=0 -acodec libmp3lame -t 20 output.mp4
    
  8. Vous pouvez ajouter la partie vidéo à la commande ci-dessus en ajoutant:

    -f video4linux2 -i /dev/video0
    

J'espère que ça aide. Toute question connexe est/sont les bienvenus.

5
user1545779

J'ai lu rapidement la page de manuel de ffmpeg et ils recommandent de regarder dans/proc/asound/cards

J'ai deux cartes sur les machines 0 et 1 et ma webcam est à 1, la commande est donc la suivante:

ffmpeg -f alsa -i hw:1
0
Choffee