Ich überprüfte AVPlayerItem Zugriff und Fehlerprotokolle und in der Regel gibt es keine Fehlereinträge und Zugriffseinträge, aber wenn es einen Fehlereintrag gibt, ist es für die Master-Playlist-URL, aber ich sehe die Wiedergabeliste und den Stream heruntergeladen, wenn .movpkg Verzeichnis und nichts Verdächtiges in diesen XML. Ich möchte M3U8-Dateiblöcke (HLS) herunterladen und dieses Video (nach dem Entschlüsseln) für die spätere Anzeige speichern. Ich habe eine Demo gemacht, um M3U8-Datei abzuspielen, aber ich möchte Videodaten für die spätere Ansicht herunterladen. Sie können ffmpeg verwenden, um den HTTP-LS-Stream herunterzuladen und zu dekodieren: Hallo dort, wir haben auch das gleiche Problem. Wir konnten es beheben, indem wir die Stream-Playlist-Elemente in der Master-m3u8-Datei nach Bandbreite in absteigender Reihenfolge sortierten. Dieser Ansatz wurde auch in Sitzung 503 der WWDC 2016 um 33:15 (developer.apple.com/videos/play/wwdc2016/503) erwähnt, um die anfängliche Qualität der HLS-Wiedergabe besser einzuschätzen. Prost! Update:Nach dem Sortieren der Wiedergabelistenelemente tauchte das Problem schließlich wieder auf. Nach einer weiteren Debugging-Sitzung mit verschiedenen HLS-Streams stellten wir fest, dass heruntergeladene HLS-Streams dem HTTP-Header “Cache-Control” der Playlist-URLs entsprechen. In unserem Fall wurde eine “Must-Revalidate” im Headerwert enthalten. Dieser Wert führte zu dem beschriebenen Problem, nachdem der Cache veraltet/abgelaufen wurde (`max-age`-Wert im `Cache-Control`-Header). Die Auswahl eines geeigneten Headerwerts ohne Einbeziehung von “must-revalidate” hat das Problem sofort für uns auf reproduzierbare Weise gelöst. Der Rest dieses Abschnitts beschreibt Apples ALHLS. Es reduziert die Glas-zu-Glas-Verzögerung beim Streamen über HLS, indem die Zeit für den Start von Livestream-Wiedergaben reduziert wird und diese Zeit während eines Live-Streaming-Events beibehalten wird.

Es funktioniert durch das Hinzufügen von partiellen Mediensegmentdateien in den Mix, ähnlich wie MPEG-CMAf fMP4. Im Gegensatz zu CMAF unterstützt ALHLS auch partielle MPEG-2 TS-Transportdateien. HTTP/2 ist erforderlich, um die Segmente zusammen mit der Wiedergabeliste zu übertragen, wodurch der Aufwand für das Herstellen wiederholter HTTP/TCP-Verbindungen verringert wird. Um dies zu beheben, müssen Sie entweder die höchste Bitrate und die niedrigste Bitrate herunterladen (es kann ein paar Prozent des benötigten Speichers hinzufügen) oder Sie müssen die hohe Bitrate auf unter 10Mbit begrenzen. Oder vielleicht ist es nur Video ist eine höhere Auflösung als Full HD (1920x1080p) – nicht rememebr genau Logik des Players. Es gibt zwei wichtige Bausteine von Apples HTTP Live Streaming. Die eine ist die Art und Weise, wie Videodateien gespeichert werden (um später über HTTP bedient zu werden) und die andere sind die M3U8-Indexdateien, die dem Player (der Streaming-Client-App) mitteilt, wo er welche Videodatei abrufen soll. Wir implementierten das Herunterladen von vimeo gehosteten hls-Streams mit AVAssetDownloadTask, aber wenn wir versuchen, heruntergeladene hls im Flugzeugmodus abzuspielen, schlägt es manchmal mit NSURLErrorNotConnectedToInternet Fehler fehl.

Are You 21
or older?