Dein Sarkasmus ist hier total fehl am Platz. Natürlich weiß ich was eine Scroll Leiste ist. Das löst aber nicht mein Problem, dass ich nicht warten will bis der große Buffer erst voll gefüllt werden muss, bevor er anfängt etwas wiederzugeben. Denn man kann doch wenigstens hoffen, dass jemand eine Frage erst richtig liest und versteht, und erst dann sich bissige Bemerkungen erlaubt, oder?
Beiträge von Maser
-
-
Da finde ich nichts. Ich hatte gehofft, dass du oder jemand anderes sich mit dem Player wenigstens auf Plugin Ebene auseinandergesetzt hat. Denn nicht alles, das mit dem Player API möglich ist, ist auch in dem GUI implementiert.
-
-
Hi,
ich hab mal eine Frage den Buffer des VLC players betreffend. Ich habe einen Videostreaming Anbieter, welcher aber scheinbar Probleme mit der Stabilität des Streams hat. Ein Größerer Buffer von VLC löst das Problem, aber beim Spulen muss man dann lange warten. Nun zur eigentlichen Frage.
1. Kann man den Buffer groß ansezten, aber festlegen, dass das Video nicht warten musss bis der ganze Buffer voll ist, sondern schon früher anfängt? (Eigentlich wollt eich hier nach einer variablen, selbstadaptiven Buffergröße fragen, aber das ist wohl kaum im Player realisiert).
2. Kann man im VLC irgendwo sehen wie viel vom Buffer aktuell geladen ist, also nicht am anfang, sondern während des Abspielens beobachten was die Bufferauslastung ist?
-
-
Naja, ich weiß nicht inwiefern mein auf die schnelle geschriebener code oder eine detailierte Beschreibung dessen was ich gemacht habe, um mir ansatzweise ein vernünftiges Anschauen eines spezifischen Dienstes, der sein Stream auf bestimmte(wohlgemerkt nicht sehr clevere) Weise aufbereitet, jemandem bei seinem Problem hilft. Auch hat das nicht viel mit der eigentlichen Fragestellung dieses Themas zu tun.
Deswegen mache ich einfach eine stichwortartige Übersicht.
Also mein Anliegen war das schauen eines Videostreams, welchen ein Videoserver in kleine Häppchen je ca. 10 sekunden in Form von
http://xx.x.xx.xxx/video/dKUnnPlC…ia_144710840.ts
auf seiner seite angeboten hatte.Zum Navigieren durch den Stream hat der server eine html Website angeboten, welche Links für verschiedene Abschnitte des Streams(welcher praktisch ein Archiv einer Fernsehsendung ist). Durch ein klicken auf einen der Links dieser Seite wurde durch POST in Link wie der obige generiert, welcher dann im Klartext an einen seiteninternen Flashplayer gesendet wurde. Der Flashplayer ruckelte bei mir aber, weil er die CPU sehr beanspruchte.
Deswegen griff ich zum Tool Wireshark, welcher den gesamten Netzwerkverkehr des eigenen Komputers auszeichnen kann. Durch einen Filter kann man dann nach den GET Ereignissen im Netzwerk suchen(automatisiert) und diese in periodischen Zeitabständen abspeichern. Dadurch konnte ich den obigen Link mit teilweise viel Overhead automatisch abgreifen und ihn dann weiter verarbeiten.
Dann habe ich ein C++ Programm geschrieben, das das gespeicherte von Wireshark liest und den Link ohne das overhead besorgt.
Da ich dann wusste(durch ausprobieren), dass die einzelnen Videostücke, einfach nacheinander zusammengesetzt vom VLC ohne Probleme abgespielt werden, suchte ich einen Weg wie ich durch das Video navigieren kann, während es gerade heruntergeladen wird.Das war auch die Eigentliche Frage dieses Threads. Glücklicherweise bietet VLC schon eine eingebaute Lösung dazu. In Eingang/Codecs --> Demuxer --> MPEG-TS gibt es eine Einstellung "Prozentbasiert suchen, nicht nach der Zeit", damit lässt sich ein TS Stream navigieren während er runtergeladen wird.
Das herunterladen habe ich dann mittels WGET, einem aus der Linux-Welt stammenden Downloadmanager realisiert, der unter anderem das herunterladen einer Liste von Links und das zusammensetzen (engl: to concatenate = zusammensetzen, verknüpfen) zu einem einzigen File ermöglicht. Ein sehr mächtiges Werkzeug mit Konsolensteuerung, kann ich nur empfehlen.
Und der Rest des Programms nutzt dann Schnipsel von Batch Befehlen um VLC und WGET zu starten, zu stoppen, Downloadordner nach jedem Aufzuf zu leeren und all solche Sachen.
Ich hoffe die vorgehensweise hilft jemandem.
PS: Sag, ob das so OK ist oder ob ich das noch korrigieren sollte. -
-
Was genau willst du wissen?
-
-
Hi kodela.
Danke für das script, aber ich habe das schon auf meine Weise gelöst.
Ich wollte nur wissen mit welchen mitteln du das Herunterladen realisiert hast. Jetzt hab ich verstanden. -
-
Hallo Maser,
wenn Du so einfach eine Sendung über den Flashplayer ansehen kannst, warum dann Deine Anfrage hier? Oder habe ich ein Brett vor dem Kopf.
MfG, kodela
Nun, wie bereits weiter oben geschrieben, es gab ein Problem, dass der Player beim Abspielen (vor allem im Vollbildmodus) sehr viele Ressourcen (CPU) verbraucht hat. Ich vermute es gat ein Problem beim Skalieren. Ich weiß auch nicht wie der Player implementiert wird, aber ich tippe mal auf krumme Hände der Seitenbetreiben.
Hab gerade nachgeprüft, auf meinem recht flotten Vierkerner-PC läuft es jetzt viel besser, wobei früher auf dem auch Probleme mit dieser Seite gab. Aber auf dem HTPC mit dem schon etwas betagteren Zweikerner CoreDuo gehts schon recht heftig zur Sache, jetzt etwas besser, aber trotzdem mit Bildruckeln.Hier die Seite, wenn du dir das Problem anschauen willst.
http://www.gamak.tv/pervyi_kanal/2015-11-26/00:00/
Da einfach einen der Links unten auswählen und auf den Player drücken. AdBlock sollte dazu ausgeschaltet werden, weil sonst der Player nicht startet. Das ganze ist auf russisch, Schrift und Sendung, aber zur Beurteilung der CPU Auslastung ist das ja nicht kritisch.Eine Frage habe ich allerdingt noch. Wie hast du das Herunterladen bei dir realisiert? Weil ich wollte zuerst dazu CURL verwenden, hab aber dann festgestellt, dass man da schon gehörig Zeit für investieren muss und hab deswegen einfach den consolenbasierten WGET-Downloadmanager genommen.
-
Das mit 14 tagen sagte ich deswegen, weil die meisten dieser OnlineFernseh-Portale einen Archiv der Fernsehsendungen von zwei Wochen bieten. Die nehmen einfach ein Signal von jedem Fernsehsender und speichern ihn. Dieser Anbieter macht das eben in einem Zug, nur eben zerstückelt. Der Zugriff und Navigation erfolgt dann über die Webseite, wo die zu jedem angebotenen Fernsehsender eine Sendungsübersicht mit Links bieten. Wie die Serveranfrage genau funktioniert weiß ich nicht, und will es auch nicht unbedingt wissen. Man wählt dann als Nutzer ein Programm das man sehen möchte, klickt auf den Anfragelink und es wird ein Link (so wie ich oben gepostet habe) vom Server generiert, welcher auf die Stelle in dem langen Stream zeigt, wo die Sendung anfängt. Der Link wird dann an einen Flashplayer übergeben, der dann die Anzeige und die Navigation mit vor und zurückspulen übernimmt.
Zum Glück ist das so, dass die Webseite weder Cookies, noch Authentifizierung, noch sonstwas hässliches macht um den Stream zu sichern. Deswegen kann ich relativ einfach den Link für die Sendung abfangen und selbst abspielen. Und wenn man ein anderes Programm will, dann geht man auf die Seite, klicht auf die Sendung und kriegt einen anderen Link. Ich muss nur soch sicherstellen dass der Müll jeder mal gelöscht wird, bevor eine neue Sendung wiedergegeben wird. -
-
Danke für die Mühe, aber wie ich sagte, das Problem ist gelöst (zumindest denke ich das, provisorische kurze Tests der wichtigsten Komponenten sind alle gut verlaufen, das Hauptprogramm muss noch zuende geschrieben und getestet werden). Sollte ich Probleme haben, melde ich micht nochmal, allerdings ist es eher eine Frage für ein anderes Forum und ich schreibe in c++ und batch.
Bezüglich der Länge des Videos. Wie gesagt, es ist ein Stream, das in einen TS kontainer gesteckt wird. Er zeichnet eine Fernsehsendung auf und speichert sie in 10sek Intervallen ab. Ich vermute mal die länge des Videos ist mindestens 14 Tage lang. Deswegen muss mein Programm gleichzeitig neue Stücke des Videos runterladen und in eine einzelne datei integrieren.
-
-
Bei mir gibts es video und audio unterbrechungen. Aber ich hab gefunden, dass VLC schon die richtige Lösung dazu schon in den erweiterten Einstellungen bietet. Danke trotzdem für die Mühe.
Für alle die evtl das gleiche Problem haben: In Eingang/Codecs --> Demuxer --> MPEG-TS gibt es eine Einstellung "Prozentbasiert suchen, nicht nach der Zeit", damit lässt sich ein TS Stream navigieren während er runtergeladen wird.
Thema kann geschlossen werden.
-
-
Du meinst du hast jetzt meine Stückchen abgespielt, die ich hier gepostet habe? Wie hast du denn abgespielt? Ist das das gleiche wie über Media -> Mehrere Dateien öffnen? Wenn ja welche einstellungen hast du bezüglich Cache benutzt?
-
-
Hast du das selber schon mal versucht? Bei mir gibts es bei der wiedergabe über die wiedergabeliste kurze unterbrechungen. Außerdem kann ich dann nur über die kleinen stücke von 10 sek navigieren.
-
-
Immer noch unverständlich?
-
-
Ich kann mir nicht vorstellen, wie man über eine TS-Datei weitere Teilstücke (dieser Datei) runterladen kann.
Du kannst es selber versuchen. Nimm den Link, der sollte bei dir auch gehen.
http://50.7.85.162/video/dKUnnPlC…ia_144710835.ts
http://50.7.85.162/video/dKUnnPlC…ia_144710836.ts
bei den nächsten Links erhöhst du einfach die Zahl am Ende um 1.Zitat
wireshark ist primär ein Analyseprogramm für die Auswertung des Datenverkehrs. Was Du damit weiter machst, ist für mich ebenfalls nicht nachvollziehbar.
Mit wireshark ermittele ich nur den obigen Link für das Video. Zusammensetzen tu ich dann mit wget, wobei er einfach die neu runtergeladene Stücken dem ersten Stück anhängt, dh. zu der ersten datei dazuschreibt.
Was den Videocodec angeht, Mediainfo sagt sowas wie AVC(component)(Main@L3.0)(CABAC/ 1 Ref Frames) -
-
Hallo kodela.
Also ich weiß nicht wie ich das besser beschreiben soll. Es handelt sich um eine Webseite, die Fernsehsendungen anbietet, die über einen Flashplayer abgespielt werden. Die Serveranfrage ist kryptisch und auch wohl verschlüsselt. Vom Server kommt dann ein link in der Form http://xx.x.xx.xxx/video/dKUnnPlC…ia_144710840.ts zurück. Über diesen Link lässt sich ein 10sek Video in .ts Form runterladen. Dann lassen sich über media_144710841.ts, media_144710842.ts usw weitere Teilstücke runterladen.
Ich greife nun diesen Link mit wireshark ab und lade mir die Teilvideos runter und füge die zusammen.
Wohl gemerkt nichts illegales, die Seite bietet ihren Kontent kostenlos an, nur frisst der Flashplayer so viele Ressourcen im Vollbildmodus, dass das Bild stottert, während das selbe Video im VLC abgespielt, nur einen Bruchteil der Leistung braucht.Bezüglich Video.ts.001, Video.ts.002 usw. In dieser Form spielt der VLC das Video als ganzes ab und erlaubt Spulen. In der Form Video001.ts, Video002.ts bricht er nach dem erstel Teilstück ab.
-
-
Hallo.
Ich habe folgende Frage. Ich habe einen Videostream (.ts) der in Abschnitte je 10sek aufgeteilt ist. Das sind Internetübertragungen und ich möchte sozusagen das live mitgucken. Ich habe bereits zwei Ansätze probiert. Einmal lade ich die Videostücke nacheinander und füge sie am Schluss der Hauptdatei an. Währenddessen kann ich das Video mit VLC gucken und der erkennt auch die neu hinzugefühten Stückchen und spielt sie ohne unterbrechung ab. Leider aktualisiert sich die Navigationsleiste nicht, das heißt, wenn der Player mit einem 20sek Video startet, dass lässt sich VLC nur über diese 20 sekunden navigieren.
Wenn ich jetzt die Files in der folgender Form schreibe, z.B.
Video.ts.001
Video.ts.002
Video.ts.003 etc
dann spielt er und navigiert die Files, die bei Videostart im Ordner waren, die neu hinzukommenden erkennt er nicht.Gibt es eine Möglichkeit bei der ersten Methode die Navigationsleiste zu aktualisieren oder bei der zweiten Möglichkeit die neuen Files erkennen zu lassen(und natürlich die Navigation zu aktualisieren)? Denn wenn ein größerer File am Stück geladen wird, dann kann man ihn auch während des ladens schauen und die Navigationsleiste aktualisiert sich automatisch.
Ich währe für jede Hilfe dankbar!
-