/ / descriptografar a lista de reprodução .m3u8 criptografada do AES-128 e arquivos .TS com ffmpeg - ffmpeg, streaming, transmissão ao vivo em http, hls

descriptografar a lista de reprodução .m3u8 criptografada do AES-128 e arquivos .TS com ffmpeg - ffmpeg, streaming, transmissão ao vivo em http, hls

Eu estou tentando decifrar um .m3u8 lista de reprodução, segui estes passos:

  • criar um diretório
  • Copie a chave para um arquivo de chave, ou seja, my.key, e coloque-o no dir. Nota que as teclas podem ser giradas, se a lista de reprodução tiver várias chaves, copie todas deles para arquivos diferentes.
  • copiar tudo .ts segmentos para o mesmo dir
  • copiar e editar o playlist.m3u8 e use apenas o (s) nome (s) do (s) nome (s) para o chave (s) URI (s) e segmentos.

e usando este comando para descriptografar a lista de reprodução

ffmpeg -i playlist.m3u8 -c copy output.ts

mas eu tenho esse erro: Invalid data found when processing input

aqui está o meu 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
  • O que há de errado com o meu comando?
  • como não converter playlist para um .TS Arquivo? Eu quero descriptografar arquivos separtly

Respostas:

1 para resposta № 1

Tente especificar o caminho local completo no seu manifesto, portanto, torne a KEY like:

#EXT-X-KEY:METHOD=AES-128,URI="file://path/to/local/my.key"

e os pedaços de TS todos gostam:

file://path/to/local/s-6-v1-a1.ts

Se isso não funcionar, então ffmpeg pode precisar doentrada para um m3u8 para ser servido por HTTP. Então coloque o seu arquivo m3u8 e a chave e todos os seus pedaços em algum diretório web e execute novamente o comando ffmpeg usando o URL do m3u8 para que ele seja:

ffmpeg -i http://mytestwebserver.com/playlist.m3u8 -c copy output.ts

Se você não tem acesso a um servidor web você pode instalar algum local e livre como MAMP.Eu não tive problemas usando o comando acima para copiar um fluxo HLS localmente quando a entrada é uma URL HLS.