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