Wir müssen die Video Bitrate eines HLS
streams mit ffprobe
erkennen, indem wir die m3u8
Datei von .ts
verwenden.
Wenn ich m3u8
verwende, kann ich die Dauer, die Abmessungen, die verwendeten Codecs, die Audio Bitrate , aber keine Bitrate für das Video abrufen ffprobe
.
In diesem Beispiel oben weiß ich, dass das Video etwa 520 Kbps ist, muss aber eine Möglichkeit finden, das programmatisch entweder mit ffprobe
oder auf andere Weise zu lesen. Mit dem, was ich gerade habe, kann ich die meisten benötigten Informationen erhalten, aber mir fehlt ein wichtiger Wert, nämlich das Video Bitrate .
Welche anderen Optionen könnte ich ausprobieren?
Danke!
Für die Videobitrate können Sie Folgendes tun:
%Vor%, um die komprimierten Paketgrößen und -dauern (in Bytes bzw. Sekunden) für eine Reihe von Frames zu erhalten. Führen Sie es für eine Weile aus und berechnen Sie dann die durchschnittliche Bitrate für die Gesamtdauer.
In diesem Beispiel oben weiß ich, dass das Video etwa 520 Kbps ist, muss es aber finde einen Weg, das programmatisch mit fffprobe oder anderen zu lesen anderen Weg.
Der Text in Ihrer HLS-Datei hat einen Eintrag: AVERAGE-BANDWIDTH: 599686
FFProbe sagt AAC Audio Bitrate ist: 79 kb / s
Um die Videobitrate zu erhalten, können Sie diese Formel verwenden:
HLS-Durchschnittsbandbreite minus FFProbe-Audio-Bitrate = geschätzte Videobitrate
Mit Ihren Zahlen ... (599686 - 79000) = 520686.
Dies bestätigt tatsächlich Ihre "Ich weiß, dass Video um 520Kbps ist". Holen Sie einfach die HLS-Textdatei in ein String
und verwenden Sie einige String-Funktionen (oder auch Reguläre Ausdrücke), um die erste Zahl zu extrahieren.
Ich hoffe, es hilft.
Tags und Links video-streaming ffmpeg hls m3u8 ffprobe