Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Software>Kann ich bei konstanter Bild Frame Rate und konstanter Audio Bitrate darauf schließen, dass immer gleich viele Audiosample auf ein Videoframe kommen?

Kann ich bei konstanter Bild Frame Rate und konstanter Audio Bitrate darauf schließen, dass immer gleich viele Audiosample auf ein Videoframe kommen?

tim525.03.2115:24
Hallo,

ich bin neu im Bereich Container und Audio/Video-Bearbeitung. Ich würde mich freuen wenn ihr mir helfen könntet!

Mein Anliegen: Ich möchte sagen können, wenn ich einen bestimmten Ausschlag in der Audiospur (wav-Format) bei einem bestimmten Sample sehe, dass dieses Sample im Audiostream ganz klar zu diesem Bildframe gehört.

Das ganze hat schon funktioniert, aber ich möchte mir sicher gehen, dass es auch verlässlich ist.

Mein Vorgehen:
Ich nehme ein Video auf, dabei erzeuge ich zu einem bestimmten Zeitpunkt einen lauten Ton (hinterher sichtbar als Ausschlag (Amplitude)) und gleichzeitig das Aufleuchten einer LED (zur Überprüfung).
Beides wird von der Kamera (Bild und Audio) erfasst.

Hinterher extrahiere ich mit ffmpeg die Audiospur in eine eigene Datei.wav. Diese untersuche ich in C++ mit der Bibliothek libsndfile und finde damit heraus, bei welchem Sample genau zum ersten Mal der Ton zu hören ist. Dann führe ich ein paar Rechnungen durch, die mir sagen, dass dieses Sample genau zu diesem Frame im Bild aufgenommen wurde. Ich schaue mir dann hinterher das berechnete Frame und das Frame davor an um zu sehen, ob ich richtig gerechnet habe (später alles vollautomatisch mittels Software). Es hat auf jeden Fall in diesem Fall geklappt: In dem Videoframe, welches ich über das Audiosample berechnet hatte, ging die LED das erste mal an.
Also war es erfolgreich.

Bei dem ganzen gehe ich davon aus, dass ich eine konstante Bitrate (Audio), also immer die gleiche Samplingrate (hier 48000 Hz) und eine konstante Framerate (Video), also immer die gleiche fps (hier 29,97) habe. Die Schlüsselwörter für mich sind hierbei "KONSTANTE RATE".

Mit dem Wissen über die fps und die Samplingrate (gegengerechnet mit der Anzahl an Frames im Video und der Anahl der Samples im Audio - stimmt überein) komme ich auf 1601,6 Audiosample/Videoframe.

Die eigentliche Frage die ich habe kommt jetzt:
Kann ich (bei konstanter fps und konstanter Samplingrate) sagen, die ersten 1601,6 Audiosample gehören dem ersten Frame an. Sample 1602 bis 3204 ungefähr gehören dem zweiten Frame an und immer so weiter? So habe ich zum Beispiel in meinem Fall das Sample 139303 ganz klar dem Frame 86,97 (LED ging da das erste mal an- ERFOLG) zuteilen können. Kann ich davon ausgehen, dass das hinhaut

oder:

Kann es mal sein, dass trotz konstanter Rate auch mal zum Beispiel zu einem Frame 1500 Sample gehören und zu einem anderen zufälligerweise 1700 (um am Ende wieder bei der errechneten Anzahl an Samples pro Frame rauszukommen (hier 1601)).

Müsste ich in diesem Fall mit keyframes arbeiten? Bzw. mit keysamples beim Audio. Also dass im Container die Information gespeichert ist, welche Sample ganz genau zu welchem Frame gehören. Wenn ja (oder wenn es sowieso kein allzu großer Aufwand ist), wie könnte ich rausbekommen (über den Container und Zugriff über ffmpeg oder ähnliche Bibliotheken) welches Sample (z.B Nr. 139303 ) zu genau welchem Frame gehört?

Falls es nicht so einfach ist, oder es nicht nötig ist errechne ich eben immer über die Position im Audiostream die dazugehörige Position im Videostream. Komme so zum Beispiel bei Frame 86,97 raus. Es muss nicht super genau sein. Aber die Genauigkeit sollte auch unter 40ms Abweichung bleiben.

Danke für eure Hilfe
Gruß Tim
0

Kommentare

Weia
Weia26.03.2101:57
Bei all den Vorüberlegungen, die Du anführst, erstaunt mich die Frage. Ja, wenn beide Raten konstant sind, ist die Relation natürlich fix und mathematisch präzise vorhersagbar.

Ob das dann in der Praxis auf perfekte Synchronisation hinausläuft, ist aber eine völlig andere Frage, die von der zur Wiedergabe verwendeten Soft- und Hardware abhängt und daher in dieser allgemeinen Form nicht beantwortet werden kann. Da bleibt meiner Einschätzung nach eigentlich nur Versuch macht kluch.

Das hast Du ja nun aber schon getan. Weshalb ich mich frage, welch existenzielle Gegebenheit an der Synchronizität hängt, dass Du tausendprozentig sichergehen willst. Geht es überhaupt um audiovisuelle Wiedergabe oder eigentlich um etwas ganz anderes?
„🦖The dinosaurs invented Jesus to test our confidence in science“
+2
tim526.03.2108:55
Hallo Weia,

danke für deine Meinung. Es geht darum ein Video (ohne Ton) mit einem anderen Datensatz (Druckmessbilder - bei denen auch ein Druckbild sozusagen als Startdruckbild markiert ist) zu synchronisieren. Als Startpunkt der parallelen zeitsynchronen Darstellung soll also für das Video das markierte Frame und von den Druckdaten das markierte Druckbild dienen.

Aber wie du es schon sagtest, wenn die Raten konstant sind sollte ich (wie auch erfolgreich getestet) davon ausgehen können. Ich wollte mir eben noch eine zweite Meinung einholen.

Danke !!
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.