FFmpeg - Externe Audiodatei synchronisieren

Ich erstelle einige Codierungsvorlagen für das Streaming mit mehreren Bitraten und möchte einen Fallback erstellen, der nur Audio ist. Wenn also die Bandbreite einer Benutzerverbindung unter x fällt, wird die Videowiedergabe unterbrochen und auf Nur-Audio umgeschaltet.

Das Problem ist die Ausrichtung des Audiostroms. Ich habe den Videostream mit ausgerichtet

-x264opts keyint=48:min-keyint=48:no-scenecut 

Dadurch werden gleiche Intervalle in Keyframes erstellt, was konsistente GOPs für das Streaming ermöglicht. Eine solche Option ist jedoch nicht nur für Audio verfügbar.

Ich habe das Audio aus der Originaldatei wie folgt extrahiert:

ffmpeg -i Sample.avi -vn -ar 44100 -ac 2 -ab 128k -f mp3 audio_only.mp3

Dadurch wird eine separate .MP3-Datei erstellt, die den Audiostreams der Originaldatei (.MP4) entspricht. Ich habe jedoch keine Möglichkeit sicherzustellen, dass dies mit den Audiostreams der codierten .MP4-Dateien (dem Satz mit mehreren Bitraten) übereinstimmt.

Gibt es also eine Möglichkeit, sicherzustellen, dass diese Dateien ausgerichtet sind? Oder sollte ich das Audio aus einer der codierten Dateien extrahieren, anstatt aus der Mezzanine-Datei?

Antworten (1)

Eine Möglichkeit, dies zu erreichen, könnte darin bestehen, eine .MP4-Datei mit Ihrem Audio und einem vollständig schwarzen Bild zu erstellen, das in etwas kodiert werden sollte, das nicht viel größer als die Audiodatei ist, aber dennoch dieselbe interne Struktur wie die vollständigen Videodateien hat.

Ich könnte das gebrauchen, und es wird wahrscheinlich funktionieren. Allerdings wäre die Datei dann technisch gesehen nicht nur Audio. Ich sehe aber keinen anderen Weg. Danke für deinen Vorschlag!
Wenn Sie das Audio aus einer der codierten Dateien extrahieren, sollten Sie nur Audio erhalten. -copytsDenken Sie daran , den Extraktionsbefehl hinzuzufügen und in .mp4 zu extrahieren.
@WouterPol Ein weiterer möglicher Vorteil besteht darin, dass Sie ein statisches Bild wie Text über Schwarz mit der Aufschrift "Niedrige Bandbreite - Nur Audio" verwenden können. Das würde etwas mehr Platz brauchen, aber nicht viel.
Ja, das wäre eine großartige Fallback-Technik, danke!