FFMPEG mp4 de http live streaming m3u8 file? [cerrado]

85

¿Cómo puedo extraer mp4 del archivo m3u8 de transmisión en vivo http? Probé este comando a continuación:

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

Tomé este error:

[NULL @ 0000000002f07060] El encabezado del paquete no está contenido en extradatos globales, flujo dañado o flujo de bits MP4 / AVCC no válido No se pudo abrir el filtro de flujo de bits h264_mp4toannexb para el flujo 0 con copia de códec: I

thiago.adriano26
fuente
1
puede usar esta extensión chrome.google.com/webstore/detail/hls-downloader/…
regisbsb

Respuestas:

195

Tu comando es completamente incorrecto. El formato de salida no es rawvideoy no es necesario el filtro de flujo de bits h264_mp4toannexbque se utiliza cuando se quiere convertir el h264contenido en una mp4al Annex Bformato utilizado por MPEG-TS, por ejemplo. Lo que desea utilizar en su lugar es aac_adtstoascpara las AACtransmisiones.

ffmpeg -i http://.../playlist.m3u8 -c copy -bsf:a aac_adtstoasc output.mp4
aergistal
fuente
Hola, Esta respuesta me ayudó a grabar transmisiones en vivo desde la url m3u8 y el video también se guarda en output.mp4. Mi pregunta es ¿podemos especificar el tiempo en segundos / minutos en este comando para que el video guardado sea del tiempo especificado? Actualmente sigue grabando y se detiene hasta que presiono q en la consola. Gracias de antemano
Mayuri Ruparel
1
@Mayuri -t <time>después de la entrada en s o hms.ms
aergistal
¿Alguien puede ayudarme a obtener el progreso de la descarga en el mismo caso?
Shivam Parmar
17

La respuesta de Aergistal funciona, pero descubrí que convertir a mp4 puede hacer que algunos videos m3u8 se rompan. Si tiene este problema, intente convertirlos a mkv y luego convertirlos a mp4.

blackmiaool
fuente
32
He descubierto que ffmpeg -i http://...m3u8 -c copy live.mkvfunciona muy bien. Solo si alguien viene y lee esto.
rwenz3l
@blackmiacool: ¿Cómo se puede lograr esto programáticamente?
Vineesh TP
.tstambién funciona silenciosamente bien para algunas transmisiones
Honza R
1
Si tiene una dirección https: // cámbiela a http: // de lo contrario obtendrá un error "HTTP error 403 prohibido" ... Para convertir MKV a MP4, simplemente use, ffmpeg -i file.mkv file.mp4pero ¿por qué debería hacer eso?
Erich Kuester
3
En el caso del m3u8archivo local , también tuve que agregar una lista blanca al frente, como:ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -i 02.m3u8 -c copy 02.mkv
Bill Kotsias