Question

J'ai une carte de capture qui capture vidéo SDI avec audio intégré. J'ai le code source pour un pilote Linux, que je suis en train d'améliorer pour ajouter le support video4linux2. Mes changements sont basés sur l'exemple Vivi.

Le problème que je suis venu contre est que tout l'exemple que je peux trouver traiter uniquement la vidéo ou audio uniquement. Même du côté client, tout semble supposer v4l est juste vidéo, comme le libavdevice de ffmpeg.

Ai-je besoin d'avoir mon chauffeur créer deux dispositifs séparés, un dispositif v4l2 et un dispositif de alsa? Il semble que cela rend le travail de garder audio et vidéo en synchronisation beaucoup plus difficile.

Je préférerais une certaine façon pour chaque tampon passé entre le conducteur et l'application (via l'interface mmap de v4l2) contiennent un cadre, ainsi que des données audio correspondant vers le haut (par rapport au temps) avec ce cadre.

ou peut-être chaque tampon contiennent un drapeau indiquant si elle est une image vidéo ou un morceau de l'audio. Ensuite, les horodateurs sur les tampons peuvent être utilisés pour synchroniser les choses.

Mais je ne vois pas une façon de le faire avec la spécification API V4L2, et je ne vois pas d'exemples d'applications permis v4l2 (GStreamer, ffmpeg, transcoder, etc) la lecture audio et vidéo à partir d'un seul appareil.

Était-ce utile?

La solution

En général, la partie de capture audio d'un dispositif se présente comme un dispositif distinct. Il est généralement un dispositif physique différent (partage posibly une carte), ce qui est logique. Je ne sais pas à quel point l'aide qui est, mais c'est comment tous les logiciels que je connais des œuvres ...

Autres conseils

Il y a des champs de rechange ou réservés dans les tampons v4l2 qui peuvent être utilisés pour transmettre des données audio ou autre du conducteur à l'application d'appel par l'intermédiaire des pointeurs vers des tampons mmaped.

I modifié le pilote BT8x8 d'utiliser cette approche pour transmettre des données depuis une carte A / D synchronisé avec la vidéo sur Ubuntu 6.06.

Il marchait bien, mais l'effort de maintenir mon chauffeur modifié m'a fait abandonner cette approche.

Si vous êtes toujours intéressé, je pourrais creuser les détails.

Si vous voulez que votre pilote à jouer avec GStreamer etc. un dispositif audio séparé est généralement ce qui est attendu.

La plupart des audio de carte de capture v4l2 pas cher est seulement un convertisseur analogique passe par un contrôle de volume nécessitant un cavalier pour capturer l'audio via l'entrée ligne de la carte son.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top