1. Forum
  2. Letzte Aktivitäten
  3. Unerledigte Themen
  • Login or register
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Forum
  • Articles
  • Pages
  • More Options
  1. VLC Player Forum
  2. Der VLC Player
  3. Fragen zum VLC Media Player

Gesplittetes Video aus dem Netz wiedergeben

  • Maser
  • November 24, 2015 at 3:32 AM
  • Closed
  • Thread is Resolved
  • Maser
    Fortgeschrittener
    Posts
    16
    • November 24, 2015 at 3:32 AM
    • #1

    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!

  • kodela
    Experte
    Reactions Received
    47
    Posts
    5,520
    • November 24, 2015 at 9:11 AM
    • #2

    Hallo Maser,

    was hast Du jetzt, einen Videostream oder eine beziehungsweise mehrere Videodateien im TS-Format?

    Ein Stream, zu deutsch Strom, ist etwas, das fließt und das keinen Namen und erst Recht keine Namenserweiterung (.ts), aber eine Adresse, eine so genannte MRL hat und für die Übertragung in eine besondere "Verpackung" gesteckt wird, meistens das TS-Format (TransportStream).

    Einen solchen Stream kann man aufzeichnen, entweder in der "Verpackung", in der er gekommen ist, also als TS-Datei mit der Namenserweiterung .ts, oder konvertiert in eine andere "Verpackung", zum Beispiel als AVI-Datei.

    Was bezweckst Du mit der Benennung von Dateien zum Beispiel in "Video.ts.001"?

    Ein so benannte Datei kann nicht als Videodatei erkannt werden, denn eine laufende Zahl als Namenserweiterung sagt überhaupt nichts aus. Anders wäre es, wenn die Datei mit "Video_001.ts" benannt würde. Dann wüsste das System, dass es sich bei ihr um eine Videodatei handelt, für deren Wiedergabe zum Beispiel der VLC-Media Player zuständig ist.

    Du musst Deine Situation etwas genauer beschreiben, vor allem. was mit der Aufteilung in Abschnitte gemeint ist. Aus Deiner Beschreibung sollte jeder, der nicht hinter Dir sitzt und Dir zusehen kann, erkennen können, was Du machst.

    MfG, kodela

  • Maser
    Fortgeschrittener
    Posts
    16
    • November 24, 2015 at 1:59 PM
    • #3

    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.

  • kodela
    Experte
    Reactions Received
    47
    Posts
    5,520
    • November 24, 2015 at 3:21 PM
    • #4

    Hallo Maser,

    Du schreibst:

    Quote

    ... Dann lassen sich über media_144710841.ts, media_144710842.ts usw weitere Teilstücke runterladen. ...


    Ich kann mir nicht vorstellen, wie man über eine TS-Datei weitere Teilstücke (dieser Datei) runterladen kann.

    Quote

    ... Ich greife nun diesen Link mit wireshark ab und lade mir die Teilvideos runter und füge die zusammen.


    wireshark ist primär ein Analyseprogramm für die Auswertung des Datenverkehrs. Was Du damit weiter machst, ist für mich ebenfalls nicht nachvollziehbar.

    Quote

    ... 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.


    Ob der VLC so benannte Videodateien wiedergibt oder nicht ist nicht entscheidend. Der VLC gibt die auch wieder, wenn Du als Namenserweiterung .txt wählen würdest. Aber das Betriebssystem erkennt Dateien In der Form Video001.ts, Video002.ts nicht als Videodateien. Mache es also, wie Du willst.

    Leider kann ich Dir nicht weiterhelfen, denn dafür müsste Dein Vorgehen für mich nachvollziehbar sein, ist es aber nicht.

    MfG, kodela

  • Maser
    Fortgeschrittener
    Posts
    16
    • November 24, 2015 at 3:42 PM
    • #5
    Quote from kodela


    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.

    Quote


    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)

    Edited 5 times, last by Maser (November 24, 2015 at 3:54 PM).

  • Maser
    Fortgeschrittener
    Posts
    16
    • November 24, 2015 at 6:46 PM
    • #6

    Immer noch unverständlich?

  • kodela
    Experte
    Reactions Received
    47
    Posts
    5,520
    • November 24, 2015 at 7:08 PM
    • #7

    Hallo Maser,

    ja, ich habe Dich verstanden. Meiner Meinung lässt sich das auch relativ leicht lösen.

    Schreibe eine Batchdatei, die das Herunterladen übernimmt und die im Anschluss nach jedem heruntergeladenen Stück dieses der Wiedergabeliste des VLC hinzufügt. Damit siehst Du das Video praktisch live und kannst später die Stücke zu einem Ganzen packen.

    MfG, kodela

  • Maser
    Fortgeschrittener
    Posts
    16
    • November 24, 2015 at 7:14 PM
    • #8

    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.

  • kodela
    Experte
    Reactions Received
    47
    Posts
    5,520
    • November 24, 2015 at 7:25 PM
    • #9

    Hallo Maser,

    nein, das habe ich selbst nicht ausprobiert. So etwas, um ein Video live zu sehen, täte ich mir nicht an. Ich würde mir, wenn mir das Video wichtig sein sollte, alle Stücke downloaden. Ob das über eine Batchdatei geht, da bin ich mir nicht sicher. Deshalb würde ich mir dafür ein simples Programm in Python schreiben. Anschließend würde ich alles mit meinem Packer zu einer Datei zusammenfügen.

    Bei der Wiedergabe der einzelnen Stücke kam es bei mir übrigens zu keinen merkbaren Unterbrechungen.

    MfG, kodela

  • Maser
    Fortgeschrittener
    Posts
    16
    • November 24, 2015 at 7:30 PM
    • #10

    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?

  • kodela
    Experte
    Reactions Received
    47
    Posts
    5,520
    • November 24, 2015 at 10:19 PM
    • #11

    Hallo Maser,

    ich habe die beiden Dateien einfach vom Windows-Explorer aus per Drag&Drop in die Wiedergabeliste gezogen. Die Wiedergabe erfolgte mit unveränderten Vorgabe-Einstellungen, also mit den Defaulteinstellungen.

    MfG, kodela

  • Maser
    Fortgeschrittener
    Posts
    16
    • November 25, 2015 at 12:18 AM
    • #12

    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.

  • kodela
    Experte
    Reactions Received
    47
    Posts
    5,520
    • November 25, 2015 at 11:21 PM
    • #13

    Hallo Maser,

    mit kräftiger Unterstützung durch das deutsche Python-Forum habe ich ein kleines Skript in Python geschrieben, das alle gesplitteten Teile Deines Videos in einem Zug herunterladen kann. Es könnte so erweitert werden, dass die heruntergeladenen Teile nicht als eigene Datei gespeichert, sondern der Gesamtdatei hinzugefügt werden. Da es sich sowieso um Videos im TS-Format handelt, könnte eine so im Aufbau befindliche Gesamtdatei noch während des Aufbaus mit einem kurzen Zeitversatz von wenigen Sekunden wiedergegeben werden. Letzteres ist aber noch nicht getestet, das ist noch eine reine Überlegung.

    Ein Problem gibt es. Das ist die Länge des Videos. Woher weiß man, aus wie vielen Stücken so ein Video besteht?

    MfG, kodela

  • Maser
    Fortgeschrittener
    Posts
    16
    • November 26, 2015 at 12:29 AM
    • #14

    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.

  • kodela
    Experte
    Reactions Received
    47
    Posts
    5,520
    • November 26, 2015 at 12:48 AM
    • #15

    Hallo Maser,

    ok, dann brauche ich mir zur Länge des Videos keine Gedanken mehr machen. Dumme Frage, Du schreibst, das Video habe eine Länge von mindestens 14 Tagen. Ist damit gemeint, ein Thema erstreckt sich über diese Länge und um was geht es, das in dieser Länge geboten wird. So etwas kann sich ja kein Mensch ansehen.

    MfG, kodela

  • Maser
    Fortgeschrittener
    Posts
    16
    • November 26, 2015 at 1:27 AM
    • #16

    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.

    Edited once, last by Maser (November 26, 2015 at 1:32 AM).

  • kodela
    Experte
    Reactions Received
    47
    Posts
    5,520
    • November 26, 2015 at 8:51 AM
    • #17

    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

  • kodela
    Experte
    Reactions Received
    47
    Posts
    5,520
    • November 26, 2015 at 11:51 AM
    • #18

    Hallo Maser,

    ich habe jetzt eine für meine Begriffe sehr gute Lösung über ein Python-Skript. Dafür muss lediglich im Skript die erste URL der betreffenden Sendung eingetragen werden. Danach wird dieses Skript gestartet. Voraussetzung ist ein installiertes Python. Wer OpenOffice hat, hat damit auch Python 2.7.6. Man sollte dafür lediglich noch den Pfad als Umgebungsvariable aufnehmen.

    Nach dem Start wird in dem vorgegebenen Verzeichnis der Stream für das Video fortlaufend aufgezeichnet und man kann unmittelbar, zum Beispiel über einen Doppelklick auf die Datei den VLC damit starten. Beendet man die Wiedergabe läuft die Aufzeichnung weiter. Will man auch diese beenden, muss auch das Skript über die noch offene Konsole beendet werden.

    Wenn Du (oder jemand anderer) daran interessiert bist, kann ich das Skript hier posten.

    MfG, kodela

  • Maser
    Fortgeschrittener
    Posts
    16
    • November 26, 2015 at 12:55 PM
    • #19
    Quote from kodela

    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.

    Edited 2 times, last by Maser (November 26, 2015 at 1:17 PM).

  • kodela
    Experte
    Reactions Received
    47
    Posts
    5,520
    • November 26, 2015 at 1:57 PM
    • #20

    Hallo Maser,

    hier meine Realisierung des Downloads:

    Code
    #!/usr/bin/env python2.7
    # -*- coding: iso-8859-1 -*-
    
    
    
    
    import urllib2
    
    
    
    
    url_1 = "http://50.7.85.162/video/dKUnnPlCvapkvGuuTMcKGg/2/media_"
    url_2 = 144710835
    url_3 = ".ts"
    #url = "http://50.7.85.162/video/dKUnnPlCvapkvGuuTMcKGg/2/media_144710835.ts"
    
    
    
    
    url = url_1 + str(url_2) + url_3
    file_name = 'D:/VLC/Aufnahmen/' + url.split('/')[-1]
    request = urllib2.Request(url, headers={'user-agent': 'Mozilla/5.0'})
    u = urllib2.urlopen(request)
    f = open(file_name, 'wb')
    meta = u.info()
    file_size = int(meta.getheaders("Content-Length")[0])
    print "Downloading: %s" % (file_name)
    file_size_dl = 0
    block_sz = 32 * 1024
    while True:
        while True:
            buffer = u.read(block_sz)
            if not buffer:
                break
            file_size_dl += len(buffer)
            f.write(buffer)
        url_2 += 1
        url = url_1 + str(url_2) + url_3
        request = urllib2.Request(url, headers={'user-agent': 'Mozilla/5.0'})
        u = urllib2.urlopen(request)
    f.close()
    Display More


    Da Python, was Einrückungen anbelangt, sehr sensibel ist, findest Du die Datei auch im Anhang. Die txt-Erweiterung muss natürlich entfernt werden.

    Diese Datei kann nur unter Python 2 ausgeführt werden. Wie schon erwähnt, bringt OpenOffice Python 2 mit. Man braucht dann unter Windows nur noch die Umgebungsvariable "PATH" um den Installationspfad für Python erweitern. Das könnte zum Beispiel durch "SET PATH = PATH + ";C:\Program Files\OpenOffice 4\program" erfolgen, denn dort befindet sich "pythoon.exe".

    Hat man OpenOffice nicht, kann man sich Python 2 herunterladen und installieren.

    Die Datei "download.py" habe ich in mein Aufnahmeverzeichnis kopiert und dort noch eine Batchdatei für den Start angelegt. Die hat nur diese eine Zeile: python download.py

    Man kann auf diese Batchdatei verzichten und in dem Verzeichnis, in dem sich die "download.py" befindet, bei gedrückten "Shift" mit der rechten Maustaste in den Inhaltsbereich dieses Ordners klicken und dann über das sich öffnende Kontextmenü die Option "Eingabeaufforderung hier öffnen".

    In der sich öffnenden Konsole gibt man dann python download.py ein.

    Unmittelbar nach dem Start sieht man im Verzeichnis die neue Datei und kann diese per Doppelklick mit dem VLC zur Wiedergabe öffnen.

    Die Datei "download.py" muss natürlich vor ihrer ersten Verwendung an Deine Verhältnisse angepasst werden. Das betrifft eigentlich nur das Aufnahmeverzeichnis (Zeile 12) und, bei einem anderen Video die entsprechende MRL. Diese wird gesplittet angegeben. Wenn ich Zeit habe, werde ich demnächst das Splitten Python übertragen.

    Die Zeile mit dem vollständigen MRL beginnt mit einem Rauten-Zeichen und ist damit nur ein Kommentar. Sie soll hier nur zeigen, wie die ungesplittete MRL aussieht und kann entfernt werden.

    Die Wiedergabe wird einfach über den VLC beendet. Die Aufzeichnung kann mit Strg+C oder durch Schließen der Konsole mit dem Aufruf von "download.py" beendet werden.

    Das wäre es und ich hoffe, nichts vergessen zu haben.

    MfG, kodela

    Files

    download.py.txt 968 Byte – 663 Downloads

Registrierung

Don’t have an account yet? Register yourself now and be a part of our community!

Register Yourself
  1. Datenschutzerklärung
  2. Impressum
  3. Kontakt
  4. Download VLC Player
  5. OpenOffice Download