Pregunta

Tengo una tarjeta de captura de vídeo que captura SDI con audio embebido. Tengo código fuente de un controlador de Linux, lo que estoy tratando de mejorar para añadir soporte Video4Linux2. Mis cambios se basan en el ejemplo vivi.

El problema que he llegado en contra es que todo el ejemplo que puedo encontrar tratar con un solo vídeo o audio solamente. Incluso en el lado del cliente, todo parece suponer v4l es sólo de vídeo, como libavdevice de ffmpeg.

¿Necesito tener mi conductor crear dos dispositivos separados, un dispositivo v4l2 y un dispositivo de ALSA? Parece que esto hace que el trabajo de mantenimiento de audio y video en sincronización mucho más difícil.

Yo preferiría alguna manera para cada búfer pasado entre el conductor y la aplicación (a través de la interfaz de mmap v4l2) contienen un marco, además de algunos de audio que coincida hacia arriba (con respecto al tiempo) con el marco.

O tal que cada búfer contener una bandera que indica si se trata de un fotograma de vídeo, o un trozo de audio. A continuación, las marcas de tiempo en las memorias intermedias podrían utilizarse para sincronizar las cosas.

Pero no veo una manera de hacer esto con la especificación API V4L2, ni veo ningún ejemplo de aplicaciones v4l2 habilitado (GStreamer, ffmpeg, transcodificación, etc.) la lectura tanto de audio como de vídeo desde un único dispositivo.

¿Fue útil?

Solución

Generalmente, la parte de captura de audio de un dispositivo se muestra como un dispositivo independiente. Por lo general es un dispositivo físico diferente (posibly compartir una tarjeta), que tiene sentido. No estoy seguro de la cantidad de ayuda que es, pero es como todo el software que estoy familiarizado con las obras ...

Otros consejos

Hay algunos campos de reserva o reservadas en las memorias intermedias v4l2 que se pueden utilizar para pasar los datos de audio o de otro tipo en el controlador de la aplicación de llamada a través de punteros a buffers mmaped.

I modificado el conductor BT8x8 de usar este enfoque para pasar datos desde una tarjeta A / D sincronizado con el video en Ubuntu 6.06.

Se trabajó bien, pero el esfuerzo de mantener mi conductor modificado me hizo abandonar este enfoque.

Si usted todavía está interesado pude extraer los detalles.

Si desea que el controlador para jugar con gstreamer etc. un dispositivo de audio por separado en general es lo que se espera.

La mayor parte de audio de la tarjeta de captura de v4l2 barato es solamente un análogo de pasar a través de un control de volumen que requiere un puente para capturar el audio a través de la entrada de línea de la tarjeta de sonido.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top