estoy tratando de descifrar un .m3u8
lista de reproducción, he seguido estos pasos:
- crear un directorio
- Copie la clave a un archivo clave, es decir
my.key
, y colocarlo en la dir. Nota que las teclas se pueden girar, si la lista de reproducción tiene varias teclas, copiar todas De ellos a diferentes archivos. - cópialo todo
.ts
segmentos al mismo directorio - copiar y editar el
playlist.m3u8
y use solo el (los) nombre (s) de archivo para Clave (s) URI (s) y segmentos.
y usando este comando para descifrar la lista de reproducción
ffmpeg -i playlist.m3u8 -c copy output.ts
pero tengo este error: Invalid data found when processing input
Aquí está mi m3u8:
#EXTM3U
#EXT-X-TARGETDURATION:12
#EXT-X-ALLOW-CACHE:YES
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-KEY:METHOD=AES-128,URI="my.key"
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:6.000,
s-1-v1-a1.ts
#EXTINF:6.000,
s-2-v1-a1.ts
#EXTINF:6.000,
s-3-v1-a1.ts
#EXTINF:12.000,
s-4-v1-a1.ts
#EXTINF:12.000,
s-5-v1-a1.ts
#EXTINF:6.000,
s-6-v1-a1.ts
#EXT-X-ENDLIST
- ¿Qué hay de malo con mi orden?
- cómo no convertir una lista de reproducción a una
.TS
¿expediente? quiero descifrar archivos por separado
Respuestas
1 para la respuesta № 1Intente especificar la ruta local completa en su manifiesto, así que haga que la CLAVE sea como:
#EXT-X-KEY:METHOD=AES-128,URI="file://path/to/local/my.key"
y los trozos de TS todos como
file://path/to/local/s-6-v1-a1.ts
Si eso no funciona, entonces ffmpeg podría necesitar elentrada para un m3u8 para ser servido a través de HTTP. Así que ponga su archivo m3u8 y la clave y todos sus fragmentos en algún directorio web y vuelva a ejecutar su comando ffmpeg usando la URL para el m3u8 para que sea como:
ffmpeg -i http://mytestwebserver.com/playlist.m3u8 -c copy output.ts
Si no tiene acceso a un servidor web, puede instalar algunos locales y gratuitos como MAMP. No he tenido problemas al usar el comando anterior para copiar una transmisión HLS localmente cuando la entrada es una URL de HLS.