Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Amateurfilm-Forum. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

timl5

Registrierter Benutzer

  • »timl5« ist der Autor dieses Themas

Beiträge: 3

Dabei seit: 25. März 2021

  • Private Nachricht senden

1

Donnerstag, 25. März 2021, 13:36

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

Hallo,

ich bin sehr neu im Bereich des Films bzw. der Bearbeitung und ähnlichem.

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

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 und gleichzeitig das Aufleuchten einer LED, 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. Es hat geklappt. In dem Frame, welches ich über das Sample 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 (gegenrechnet mit der Anzahl an Frames im Video und der Anahl der Samples im Audio) 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?

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 sagen wir 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. 302938 zu) 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 78,7 raus. Es muss nicht super genau sein. Aber die Genauigkeit sollte auch unter 40ms Abweichung bleiben.

Danke für eure Hilfe
Gruß Tim

wabu

lernt noch

  • »wabu« ist männlich

Beiträge: 1 206

Dabei seit: 12. Mai 2012

Wohnort: Pinneberg

Hilfreich-Bewertungen: 204

  • Private Nachricht senden

2

Donnerstag, 25. März 2021, 14:56

Mal so spontane Einfälle:
1. Was ist für dich ein Sample?
Das lese ich bei Wikipedia:
https://de.wikipedia.org/wiki/Sampling_(Musik)
2. Ein Clip von 16 sec hat auch 16 sec Ton
3. Schall und Licht sind sehr unterschiedlich schnell. In der Praxis bedeutet das: Das Licht hat für uns keine Zeitverzögerung.
Schall aber doch. Bei dreißig Metern ist das schon 1/10 sec Unterschied - das wären drei frames.
So könnte es korrekter sein, den Peak nicht auf das frame mit der LED zu setzen

timl5

Registrierter Benutzer

  • »timl5« ist der Autor dieses Themas

Beiträge: 3

Dabei seit: 25. März 2021

  • Private Nachricht senden

3

Donnerstag, 25. März 2021, 15:10

Hallo, danke für deine Antwort

Das verstehe ich unter Sample:

https://www.izotope.com/en/learn/digital…-bit-depth.html

Wenn man in Audacity zum Beispiel eine mp3 Datei einließt und nah hinzoomt kann man jedes einzelne Sample (mit Amplitude) erkennen. Alle Sample zusammen ergeben die Audiospur (ZickZack-mit vielen Frequenzen enthalten)

Der Ton wird über ein Mikrofon aufgenommen. Der Tonerzeuger sitzt direkt am Mikro. Da wird also keine nennenswerte Verzögerung auftreten denke ich.

Matthes

Registrierter Benutzer

  • »Matthes« ist männlich

Beiträge: 113

Dabei seit: 8. Juni 2014

Wohnort: Köln

Hilfreich-Bewertungen: 41

  • Private Nachricht senden

4

Donnerstag, 25. März 2021, 17:05

@ timl5: Nur eine kurze Vorbemerkung: Auch bei einer konstanten Framerate / Samplingrate kann die Bitrate variabel sein! Die Bitrate bezieht sich auf die menge an Daten, die über einen bestimmten Zeitraum übertragen wird. Und die kann mit verschiedenen Kompressionsalgorithmen dann auch unterschiedlich ausfallen!

Mit der Samplingrate und Framerate bist du aber auf der richtigen Fährte!
Die Samplingrate ist die "Abtastfrequenz" für das Audiosignal, daneben gibt es - um die Verwirrung komplett zu machen - noch die Bittiefe, das ist dann die Auflösung in der Amplitude, die auf die Bitrate ebenfalls einen entscheidenden Einfluss hat.
Im Videobereich ist dann die Framerate, also die Anzahl der Bilder pro Sekunde das entsprechende Pendant. (der Kompressionsalgorithmus ist dann das Videoformat [Codec], die Bittiefe entspräche in etwa der Farbtiefe, zusätzlich kommt im Videobereich dann noch die Auflösung ins Spiel, da gibt es im Audiobereich nichts passendes).

Eine Audio wird mit 44,1 kHz gesampelt, bei DVD / BR liegt die Tonspur mit 48 kHz.
Videosignal für Schnittprogramme ist mit einer Reihe von (konstanten) Frameraten möglich und üblich: 24, 25, 30, 48, 50 und 69 fps sind die gängigen.
Die meisten Schnittprogramme arbeiten auf fps-Ebene, entsprechend wird auch der Ton in diesem Raster geschnitten und verarbeitet.
Von Magix ProX weiß ich, dass es im Tonbereich auf Sampleebene arbeitet, also mit 1/48000 sec.

Das sind soweit die Eckdaten, von denen Du in Deiner Betrachtung ausgehen kannst.

Es haben bereits 2 registrierte Benutzer diesen Beitrag als hilfreich eingestuft.

Benutzer, die diesen Beitrag hilfreich fanden:

wabu, timl5

timl5

Registrierter Benutzer

  • »timl5« ist der Autor dieses Themas

Beiträge: 3

Dabei seit: 25. März 2021

  • Private Nachricht senden

5

Freitag, 26. März 2021, 09:15

@Matthes

Danke für deine Ausführungen und Überlegungen. Die haben mir einige Sachen noch einmal klar gemacht auf die ich auch achten muss.