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
ffmpeg
http-live-streaming
thiago.adriano26
źródło
źródło
Odpowiedzi:
Twoje polecenie jest całkowicie błędne. Format wyjściowy nie jest
rawvideo
i nie potrzebujesz filtru strumienia bitów,h264_mp4toannexb
który jest używany, gdy chcesz przekonwertowaćh264
plik zawarty w formacie anmp4
naAnnex B
format używanyMPEG-TS
na przykład. Zamiast tego chcesz użyćaac_adtstoasc
dlaAAC
strumieni.źródło
-t <time>
po wejściu w s lub hms.msOdpowiedź 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.
źródło
ffmpeg -i http://...m3u8 -c copy live.mkv
działa to bardzo dobrze. Tylko jeśli ktoś podejdzie i to przeczyta..ts
działa również cicho dla niektórych strumieniffmpeg -i file.mkv file.mp4
ale po co to robić?m3u8
pliku 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