Comment puis-je capturer de l'audio ET de la vidéo simultenaous avec ffmpeg à partir d'un linux USB périphérique de capture
Je suis à la capture d'une vidéo par le biais d'un port USB Terratec Grabster AV350 (qui est basé sur la em2860 puce).
Je n'ai pas réussi à obtenir l'audio quand il est joué . Si je joue de la vidéo avec vlc ou avec ffplay j'ai eu seulement 3 secondes du son, puis un silence pour le reste de la vidéo ...
Lors de la capture je n'ai pas toutes les erreurs. À la fin, il indique la taille de la vidéo et de l'audio capturé ....
Je suis en utilisant le ffmpeg commande :
ffmpeg -f alsa -ac 2 -je hw:3 -f video4linux2 -i /dev/video0 -acodec ac3 -ab 128k -vcodec mpeg4 -b 6000k -r 25 test5.avi
Le journal est :
[alsa @ 0x9bcd420]Estimating duration from bitrate, this may be inaccurate
Input #0, alsa, from 'hw:3':
Duration: N/A, start: 69930.998994, bitrate: N/A
Stream #0.0: Audio: pcm_s16le, 44100 Hz, 2 channels, s16, 1411 kb/s
[video4linux2 @ 0x9bf5d30]Estimating duration from bitrate, this may be inaccurate
Input #1, video4linux2, from '/dev/video0':
Duration: N/A, start: 1307111377.654173, bitrate: -2147483 kb/s
Stream #1.0: Video: rawvideo, yuyv422, 720x576, -2147483 kb/s, 1000k tbr, 1000k tbn, 1000k tbc
[ac3 @ 0x9bf9590]No channel layout specified. The encoder will guess the layout, but it might be incorrect.
Output #0, avi, to 'test5.avi':
Metadata:
ISFT : Lavf52.64.2
Stream #0.0: Video: mpeg4, yuv420p, 720x576, q=2-31, 6000 kb/s, 25 tbn, 25 tbc
Stream #0.1: Audio: ac3, 44100 Hz, stereo, s16, 128 kb/s
Stream mapping:
Stream #1.0 -> #0.0
Stream #0.0 -> #0.1
Press [q] to stop encoding
frame= 1283 fps= 25 q=2.3 Lsize= 38677kB time=51.32 bitrate=6173.9kbits/s
**video:37755kB audio:846kB** global headers:0kB muxing overhead 0.198922%
Si je diminue la commande que pour la capture audio, puis le fichier audio peut être joué avec succès :
ffmpeg -f alsa -ac 2 -je hw:3,0 -acodec ac3 -ab 128k test5.avi
[alsa @ 0x8ede420]Estimating duration from bitrate, this may be inaccurate
Input #0, alsa, from 'hw:3,0':
Duration: N/A, start: 70395.998935, bitrate: N/A
Stream #0.0: Audio: pcm_s16le, 44100 Hz, 2 channels, s16, 1411 kb/s
[ac3 @ 0x8eebac0]No channel layout specified. The encoder will guess the layout, but it might be incorrect.
Output #0, avi, to 'test5.avi':
Metadata:
ISFT : Lavf52.64.2
Stream #0.0: Audio: ac3, 44100 Hz, stereo, s16, 128 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
size= 227kB time=13.62 bitrate= 136.8kbits/s
**video:0kB audio:213kB** global headers:0kB muxing overhead 6.902375%
Si je lance la commande que pour la capture de vidéo alors vlc ou ffplay pouvez lire la vidéo avec succès :
ffmpeg -f video4linux2 -i /dev/video0 -vcodec mpeg4 -b 12000k -r 25 test5.avi
[video4linux2 @ 0x91d6420]Estimating duration from bitrate, this may be inaccurate
Input #0, video4linux2, from '/dev/video0':
Duration: N/A, start: 1307112044.025687, bitrate: -2147483 kb/s
Stream #0.0: Video: rawvideo, yuyv422, 720x576, -2147483 kb/s, 1000k tbr, 1000k tbn, 1000k tbc
Output #0, avi, to 'test5.avi':
Metadata:
ISFT : Lavf52.64.2
Stream #0.0: Video: mpeg4, yuv420p, 720x576, q=2-31, 12000 kb/s, 25 tbn, 25 tbc
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
frame= 388 fps= 25 q=2.0 Lsize= 12963kB time=15.52 bitrate=6842.5kbits/s
**video:12949kB audio:0kB** global headers:0kB muxing overhead 0.114584%
Comportement étrange que j'ai remarqué c'est que lorsque j'ai essayé de capturer de la vidéo et de l'audio, je ne peut pas capturer l'audio par la suite,
à moins que je débranchez le AV350 premier.
La G350 est situé à la carte 3 :
htpc@htpc-01:/proc/asound/G350/pcm0c$ more info
card: 3
device: 0
subdevice: 0
stream: CAPTURE
id: USB Audio
name: USB Audio
subname: subdevice #0
class: 0
subclass: 0
subdevices_count: 1
subdevices_avail: 1
Le système d'exploitation est Linux 2.6.38-8-générique avec Ubuntu Natty Narwhal version
Toute aide sur la façon de s'attaquer à ce problème serait génial ....
Merci !
OriginalL'auteur oban | 2011-06-10
Vous devez vous connecter pour publier un commentaire.
Je travaille sur quelque chose comme ça et j'ai utilisé cette commande:
Au début j'ai eu du mal avec
hw:3
composant. Au lieu de cela, j'ai mis endefault
et le code a effectivement travaillé. J'espère que cette aide.OriginalL'auteur Felipe Avilés Parra
J'ai trouvé que l'utilisation de la commande au bas de travaux pour une webcam USB externe (le mien est actuellement un Logitech C310). J'ai utilisé cette commande sur mon ordinateur portable, qui a déjà construit dans le micro/webcam, et il a encore capté l'audio et la vidéo de mon C310. Évidemment, modifier le /dev/video0 pour s'adapter à vos besoins. Vous pouvez utiliser
dans le terminal pour voir ce que les périphériques de capture vidéo de votre système d'exploitation a mis en place.
OriginalL'auteur 12hys
Il travaille pour la haute qualité de la vidéo:
OriginalL'auteur doug