Youtube Converter funktionsweise
-
Hallöchen,
kann mir jemand erklären, wie der Youtube Converter es schafft aus einem Videoformat eine mp3-Datei zu erzeugen? Irgendwie waren meine Recherchen in dieser hinsicht nicht besonders erfolgreich.
Ist es vielleicht so, dass die mp3-Daten und die Video-Daten seperat gesendet werden, sodass dann nur aus den mp3-Daten das mp3-File konstruiert werden kann?
Vielen Dank,
Ambitious
-
Du solltest dir die Frage anders stellen. Wie schafft es dein Videoplayer, aus dem "Videoformat" Daten zu extrahieren, die es an die Grafikkarte schickt, und Daten, die es an die Soundkarte schickt? Selbstverständlich sind die Daten getrennt gespeichert. Ob das MP3 ist oder was anderes ist egal, das kann man dann "trivial" konvertieren.
-
Hmm, aber der Unterschied beim Videoplayer ist ja, dass die Datei vollständig also Video+Sound auf meinem System ist, wohingegen der Youtube Converter das File nicht auf dem System hat.
Demzufolge müsste er also erst einmal das gesamte File herunterladen(also Video+Sound) um dann aus den Soundinformationen ein mp3 zu konstruieren. Wenn er das jedoch so machen würde, dann wundere ich mich, warum das so schnell geht, weil eine Datei die Video+Sound hat, ja meistens recht groß ist.
Ich hoffe, ich konnte euch bisschen besser erklären, wo mein Verständnisproblem gerade ist.
-
Ich schätze schon, dass sie die ganze Datei herunterladen. Geht ja meist auch recht schnell.
-
Stand selber schon davor, eine Converter-Affiliate zu eröffnen. Nur ist der Markt in dem Segment schon relativ überschwemmt... Doch abgesehen davon, zur funktionsweise:
Die Videodatei liegt, genau so wie sie vom Benutzer hochgeladen wurde, in einer für YouTube angepassten Version auf den Servern. Diese Datei wird dann angesprochen und konvertiert.
- Wie wird die Datei angesprochen?
Früher war es so (bei den ersten Convertern), dass die Datei gestreamt (in Chunks gestückelt) geladen und zusammengesetzt wurde. Heute gibt es (noch im Aufbau befindliche) API's die von YouTube bereitgestellt werden, um direkt auf Konto- und Dateninformationen zuzugreifen. Dazu zählen dann die üblichen Dinge wie Erstellungsdatum, Name des Uploaders, Kategorie, Anzahl der Abonnementen, Klickzahlen, Conversion, Statistiken zum Wachstum etc. Die notwendige Videodatei kann dann wahlweise (auch) chunkbasiert oder streamtechnisch übertragen werden. Bevorzugte Skriptsprachen sind hierbei PHP, CURL und sonstige Libs und CO KG. (Selbst über file_get_contents() ist es über die richtige Parameterisierung der URL schon möglich, die Videodatei runterzuladen).- Wie wird konvertiert?
Nachdem die Datei auf dem Server liegt, ist es jedem selbst überlassen, wie er die MP3-Spur (Eigentlich richtig: Audiospur) aus der Videodatei bekommt. Gängig ist der Weg über ein in C- oder C++- (nicht alle Server unterstützen C++!) programmiertes CGI-Script, welches dann aufgerufen wird. Umständlich aber auch möglich wäre der Weg über PHP.- Wie bekommt man denn nun die MP3-Spur aus der Videodatei?
Ich weiß jetzt gerade nicht mehr genau, welches Videoformat verwendet wird. Ich meine MPEG4 (kann aber auch 3 oder 2 sein?!). Der Aufbau von dem Format ist relativ einfach, doch ebenso komplex. Kennt man sich jedoch etwas mit Parsern und Dateiformaten aus, ist das relativ einfach. Die Audiospur liegt, soweit ich mich Recht entsinne, roh und uncodiert in der Datei.Wenn du möchtest, kann ich mal schauen ob ich mein altes Script noch finde. Dort sieht man relativ simpel, wie so eine Videodatei runtergeladen wird. Das CGI-Script habe ich denke ich aber nicht mehr.
So, nun sollte eigentlich jeder verstanden haben, wie das funktioniert. Ich weiß nämlich noch, dass ich damals 0 Informationen zu diesem Vorgang hatte und einfach irgendwie rumprobieren musste, bis ich auf den richtigen Trichter gekommen bin.
Ich hoffe ich habe jemandem helfen können. Soviel vom Wort zum Sonntag!
-
@Kóyaánasqatsi: Vielen Dank für deine Antwort, hat mir sehr geholfen.
Aber noch etwas, was mir nicht ganz deutlich wurde: Ich muss also immer das File(Video+Audio) erst einmal herunterladen, um dann die Audiospur zu extrahieren und zu konvertieren.
Es gibt also daher, so vermute ich mal, nicht die Möglichkeit, ohne das gesamte File herunterzuladen, einfach zu sagen, lade nur die Audiospur und nicht den Videoteil der Datei, ich brauche als YouTube converter ja nicht die Videodatei.
Auf noch so eine hilfreiche Antwort würde ich mich sehr freuen :).
-
Normalerweise gibt es keine separaten Video- und Audio-Dateien, sondern beide Spuren (und eventuell noch weitere, wie z.B. Untertitel) werden in eine Container-Datei verpackt (und zwar nicht hintereinander, sondern eher so).
Um nur die Audio-Daten zu extrahieren, muss deshalb die ganze Datei geladen (bzw. gestreamt) werden.
-
Super! Die Bilder haben mir sehr geholfen. Hab nun verstanden wie die Datei zusammengesetzt wird.
Aber wenn ich die Bilder so sehe, ist es denn nicht möglich zu sagen:
(Pseudocode)ladedatei(URL){
if(videodatei){ladenicht;}
if(audiodatei){ladeDateiStück;}
}Also im wesentlichen würde ich jetzt nur noch gerne wissen, ob man vor dem herunterladen, feststellen kann, ob das Paket, welches man gerade herunterladen möchte ein Video oder Audio Paket ist.
Danke!
-
Ambitious_One schrieb:
Also im wesentlichen würde ich jetzt nur noch gerne wissen, ob man vor dem herunterladen, feststellen kann, ob das Paket, welches man gerade herunterladen möchte ein Video oder Audio Paket ist.
garnicht. Du musst die Datei im Ganzen herunterladen und dann daraus den Audio-Teil extrahieren.
-
zwutz schrieb:
garnicht.
Bzw. wenn du von Anfang an angefangen hast und den aktuellen Kontext mitschleppst, weißt du das schon. Wenn du einfach ein Paket bekommst, das irgendwo mittendrin liegt, wirst du wahrscheinlich nicht ohne weiteres rausfinden können, was das ist. Wobei ich mir auch da nicht so sicher wäre, weil VLC z.B. oft mit Dateien was anfangen kann, wo große Blöcke fehlen, auch am Anfang. Wird wohl auch auf das Container-Format ankommen.
-
Kóyaánasqatsi schrieb:
Ich weiß jetzt gerade nicht mehr genau, welches Videoformat verwendet wird. Ich meine MPEG4 (kann aber auch 3 oder 2 sein?!). Der Aufbau von dem Format ist relativ einfach, doch ebenso komplex. Kennt man sich jedoch etwas mit Parsern und Dateiformaten aus, ist das relativ einfach. Die Audiospur liegt, soweit ich mich Recht entsinne, roh und uncodiert in der Datei.
*facepalm*