2016-04-10 4 views
-2

Мне было интересно: как на YouTube или на любом другом сайте, содержащем видео, отправлять такие данные клиентам? При использовании веб-браузера и запроса веб-страницы происходит то, что браузер отправляет HTTP-запрос GET на сервер, который возвращает страницу html; но как передаются видеоданные? Открыто ли для этого дополнительное подключение? И есть ли способ захватить этот поток в программе, используя некоторую библиотеку программного обеспечения?Как просмотреть видео из сетевого потока (http)?

Что я хочу достичь, это что-то вроде функции сетевого потока VLC, которая позволяет вам смотреть видео с youtube, но я не знаю с чего начать.

Благодаря

+0

Вы спрашиваете, как работают потоковые видео и компьютерные сети. Можно было написать книгу или десять. Слишком широкий вопрос для вопросов и ответов. –

ответ

0

Youtube в основном использует MPEG DASH для потоковой передачи видео. Если нажать на любом Youtube видео с правой кнопкой мыши и выберите статистики для ботаников вы увидите его:

screenshot

HTTP на основе потокового видео протоколов как MPEG DASH, HLS, Smooth streaming и т.п. есть файл манифеста, который описывает, как структурируются фактические видеоданные (есть информация, такая как URL-адреса для каждого фрагмента медиафайла, доступные представления, информация о битрейте каждого представления и т. д.). Клиент сначала загружает этот манифест, анализирует его и начинает загружать сегменты. После каждой загрузки клиент измеряет пропускную способность канала. И на основе этой информации принимается решение, какой фрагмент для загрузки в следующем запросе.

Использование youtube-dl вы можете, например, какие представления имеются:

youtube-dl -F https://www.youtube.com/watch?v=b6u9WJ01Oxs 

Вместе с curl вы также можете скачать DASH манифеста (MPD)

curl $(youtube-dl https://www.youtube.com/watch?v=GbHSMwc4eCA --youtube-include-dash-manifest --dump-intermediate-pages -s | grep manifest.google | cut -d ' ' -f 5) > dash_manifest.mpd 

После загрузки MPD вы можете играть это, например, с GPAC Osmo4 (MP4Client). Или, может быть, даже VLC (я не уверен, что плагин DASH в VLC был обновлен с 2012 года).

0

Простейшее протокол, HTTP GET возвращает видеофайл с соответствующим заголовком типа пантомимы.

Как это пиратство склонного и не очень подходит для потокового, некоторые плагины используют свой собственный протокол, как rtmp или протокол по HTTP, как HLS

Чтобы смотреть видео с YouTube, вы можете проверить проект youtube-dl , Youtube - движущаяся цель, поэтому она требует много обслуживания, и это против их eula.

Смежные вопросы