FFMPEG mp4 von http Live-Streaming m3u8-Datei? [geschlossen]

80

Wie kann ich mp4 aus der http live stream m3u8 Datei extrahieren? Ich habe diesen Befehl unten versucht:

ffmpeg -i {input file} -f rawvideo -bsf h264_mp4toannexb -vcodec copy out.mp4

Ich habe diesen Fehler gemacht:

[NULL @ 0000000002f07060] Der Paket-Header ist nicht in globalen Extradaten, einem beschädigten Stream oder einem ungültigen MP4 / AVCC-Bitstream enthalten. Fehler beim Öffnen des Bitstream-Filters h264_mp4toannexb für Stream 0 mit Codec-Kopie: I.

thiago.adriano26
quelle
Sie können diese Erweiterung chrome.google.com/webstore/detail/hls-downloader/…
regisbsb

Antworten:

189

Ihr Befehl ist völlig falsch. Das Ausgabeformat ist nicht rawvideound Sie nicht die Bitstrom - Filter benötigen , h264_mp4toannexbdie verwendet wird , wenn Sie die konvertierende h264enthalten in einem mp4zu dem Annex BFormat , das von verwendete MPEG-TSzum Beispiel. Was Sie stattdessen verwenden möchten, ist das aac_adtstoascfür die AACStreams.

ffmpeg -i http://.../playlist.m3u8 -c copy -bsf:a aac_adtstoasc output.mp4
aergistal
quelle
Hallo, diese Antwort hat mir geholfen, Live-Streams von der m3u8-URL aufzunehmen, und das Video wird auch in output.mp4 gespeichert. Meine Frage ist, ob wir in diesem Befehl die Zeit in Sekunden / Minuten angeben können, damit das gespeicherte Video der angegebenen Zeit entspricht. Derzeit wird die Aufnahme fortgesetzt und angehalten, bis ich in der Konsole q drücke. Vielen Dank im Voraus
Mayuri Ruparel
1
@ Mayuri -t <time>nach der Eingabe in s oder hms.ms
aergistal
17

Die Antwort von Aergistal funktioniert, aber ich habe festgestellt, dass das Konvertieren in mp4 einige m3u8-Videos beschädigen kann. Wenn Sie mit diesem Problem nicht weiterkommen , versuchen Sie, sie in mkv und später in mp4 zu konvertieren .

blackmiaool
quelle
29
Ich habe festgestellt, dass ffmpeg -i http://...m3u8 -c copy live.mkvdas sehr gut funktioniert. Nur wenn jemand vorbeikommt und dies liest.
rwenz3l
@blackmiacool: Wie kann dies programmatisch erreicht werden?
Vineesh TP
.tsfunktioniert auch ruhig gut für einige Streams
Honza R
1
Wenn Sie eine https: // -Adresse haben, ändern Sie diese in http: //, andernfalls wird der Fehler "HTTP-Fehler 403 verboten" angezeigt. Zum Konvertieren von MKV in MP4 verwenden Sie einfach, ffmpeg -i file.mkv file.mp4aber warum sollte man das tun?
Erich Kuester
2
Im Falle einer lokalen m3u8Datei musste ich auch eine weiße Liste vorne hinzufügen, wie:ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -i 02.m3u8 -c copy 02.mkv
Bill Kotsias