私は、オーディオが埋め込まれたSDIビデオをキャプチャするキャプチャカードを持っています。私はvideo4linux2のサポートを追加するために強化しようとしているLinuxドライバのソースコードを持っています。私の変更はviviの例に基づいています。v4l2を使用して同じデバイスからオーディオとビデオを読み取ることはできますか?
私が犯した問題は、私が見ることができるすべての例がビデオのみまたはオーディオのみを扱うことであるということです。クライアント側でさえ、すべてがv4lがffmpegのlibavdeviceのようなちょうどビデオだと仮定しているようです。
ドライバに2つの別個のデバイス、v4l2デバイス、およびalsaデバイスを作成させる必要がありますか?これにより、オーディオとビデオの同期を維持する作業がはるかに難しくなるようです。
ドライバとアプリケーション(v4l2のmmapインターフェイス経由)間を渡される各バッファに、フレームと、そのフレームと(時間に対して)一致するいくつかのオーディオが含まれています。
おそらく、各バッファに、ビデオフレームであるかオーディオの塊であるかを示すフラグを含めるようにしてください。その後、バッファ上のタイムスタンプを使って物事を同期させることができます。
しかし、私はV4L2 API仕様でこれを行う方法は見当たりませんし、v4l2対応のアプリケーション(gstreamer、ffmpeg、トランスコードなど)の例も、単一のデバイスからオーディオとビデオの両方を読むことはできません。
この場合、ビデオとオーディオを同期させる可能性はありますか? –
特定のビデオデバイスに対応するオーディオデバイスを知る可能性はありますか?何がioctl VIDIOC_S_AUDIOとまったく同じですか? VIDIOC_S_AUDIOで選択したオーディオ入力からオーディオデータを読み込むにはどうすればよいですか? –