Hls stream herunterladen

Die HLS-Streams werden im .ts-Format geliefert und diese .ts-Dateien enthalten in der Regel H.264-codiertes Video und AAC-codiertes Audio, beide von einem Encoder komprimiert. Sie werden wiederum über das RTMP-Protokoll verpackt und an einen Medienserver gesendet, der wiederum den RTMP-Stream entpackt und als HLS-Playlist als HLS-Playlist neu verpackt, um ihn an ein CDN zu senden, das für eine schnellere Verteilung an Player überall zwischengespeichert wird. FFMpeg ist ein Multimedia-Framework mit der Fähigkeit, Multimedia-Dateien zu codieren, zu dekodieren, zu transcodieren, zu streamen und zu manipulieren. Ich finde dieses Tool aus zwei Gründen wirklich interessant. Erstens ist es Open Source, und zweitens kann es jeden und jeden Streaming-Vorgang ausführen, den Sie ausführen möchten. Früher bekannt als HLS Stream Detector. Erkennt M3U8/MPD/F4M/ISM-Wiedergabelisten und VTT-Untertitel, die von HLS/DASH/HDS/MSS-Streams verwendet werden. Stellt vorgefertigte Youtube-dl/FFmpeg/Streamlink/hlsdl Befehle zusammen. Um dies zu tun, fügen Sie eine Transcodierungsaktion hinzu und fügen Sie den neuen Stream in eine Kombinationsaktion ein: Ich habe mehrere Erfahrungen mit HLS-Streams und FFMpeg gemacht, und so werde ich in diesem Artikel teilen, wie ich In der Lage war, Mediensegmente einer Variante eines HLS-Streams herunterzuladen und zu kombinieren. hlsclient ist auch in der Lage, eine Audiospur nur aus einem Videostream mit FFMPEG zu erstellen. Das obige Manifest hat 7 Varianten. Nehmen Wir zum Beispiel müssen wir eine lokale Kopie der 1280×720 Variante in einem .mp4-Container herunterladen, wir müssen zuerst die Mediensegmente des Streams für diese Variante abrufen.

Um dies zu tun, stellen Sie zunächst sicher, dass Sie eine lokale Installation von ffmpeg haben: Wir werden mit dem HLS-Teststream unten arbeiten: mnmedias.api.telequebec.tv/m3u8/29880.m3u8 developer.apple.com/documentation/avfoundation/media_assets_playback_and_editing/asset_manipulation/downloading_and_playing_offline_http_live_streaming_content?changes=_4 HLS wurde von Apple entwickelt und steht für “HTTP Live Streaming”, das heute das am weitesten verbreitete Streaming-Protokoll für die Wiedergabe ist. HLS-Streaming ist eine adaptive Bitrate-Technologie. Dies bedeutet, wenn Video in HLS codiert wird, werden mehrere Dateien für unterschiedliche Bandbreiten und auflösungen (Bildschirmgrößen) erstellt. Die Streams werden dem Client in Echtzeit mithilfe einer zugeordnet. M3u8 Indexdatei basierend auf Bildschirmgröße und verfügbarer Bandbreite. Lassen Sie mich erklären, was diese Flags tun: “-i” gibt die Eingabedatei an, die eine Stream-URL oder eine beliebige Mediendatei sein kann. “-map p:5” weist ffmpeg an, den Stream mit der Programm-ID 5 auszuwählen, was in unserem Fall die 720p-Variante ist (Um die verschiedenen Programm-IDs eines Streams zu kennen, führen Sie nur ffmpeg -i -datei/url> aus). “-c copy” weist ffmpeg an, standardbezogene Video- und Audioeigenschaften zu kopieren und keine Codierung vorzunehmen. “-f segment -segment_list” weist ffmpeg an, die Eingabedatei mit Ausgabedateien im Format out%03d.ts zu segmentieren. “-t” teilt ffmpeg die Dauer des Ausführens des Streams in Sekunden mit. Wenn Sie den obigen Befehl ausführen, werden Blöcke von TS-Segmenten mit einer Dauer von jeweils etwa 3 Sekunden innerhalb des aktuellen Arbeitsverzeichnisses generiert.