web-dev-qa-db-fra.com

Comment télécharger des fichiers vidéo Dash tels qu'ils apparaissent sur le serveur?

Est-il possible, étant donné un fichier mpd comme https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd , de télécharger facilement tous les fichiers Dash stockés sur le serveur (en supposant que nous savons que c'est du contenu statique sur le serveur). Autrement dit, je devrais pouvoir exécuter un serveur HTTP servant le contenu que j'ai téléchargé et pointer un lecteur Dash vers lui pour lire la même vidéo.

youtube-dl ne semble pas me donner le package Dash. Je pourrais utiliser curl pour effectuer des requêtes XHR comme le navigateur, mais j'espère qu'il existe un moyen plus simple.

enter image description here

3
Peter Tseng

J'ai trouvé un projet qui télécharge les segments tels qu'ils sont stockés sur le serveur: https://github.com/Viblast/dash-proxy

J'ai dû le bifurquer pour résoudre quelques problèmes: https://github.com/elv-peter/dash-proxy

2
Peter Tseng

Pas besoin de développer une roue!

Le grand outil youtube-dl connaît des centaines de plates-formes/protocoles/etc ainsi que MPEG DASH ainsi que Apple HLS et ainsi de suite et ainsi de suite! Très souvent des mises à jour/corrections de bugs

S'amuser!

http://rg3.github.io/youtube-dl/

PS .: Si vous souhaitez conserver des fragments - utilisez l'option

--keep-fragments                 

Conservez les fragments téléchargés sur le disque une fois le téléchargement terminé; les fragments sont effacés par défaut

Mise à jour:

Votre liste de lecture possède de nombreuses options (basées sur la bande passante vidéo), par exemple:

youtube-dl.exe -F https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd
[generic] bbb_30fps: Requesting header
WARNING: Falling back on generic information extractor.
[generic] bbb_30fps: Downloading webpage
[generic] bbb_30fps: Extracting information
[info] Available formats for bbb_30fps:
format code                 extension  resolution note
bbb_a64k                    m4a        audio only DASH audio   67k , m4a_dash container, mp4a.40.5 (48000Hz)
bbb_30fps_320x180_200k      mp4        320x180    DASH video  254k , mp4_dash container, avc1.64000d, 30fps, video only
bbb_30fps_320x180_400k      mp4        320x180    DASH video  507k , mp4_dash container, avc1.64000d, 30fps, video only
bbb_30fps_480x270_600k      mp4        480x270    DASH video  759k , mp4_dash container, avc1.640015, 30fps, video only
bbb_30fps_640x360_800k      mp4        640x360    DASH video 1013k , mp4_dash container, avc1.64001e, 30fps, video only
bbb_30fps_640x360_1000k     mp4        640x360    DASH video 1254k , mp4_dash container, avc1.64001e, 30fps, video only
bbb_30fps_768x432_1500k     mp4        768x432    DASH video 1883k , mp4_dash container, avc1.64001e, 30fps, video only
bbb_30fps_1024x576_2500k    mp4        1024x576   DASH video 3134k , mp4_dash container, avc1.64001f, 30fps, video only
bbb_30fps_1280x720_4000k    mp4        1280x720   DASH video 4952k , mp4_dash container, avc1.64001f, 30fps, video only
bbb_30fps_1920x1080_8000k   mp4        1920x1080  DASH video 9914k , mp4_dash container, avc1.640028, 30fps, video only
bbb_30fps_3840x2160_12000k  mp4        3840x2160  DASH video 14931k , mp4_dash container, avc1.640033, 30fps, video only (best)

maintenant, si vous souhaitez télécharger TOUS les segments pour tous les débits, vous pouvez essayer d'utiliser l'option magique

--all-formats

ou vous pouvez le faire un par un en utilisant l'option --format, par exemple:

youtube-dl.exe --format bbb_30fps_320x180_200k --keep-fragments 
5
Alex X.

Vous constaterez peut-être qu'il n'y a en fait pas de moyen plus facile à votre disposition, à moins que quelqu'un n'ait construit un outil pour ce faire, que je ne connais pas.

Il convient de rappeler qu'un flux DASH aura généralement plusieurs rendus ABR (Adaptive Bit Rate) et que la vidéo d'origine sur le serveur sera en fait stockée dans plusieurs versions de débit binaire différentes sur le serveur ou CDN.

Un lecteur normal sélectionnera chaque morceau ou segment de la vidéo à partir de la version de débit binaire la plus appropriée pour le type d'appareil et les conditions de réseau actuelles.

Donc, si vous vouliez reproduire ce qui se trouvait sur le serveur d'origine, vous devrez créer un client qui a téléchargé tous les segments de toutes les versions de débit binaire disponibles de la vidéo. Vous pouvez également télécharger la version de la plus haute qualité et transcoder vous-même les autres débits.

Pour ensuite servir les flux DASH ailleurs, vous devez également vous assurer de mettre à jour le manifeste pour pointer vers la bonne URL sur votre serveur.

Et enfin, vous devrez vérifier que vous avez les droits de le partager et que le fichier n'est pas crypté, auquel cas vous ne pourrez peut-être pas le partager avec les clients.

1
Mick