FFMPEG mp4 из файла http в прямом эфире m3u8? [закрыто]


85

Как я могу извлечь mp4 из файла m3u8 прямой трансляции http? Я пробовал эту команду ниже:

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

Я взял эту ошибку:

[NULL @ 0000000002f07060] Заголовок пакета не содержится в глобальных дополнительных данных, поврежден поток или недопустимый поток битов MP4 / AVCC Не удалось открыть фильтр потока битов h264_mp4toannexb для потока 0 с копией кодека: I


1
вы можете использовать это расширение chrome.google.com/webstore/detail/hls-downloader/…
regisbsb

Ответы:


195

Ваша команда полностью неверна. Формат вывода - нет, rawvideoи вам не нужен фильтр битового потока, h264_mp4toannexbкоторый используется, когда вы хотите преобразовать содержимое, h264содержащееся в, mp4в Annex Bформат, используемый, MPEG-TSнапример,. Вместо этого вы хотите использовать aac_adtstoascдля AACпотоков.

ffmpeg -i http://.../playlist.m3u8 -c copy -bsf:a aac_adtstoasc output.mp4

Здравствуйте, этот ответ помог мне записать прямой эфир с url-адреса m3u8, а видео также сохраняется в output.mp4. Мой вопрос: можем ли мы указать в этой команде время в секундах / минутах, чтобы сохраняемое видео было заданного времени. В настоящее время запись продолжается и останавливается, пока я не нажму q в консоли. Заранее спасибо
Маюри Рупарел

1
@Mayuri -t <time>после ввода в s или hms.ms
aergistal

Эй, может ли кто-нибудь помочь мне добиться прогресса загрузки в том же случае
Шивам Пармар

17

Ответ Aergistal работает, но я обнаружил, что преобразование в mp4 может привести к нарушению некоторых видеороликов m3u8. Если вы столкнулись с этой проблемой, попробуйте преобразовать их в mkv , а позже преобразовать в mp4.


32
Я обнаружил, что это ffmpeg -i http://...m3u8 -c copy live.mkvработает очень хорошо. Просто если кто-нибудь подойдет и прочитает это.
rwenz3l 03

@blackmiacool: Как это сделать программно?
Vineesh TP 03

.tsтакже хорошо работает для некоторых стримов
Honza R

1
Если у вас есть адрес https: //, измените его на http: //, иначе вы получите ошибку «Ошибка HTTP 403 запрещена» ... Для преобразования MKV в MP4 просто используйте, ffmpeg -i file.mkv file.mp4но зачем это делать?
Эрих

3
В случае локального m3u8файла мне также пришлось добавить белый список впереди, например:ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -i 02.m3u8 -c copy 02.mkv
Билл Котсиас
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.