2016-04-10 7 views
-2

Ich habe mich gefragt: Wie kann Youtube oder eine andere Website, die Videos enthält, solche Daten an Kunden senden? Wenn Sie den Webbrowser verwenden und nach einer Webseite fragen, passiert, dass der Browser eine HTTP GET-Anfrage an den Server sendet, die die HTML-Seite zurückgibt; aber wie werden die Videodaten übertragen? Ist es eine zusätzliche Verbindung geöffnet, um das zu tun? Und gibt es eine Möglichkeit, diesen Stream in einem Programm mit einer Softwarebibliothek zu erfassen?Wie man Videos von einem Netzstrom (http) sieht?

Was ich erreichen möchte, ist etwas wie die VLC-Netzwerk-Stream-Funktion, mit der Sie Videos von Youtube ansehen können, aber ich weiß nicht, wo ich anfangen soll.

Dank

+0

Sie fragen, wie Streaming-Video-und Computernetzwerke arbeiten. Man könnte ein Buch oder zehn dazu schreiben. Viel zu breite Frage für ein Q & A. –

Antwort

0

Youtube verwendet in erster Linie MPEG DASH für Video-Streaming. Wenn Sie mit der rechten Maustaste auf ein beliebiges Youtube Video klicken und wählen Sie Statistiken für Nerds Sie werden es sehen:

screenshot

HTTP-basierte Video-Streaming-Protokolle wie MPEG DASH, HLS, Smooth streaming usw. haben eine Manifest-Datei, die beschreibt, wie die tatsächlichen Videodaten strukturiert sind (es gibt Informationen wie URLs zu jedem Medienstück, verfügbare Darstellungen, Informationen über die Bitrate jeder Darstellung usw.). Der Client lädt zuerst dieses Manifest herunter, analysiert es und beginnt mit dem Herunterladen der Segmente. Nach jedem Download misst der Client den Kanaldurchsatz. Und basierend auf dieser Information trifft eine Entscheidung, welcher Teil in der nächsten Anfrage heruntergeladen werden soll.

youtube-dl Verwenden Sie zum Beispiel sehen, welche Darstellungen stehen zur Verfügung:

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

Zusammen mit curl Sie auch die DASH Manifest herunterladen (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 

Nach dem MPD Herunterladen können Sie spielen Zum Beispiel mit GPACs Osmo4 (MP4Client). Oder vielleicht sogar VLC (ich bin mir nicht sicher, ob das DASH-Plugin in VLC seit 2012 aktualisiert wurde).

0

Simplest Protokoll, HTTP GET liefert eine Videodatei mit der richtigen Header-Mime-Typ.

Wie das ist Piraterie anfällig und nicht wirklich geeignet für Live-Streaming, einige Plugins verwenden ihr eigenes Protokoll, wie rtmp oder ein Protokoll über HTTP, wie HLS

Videos von YouTube zu sehen, können Sie das überprüfen youtube-dl Projekt . Youtube ist ein bewegliches Ziel, also erfordert es viel Wartung, und es ist gegen ihre eula.