/ / descifre AES-128 cifrado .m3u8 lista de reproducción y archivos .TS con ffmpeg - ffmpeg, streaming, http-live-streaming, hls

descifre AES-128 cifrado .m3u8 lista de reproducción y archivos .TS con ffmpeg - ffmpeg, streaming, http-live-streaming, hls

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 № 1

Intente 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.