Streamen während der Aufnahme

  • Hallo


    Ich habe mal eine Frage die nicht direkt was mit VDR zu tun hat.


    Ich würde gernen einen Multicast MPEG-TS Stream (H.264/AAC) aufnehmen und diesen noch während er die Daten in eine Datei schreibt ansehen können.


    Die Aufnahme soll also während sie noch aufgenommen wird wieder als Stream abspielbar sein. Das an sich ist noch nicht das Problem. Beim abspielen soll seek möglich sein und die Länge soll richtig angezeigt werden bzw soll man sehen das das File wächst.


    So wie ich es sehe, gibt es da mehrere Möglichkeiten. Ich habe mir nun aber erst mal nur drei angesehen.


    MPEG-Dash
    HLS
    Progressive Download


    HLS hat die Möglichkeit über eine Playlist die Daten zur Verfügung zu stellen. Die neue Version kann auch mit Single Files und einem Byteoffset Arbeiten. Problem ist das die Playlist vom Aufnahmeprogramm geschrieben werden muss. Die meisten Tools unterstützten noch das alte HLS Format mit dem ich dann 1000 Files bekommen würde. Aber selbst dann bin ich mir nicht sicher ob ein Player (z.B. VLC) alles so macht wie ich es mir vorstelle.


    Progressive Download scheint mir unabhängig vom Aufnahmetool zu sein und daher eine gute Idee. Der VLC greift damit quasi direkt auf die Datei zu. Problem ist das ich im HTTP Header eine Länge angeben muss. Der VLC ließt aber nur beim ersten Aufruf den Header aus und damit ist dann der Fortschrittsbalken vom VLC fest. VLC bekommt also nicht mit ob die Datei größer wird und bricht auch am Ende ab. Alternativ kann man im HTTP Header mit angeben das kein Ende hat, dann kann ich aber auch nicht seeken.


    Mit MPEG-Dash habe ich leider noch keine Erfahrungen.


    Tools mit denen ich mit vorstellen könnte das man da weiter kommt.
    ffplay, gstreamer, apache, ...


    Hat da jemand mehr Erfahrung und kann mir ein paar Hinweise geben?

  • Hallo decembersoul,


    warum nicht mit dem VDR? Der kann gleichzeitig aufnehmen und per streamdev Plugin streamen - das mache ich fast täglich.


    Alternativ kann man den VDR auf ein NFS drive aufzeichnen lassen und von dort per mpv/mplayer/vlc/irgendwas die .ts Aufnahme gleich wieder abspielen inklusive springen. Allerdings dann halt leicht zeitversetzt und ggf. spielt der Player (hier mpv) etwas schneller ab als aufgezeichnet wird was über kurz oder lang die Wiedergabe wegen leerem Buffer beendet.


    Gruß, ollo

  • Hallo Ollo,


    danke für Deine Antwort.


    Streamdev nutze ich selber auch schon seit Jahren.
    Auf meine Aufzeichnungen greife ich auch per NFS zu.


    Ich habe jedoch ein Projekt vor bei dem VDR nicht involviert ist.
    Ziel ist es einen HTML5 Player oder vielleicht VLC zu verwenden und damit auf Aufzeichnungen zu zu greifen während sie noch aufgezeichnet werden.
    Das ganze muss über ein Netzwerk gehen, also NFS Mount fällt auch aus.

  • Hallo decembersoul,


    warum denn das Rad neu erfinden? Der VDR bzw. das streamdev Plugin kann wohl auch Aufnahmen streamen - siehe hier !?!
    Leider habe ich das selber noch nicht gemacht bzw. ein Versuch eben ist daran gescheitert auf die Schnelle die recording-ID rauszubekommen...


    Gruß, ollo

  • mir geht es um die Technik an sich. Ich will ein Projekt unabhängig von VDR machen und ich habe auf dem Server keinen VDR laufen.
    Daher fällt Streamdev weg. Aber ich werde mir noch mal streamdev ansehen wie die es machen um die Aufnahme z.B. mit VLC an zu sehen. Aber ich vermute mal das es Progressive Download ist.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!