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

thiago.adriano26
источник
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
Aergistal
источник
Здравствуйте, этот ответ помог мне записать прямой эфир с url-адреса m3u8, а видео также сохраняется в output.mp4. Мой вопрос: можем ли мы указать в этой команде время в секундах / минутах, чтобы сохраняемое видео было заданного времени. В настоящее время запись продолжается и останавливается, пока я не нажму q в консоли. Заранее спасибо
Маюри Рупарел
1
@Mayuri -t <time>после ввода в s или hms.ms
aergistal
Эй, может ли кто-нибудь помочь мне добиться прогресса загрузки в том же случае
Шивам Пармар
17

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

Blackmiaool
источник
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
Билл Котсиас