Frage

Ich habe eine Capture-Karte, die SDI-Video mit Embedded Audio einfängt. Ich habe Quellcode für einen Linux-Treiber, die ich zu verbessern versuchen video4linux2 Unterstützung hinzuzufügen. Meine Änderungen basieren auf dem vivi Beispiel.

Das Problem, das ich gegen kommen, ist, dass all das Beispiel beschäftige ich mich mit nur Video oder nur Audio finden. Auch auf der Client-Seite scheint alles v4l ist nur Video, wie FFmpegs libavdevice zu übernehmen.

Muss ich meine Treiber erstellen zwei separate Geräte haben müssen, eine v4l2 Gerät und ein ALSA-Gerät? Es scheint, wie dies den Job zu halten macht Audio- und Video synchron viel schwieriger.

würde ich einen Weg bevorzugen für jeden Puffer zwischen dem Fahrer und der App übergeben (durch v4l2 der mmap Interface) enthalten einen Rahmen, sowie einige Audio, die (in Bezug auf die Zeit) passt sich mit diesem Rahmen.

Oder vielleicht jeden Puffer hat enthalten ein Flag, das anzeigt, ob es ein Video-Frame, oder ein Stück Audio ist. Dann werden die Zeitstempel auf den Puffern verwendet werden könnten, die Dinge zu synchronisieren.

Aber ich sehe keinen Weg, dies mit der Spezifikation V4L2 API zu tun, noch sehe ich keine Beispiele für v4l2-fähigen Anwendungen (gstreamer, ffmpeg, Transcodierungs, etc.) sowohl Audio als auch Video von einem einzigen Gerät zu lesen.

War es hilfreich?

Lösung

Im Allgemeinen ist der Audio-Capture-Teil einer Vorrichtung zeigt als separates Gerät nach oben. Es ist in der Regel ein anderes physisches Gerät (posibly eine Karte Sharing), was Sinn macht. Ich bin mir nicht sicher, wie viel Hilfe, die ist, aber es ist, wie die gesamte Software Ich bin vertraut mit Werken ...

Andere Tipps

Es gibt einige Ersatz oder reservierte Felder in dem v4l2 Puffer, die verwendet werden können, Audio- oder andere Daten von dem Fahrer auf die rufenden Anwendung über Zeiger auf mmaped Puffer zu übergeben.

modifizierte ich den BT8x8 Treiber, diesen Ansatz zu verwenden, um Daten zu übergeben von einer A / D-Karte, um das Video auf Ubuntu synchronisiert 6,06.

Es funktionierte OK, aber der Aufwand meine modifizierten Treiber aufrechtzuerhalten ließ mich diesen Ansatz aufzugeben.

Wenn Sie immer noch interessiert sind, ich die Details ausgraben konnte.

Wenn Sie Ihre Fahrer wollen mit gstreamer usw. ein separaten Audiogerät spielen im Allgemeinen ist, was erwartet wird.

Die meisten der billigen v4l2-Capture-Karte Audio ist nur ein analoges mit einem Lautstärkeregler durchlaufen einen Jumper erfordert die Audiodaten über die Soundkarte des Line-Eingang zu erfassen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top