FFMPEG mp4 z pliku m3u8 przesyłania strumieniowego na żywo http? [Zamknięte]

85

Jak mogę wyodrębnić mp4 z pliku m3u8 do transmisji strumieniowej na żywo? Wypróbowałem to polecenie poniżej:

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

Wziąłem ten błąd:

[NULL @ 0000000002f07060] Nagłówek pakietu nie jest zawarty w globalnych danych dodatkowych, uszkodzony strumień lub nieprawidłowy strumień bitów MP4 / AVCC Nie można otworzyć filtru strumienia bitów h264_mp4toannexb dla strumienia 0 z kopią kodeka: I

thiago.adriano26
źródło
1
możesz użyć tego rozszerzenia chrome.google.com/webstore/detail/hls-downloader/ ...
regisbsb

Odpowiedzi:

195

Twoje polecenie jest całkowicie błędne. Format wyjściowy nie jest rawvideoi nie potrzebujesz filtru strumienia bitów, h264_mp4toannexbktóry jest używany, gdy chcesz przekonwertować h264plik zawarty w formacie an mp4na Annex Bformat używany MPEG-TSna przykład. Zamiast tego chcesz użyć aac_adtstoascdla AACstrumieni.

ffmpeg -i http://.../playlist.m3u8 -c copy -bsf:a aac_adtstoasc output.mp4
aergistal
źródło
Witam, ta odpowiedź pomogła mi nagrać transmisję na żywo z adresu URL m3u8, a wideo jest również zapisywane w pliku output.mp4. Moje pytanie brzmi: czy możemy określić czas w sekundach / minutach w tym poleceniu, aby zapisane wideo miało określony czas. Obecnie nagrywa i zatrzymuje się do momentu wciśnięcia q w konsoli. Z góry dziękuję
Mayuri Ruparel
1
@Mayuri -t <time>po wejściu w s lub hms.ms
aergistal
Hej, czy ktoś może mi pomóc w uzyskaniu postępów w pobieraniu w tym samym przypadku
Shivam Parmar Grudnia
17

Odpowiedź Aergistal działa, ale odkryłem, że konwersja do formatu mp4 może spowodować uszkodzenie niektórych filmów m3u8. Jeśli utkniesz z tym problemem, spróbuj przekonwertować je na mkv , a później przekonwertować je na mp4.

blackmiaool
źródło
32
Odkryłem, że ffmpeg -i http://...m3u8 -c copy live.mkvdziała to bardzo dobrze. Tylko jeśli ktoś podejdzie i to przeczyta.
rwenz3l
@blackmiacool: Jak można to osiągnąć programowo?
Vineesh TP
.tsdziała również cicho dla niektórych strumieni
Honza R
1
Jeśli masz adres https: //, zmień go na http: // w przeciwnym razie pojawi się błąd „Błąd HTTP 403 zabroniony” ... Do konwersji MKV na MP4 po prostu użyj, ffmpeg -i file.mkv file.mp4ale po co to robić?
Erich Kuester
3
W przypadku m3u8pliku lokalnego musiałem również dodać białą listę na początku, na przykład:ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -i 02.m3u8 -c copy 02.mkv
Bill Kotsias