web-dev-qa-db-fra.com

Pourquoi ffmpeg ignore-t-il l'indicateur protocol_whitelist lors de la conversion du flux https m3u8?

J'essaie de télécharger et de convertir un flux m3u8 en mp4 en utilisant ffmpeg. La commande que j'ai essayée pour la première fois était

ffmpeg -i MIE.m3u8 -c copy -bsf:a aac_adtstoasc -safe 0 -protocol_whitelist file,http,https,tcp,tls,crypto MIE.mp4

(voir ci-dessous pour le contenu de MIE.m3u8)

Cela a échoué immédiatement avec une erreur

[https @ 0x7fb419607d40] Protocol 'https' not on whitelist 'file,crypto'!
MIE.m3u8: Invalid argument

(Notez que l'adresse mémoire change à chaque fois.)

J'ai découvert le -protocol_whitelist drapeau et ajouté -protocol_whitelist file,http,https,tcp,tls,crypto à ma commande

ffmpeg -i MIE.m3u8 -c copy -bsf:a aac_adtstoasc -safe 0 -protocol_whitelist file,http,https,tcp,tls,crypto MIE.mp4

mais cela a toujours entraîné la même erreur.

Pourquoi ffmpeg semble ignorer le protocol_whitelist drapeau et paramètres?


MIE.m3u8 (que j'ai réussi à récupérer sur le site Web j'essaie de gratter la vidéo) ressemble à ceci:

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=508000,RESOLUTION=640x360,CODECS="avc1.77.30, mp4a.40.2"
https://nhk-vh.akamaihd.net/i/das/D0005140/D0005140255_00000_V_000.f4v/index_0_av.m3u8?null=0&id=AgBdrl8GX2UAVyUXA1tF7MYlFTbSF88WtA7oAMDksTsiVdAKPuuREVfi8iXMsOWFp6eQU2sk6dnE9g%3d%3d
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=47000,CODECS="mp4a.40.2"
https://nhk-vh.akamaihd.net/i/das/D0005140/D0005140255_00000_V_000.f4v/index_0_a.m3u8?null=0&id=AgBdrl8GX2UAVyUXA1tF7MYlFTbSF88WtA7oAMDksTsiVdAKPuuREVfi8iXMsOWFp6eQU2sk6dnE9g%3d%3d
13
Jacob Ford

Faire -protocol_whitelist file,http,https,tcp,tls le premier paramètre.

ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -i MIE.m3u8 -c copy -bsf:a aac_adtstoasc MIE.mp4

Je ne trouve aucune documentation officielle¹ à ce sujet, mais cela fonctionne lorsque protocol_whitelist est spécifié avant l'entrée.

¹ Mais j'ai eu l'idée d'Alexander Strasse sur un forum de discussion Debian Bugs .

10
Jacob Ford