Domanda

Ho una scheda di acquisizione in grado di catturare video SDI con audio embedded. Ho codice sorgente di un driver Linux, che sto cercando di migliorare per aggiungere il supporto Video4Linux2. Le mie modifiche si basano sull'esempio vivi.

Il problema mi è venuta in contro è che tutto l'esempio che posso trovare che fare con solo video o solo l'audio. Anche sul lato client, tutto sembra assumere v4l è solo video, come libavdevice di ffmpeg.

Ho bisogno di avere il mio autista creare due dispositivi separati, un dispositivo v4l2 e di un dispositivo alsa? Sembra che questo rende il lavoro di mantenere audio e video in sincrono molto più difficile.

Io preferirei un modo per ogni buffer passato tra il conducente e l'applicazione (attraverso l'interfaccia mmap di v4l2) contengono un telaio, oltre ad alcuni audio che corrisponda (rispetto al tempo) con quella struttura.

O forse avere ogni buffer contenere un flag che indica se è un fotogramma video, o un pezzo di audio. Poi i timestamp sui buffer potrebbero essere utilizzati per sincronizzare le cose.

Ma non vedo un modo per fare questo con l'API specifiche V4L2, né mi vedo esempi di applicazioni v4l2-enabled (gstreamer, ffmpeg, transcodifica, ecc) che la lettura sia audio e video da un unico dispositivo.

È stato utile?

Soluzione

In generale, la parte di acquisizione audio di un dispositivo si presenta come un dispositivo separato. Di solito è un dispositivo fisico diverso (posibly condivisione di una carta), che ha un senso. Non sono sicuro di quanto aiuto che è, ma è come tutto il software ho familiarità con le opere ...

Altri suggerimenti

Ci sono alcuni campi di ricambio o riservate nel buffer v4l2 che possono essere utilizzati per passare i dati audio o altri dal driver all'applicazione chiamante tramite puntatori ai buffer mmaped.

ho modificato il driver BT8x8 di utilizzare questo approccio per passare i dati da una scheda A / D sincronizzato al video su Ubuntu 6.06.

Ha funzionato bene, ma lo sforzo di mantenere il mio autista mi ha fatto modificato ad abbandonare questo approccio.

Se siete ancora interessati ho potuto scavare i dettagli.

Se si desidera che il driver di giocare con GStreamer ecc un dispositivo audio separato è generalmente ciò che è previsto.

La maggior parte del audio conveniente v4l2 della scheda di acquisizione è solo un analogo passare attraverso un controllo di volume che richiede un ponticello per bloccare l'audio tramite ingresso della linea della scheda audio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top