Как скачать видеофайлы Dash по мере их появления на сервере? - PullRequest
0 голосов
/ 25 августа 2018

Возможно ли, учитывая файл mpd, такой как https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd,, легко загружать все файлы Dash, хранящиеся на сервере (при условии, что мы знаем, что это статический контент на сервере). То есть я должен иметь возможность запустить HTTP-сервер, обслуживающий загруженное мной содержимое, и указать на него проигрыватель Dash для воспроизведения того же видео.

youtube-dl, похоже, не дает мне пакет Dash. Я мог бы использовать curl для выполнения XHR-запросов, таких как браузер, но я надеюсь, что есть более простой способ.

enter image description here

Ответы [ 3 ]

0 голосов
/ 08 октября 2018

Нет необходимости развивать колесо!

Великолепный инструмент youtube-dl знает сотни платформ / протоколов / и т. Д., А также MPEG DASH, Apple HLS и так далее и так далее! Очень часто обновления / исправления

Веселись!

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

PS .: Если вы хотите сохранить фрагменты - используйте опцию

--keep-fragments                 

Сохранять загруженные фрагменты на диске после завершения загрузки; фрагменты по умолчанию стираются

Upd:

В вашем списке воспроизведения есть много опций (в зависимости от пропускной способности видео), например:

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)

Теперь, если вы хотите загрузить ВСЕ сегменты для всех битрейтов, вы можете попробовать использовать магическую опцию

--all-formats

или вы можете сделать это один за другим, используя --формат вариант, например ::

youtube-dl.exe --format bbb_30fps_320x180_200k --keep-fragments 
0 голосов
/ 12 июня 2019

Я нашел проект, который загружает сегменты, поскольку они хранятся на сервере: https://github.com/Viblast/dash-proxy

Мне пришлось раскошелиться, чтобы исправить некоторые вещи для себя: https://github.com/elv-peter/dash-proxy

0 голосов
/ 04 сентября 2018

Вы можете обнаружить, что на самом деле нет более простого способа, доступного вам, если только кто-то не создал инструмент для этого, о котором я не знаю.

Стоит помнить, что поток DASH обычно будет иметь несколько представлений ABR (Adaptive Bit Rate), и исходное видео на сервере будет фактически сохраняться в нескольких разных версиях битрейта на сервере или CDN.

Обычный проигрыватель выберет каждый фрагмент или сегмент видео в зависимости от того, какая версия скорости передачи данных наиболее подходит для типа устройства и текущих условий сети.

Итак, если вы хотите скопировать то, что было на исходном сервере, вам нужно будет создать клиент, который загрузит все сегменты из всех доступных битрейтовых версий видео. Или же просто скачайте версию высочайшего качества и перекодируйте ее на другой битрейт самостоятельно.

Чтобы затем направить потоки DASH куда-либо еще, вам также необходимо убедиться, что вы обновили манифест, чтобы он указывал на правильные URL-адреса на вашем сервере.

И, наконец, вам необходимо убедиться, что у вас есть права на его передачу и что файл не зашифрован, и в этом случае вы не сможете поделиться им с клиентами.

...