Redesign Livebuffer Patch/Plugin - Ideensammlung

  • Auch wenn keiner auf meinen urspruenglichen Vorschlag eingehen will, hier nochmal mein Ansatz zur Realisierung des LiveBuffers via Plugin:


    Man legt ein Ausgabe-Device an und speichert in der PlayTS Funktion den Datenstrom ab ( auf Platte oder im Speicher ).
    Sobald jemand das Plugin aktiviert, wird eine Aufnahme auf dem aktuellen Kanal gestartet und zwar derart, dass diese an den vorhandenen livebuffer angehaengt wird ( z.B. dadurch realisierbar, dass das Livebuffer-Verzeichnis denselben Namen bekommt wie die Aufnahme und die vorhanden Files 0000x.ts heissen ).
    Im Grossen und Ganzen wars das schon, und dazu muss vermutlich VDR nicht gepatched werden und streamdev etc laufen damit sicher auch.

  • Das wäre in der Tat ein Ansatz, der wahrscheinlich ohne Patch auskommt.


    Was sagt die breite Masse dazu? ;)

    kuifje
    asus m2n-vm | Athlon 5600 | Nvidia 9300GE | TT S2-3200
    yaVDR 0.4 | 1.7.21
    haddock
    asus p4pe | 2ghz | 3x DVB-S Budget | 2x500gb
    debian lenny 2.6.29.3 | e-tobi 1.7.0 | streamdev cvs | live


    <30.12.07 <igel>sid fuer den gewissen kick>
    <01.04.08 <igel>ich kann eh nix ausser debian pakete installiern>
    <15.12.09 igel hasst linux>
    <23.02.10 <igel> easyvdr is nur easy wenn es easy is>

  • Ich glaube die breite Masse interessiert nicht wie es Programmiert wird, sie wollen es nur nutzen :unsch

    VDR:
    Hardware: Thermaltake DH102, Zotac ION ITX-F-E, 2Gig Ram, TechnoTrend
    dual DVB-S2 6400, TechnoTrend Connect CT-3650,


    Software: EasyVDR 1.0

  • Ja, dann wird zwar gemacht - aber am Ende meckert dann jeder "Das ist aber nicht so wie ich mir das vorgestellt habe..." :versteck

    kuifje
    asus m2n-vm | Athlon 5600 | Nvidia 9300GE | TT S2-3200
    yaVDR 0.4 | 1.7.21
    haddock
    asus p4pe | 2ghz | 3x DVB-S Budget | 2x500gb
    debian lenny 2.6.29.3 | e-tobi 1.7.0 | streamdev cvs | live


    <30.12.07 <igel>sid fuer den gewissen kick>
    <01.04.08 <igel>ich kann eh nix ausser debian pakete installiern>
    <15.12.09 igel hasst linux>
    <23.02.10 <igel> easyvdr is nur easy wenn es easy is>

  • Willkommen in der Politik ;)


    Wenn ein Device erstellt werden soll, zählt das dann als Ausgabe oder als Eingabedevice oder sogar beides?


    Der VDR, Streamdev und andere Plugins könnten sich dann also einfach auf dieses virtuelle Device einklinken und den LB nutzen... wenn das klappen würde, wäre das genial.


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

  • Fragt sich was andere clients mit dem livebuffer anfangen können. Dafür gibts doch streamdev & co. Ein Ausgabe-device benötigt IMHO immer noch ein Eingabe-device. Helau schreibt doch Ausgabe-Device.
    infinite
    was man sich vorstellt steht hier --> KLICK
    Der Vorschlag von HelAu passt ziemlich gut zu den beschriebenen Funktionen.

    <font color="#0000ff">Gigabyte P35-DS3, Pentium E2140, GT220, 2 x DVB-C im Thermaltake DH101<br>gen2vdr V3 &amp; yaVDR 0.3.0a <br></font>

  • Zitat

    Original von methodus
    Willkommen in der Politik ;)


    Wenn ein Device erstellt werden soll, zählt das dann als Ausgabe oder als Eingabedevice oder sogar beides?


    Der VDR, Streamdev und andere Plugins könnten sich dann also einfach auf dieses virtuelle Device einklinken und den LB nutzen... wenn das klappen würde, wäre das genial.


    Du kannst es nicht lassen :lol2


    Das "Device" soll das Ausgeben bzw speichern was der VDR gerade schaut.
    Anders ist auch nicht möglich oder soll der VDR xx Livebuffer gleichzeitig aufzeichnen

    VDR:
    Hardware: Thermaltake DH102, Zotac ION ITX-F-E, 2Gig Ram, TechnoTrend
    dual DVB-S2 6400, TechnoTrend Connect CT-3650,


    Software: EasyVDR 1.0

  • Das Aufzeichnen macht ein Receiver, der sich die Daten von einem Device holt. Deswegen frage ich. Mir war die Funktionsweise des Devices an sich noch nicht klar.


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

  • Zitat

    Original von methodus
    Das Aufzeichnen macht ein Receiver, der sich die Daten von einem Device holt. Deswegen frage ich. Mir war die Funktionsweise des Devices an sich noch nicht klar.


    Nein das war anders gemeint.
    Das erzeugte Ausgabe device Speichert den TS Stream.
    Receiver wird dann keiner mehr benötigt das macht ja der VDR.


    mfg Thomas

    VDR:
    Hardware: Thermaltake DH102, Zotac ION ITX-F-E, 2Gig Ram, TechnoTrend
    dual DVB-S2 6400, TechnoTrend Connect CT-3650,


    Software: EasyVDR 1.0

  • Das klingt doch sehr interessant!


    Wenn man nun helau's Idee ein bisschen weiter spinnt, dann wuerde ich mir das wie folgt vorstellen:


    Livebuffer ist als Plugin ein Device, was den TS Strom vom aktuellen TV-Wiedergabe Device kopiert und in einen Ringbuffer speichert. So haetten auch xbmc und Konsorten die Moeglichkeit darauf zuzugreifen.


    Diejenigen, die dann die direkte Wiedergabe der Livebuffer Aufnahme nach Kanalwechsel wollen nutzen dann den (zu erstellenden) Patch.


    infinite

    kuifje
    asus m2n-vm | Athlon 5600 | Nvidia 9300GE | TT S2-3200
    yaVDR 0.4 | 1.7.21
    haddock
    asus p4pe | 2ghz | 3x DVB-S Budget | 2x500gb
    debian lenny 2.6.29.3 | e-tobi 1.7.0 | streamdev cvs | live


    <30.12.07 <igel>sid fuer den gewissen kick>
    <01.04.08 <igel>ich kann eh nix ausser debian pakete installiern>
    <15.12.09 igel hasst linux>
    <23.02.10 <igel> easyvdr is nur easy wenn es easy is>

  • Zitat

    Livebuffer ist als Plugin ein Device, was den TS Strom vom aktuellen TV-Wiedergabe Device kopiert und in einen Ringbuffer speichert. So haetten auch xbmc und Konsorten die Moeglichkeit darauf zuzugreifen.


    So haette ich das nicht gemacht ;) Das Plugin macht nichts anderes als den livebuffer zu speichern. Und beim Starten des Livebuffers wird eine Aufnahme gestartet, der aktuelle Livebuffer davor geklemmt, und zudem das Abspielen der Aufnahme gestartet.
    Somit verrichtet das Plugin alles schoen im Hintergrund.
    Das duerfte zumindest fuer die Implementierung mit am einfachsten sein, und fuer alle anderen Plugins haette es keine Auswirkungen.


    P.S. Wie funktioniert denn der LiveBuffer bisher mit dem Streamdev Plugin ? Eigentlich sollte das streamdev Plugin diese Funktionalitaet implementieren, denn das Livebuffer plugin nimmt nur die aktuelle lokale Ausgabe auf.

  • Zitat

    Originally posted by helau
    Das Plugin macht nichts anderes als den livebuffer zu speichern.


    Ich glaube wir meinen das Gleiche (?)


    Zitat

    Originally posted by helauUnd beim Starten des Livebuffers wird eine Aufnahme gestartet,


    Das ist denke ich nicht so sinnvoll, da nur selten so gewollt. In 80% der Faelle will man nur eben nochmal was anschauen; ich denke es ist eher selten dass man eine Aufnahme aus dem Buffer machen moechte.


    Zitat

    Originally posted by helau
    P.S. Wie funktioniert denn der LiveBuffer bisher mit dem Streamdev Plugin ? Eigentlich sollte das streamdev Plugin diese Funktionalitaet implementieren, denn das Livebuffer plugin nimmt nur die aktuelle lokale Ausgabe auf.


    Gute Frage, hab ich nie getestet. Aber eigentlich sollte das Verhalten genauso sein wie als wenn die Karte lokal vorhanden waere... Wenn man nun ein Device fuer den Livebuffer erstellt koennte man auch das an den remote client durchreichen...

    kuifje
    asus m2n-vm | Athlon 5600 | Nvidia 9300GE | TT S2-3200
    yaVDR 0.4 | 1.7.21
    haddock
    asus p4pe | 2ghz | 3x DVB-S Budget | 2x500gb
    debian lenny 2.6.29.3 | e-tobi 1.7.0 | streamdev cvs | live


    <30.12.07 <igel>sid fuer den gewissen kick>
    <01.04.08 <igel>ich kann eh nix ausser debian pakete installiern>
    <15.12.09 igel hasst linux>
    <23.02.10 <igel> easyvdr is nur easy wenn es easy is>

  • Zitat

    Original von infinite


    Das ist denke ich nicht so sinnvoll, da nur selten so gewollt. In 80% der Faelle will man nur eben nochmal was anschauen; ich denke es ist eher selten dass man eine Aufnahme aus dem Buffer machen moechte.


    Bist Du da sicher ? dann verliert man aber den aktuellen Strom.
    Man koennte aber 2 Varianten anbieten:
    1. Nur livebuffer ansehen, dann wird der Livebuffer in ne Aufnahme umgewandelt und diese abgespielt
    2. Aufnahme starten, dann wird der LiveBuffer davor gehaengt.


    Zitat


    Gute Frage, hab ich nie getestet. Aber eigentlich sollte das Verhalten genauso sein wie als wenn die Karte lokal vorhanden waere... Wenn man nun ein Device fuer den Livebuffer erstellt koennte man auch das an den remote client durchreichen...


    Und was machst Du bei 2 Clienten ? Dann benoetigst Du auch 2 Livebuffer Instanzen ...
    Wie gesagt diese Funktionalitaet gehoert eigentlich ins streamdev plugin, es hat eh den Datenstrom, dann koennte es diesen auch zwischenspeichern...

  • Zitat

    Originally posted by helau
    Bist Du da sicher ? dann verliert man aber den aktuellen Strom.
    Man koennte aber 2 Varianten anbieten:
    1. Nur livebuffer ansehen, dann wird der Livebuffer in ne Aufnahme umgewandelt und diese abgespielt
    2. Aufnahme starten, dann wird der LiveBuffer davor gehaengt.


    Wieso sollte man den aktuellen Strom verlieren? Auch wenn ich den Livebuffer gerade anschaue wird dieser ja weiterhin in Realtime gefuellt - mit den Daten des Stroms der TV Karte...
    Wenn du beim bisherigen Livebuffer Patch im automatischen Wiedergabemodus der Aufnahme am spulen bist wird die Aufnahme automatisch laenger, man bleibt also immer im Wiedergabemodus, es sei denn man spult bis zum Ende des Buffers (temporal gesehen, also in Richtung aktuelle Zeit), dann wird die Wiedergabe des Buffers beendet und man landet wieder im normalen TV Programm (wenn ich mich richtig erinner..)
    Hast du den Livebuffer schonmal ausprobiert? Das geht da auch genauso wie von mir beschrieben.


    Zitat

    [quote]Originally posted by helau
    Und was machst Du bei 2 Clienten ? Dann benoetigst Du auch 2 Livebuffer Instanzen ...
    Wie gesagt diese Funktionalitaet gehoert eigentlich ins streamdev plugin, es hat eh den Datenstrom, dann koennte es diesen auch zwischenspeichern...


    Stimmt schon. Wenn man also quasi einen "Server Livebuffer" anbieten will, muss es folglich pro TV Karte im System einen Buffer geben. Dies ist seh ich aber momentan eher als ein "nice to have" Feature.


    infinite

    kuifje
    asus m2n-vm | Athlon 5600 | Nvidia 9300GE | TT S2-3200
    yaVDR 0.4 | 1.7.21
    haddock
    asus p4pe | 2ghz | 3x DVB-S Budget | 2x500gb
    debian lenny 2.6.29.3 | e-tobi 1.7.0 | streamdev cvs | live


    <30.12.07 <igel>sid fuer den gewissen kick>
    <01.04.08 <igel>ich kann eh nix ausser debian pakete installiern>
    <15.12.09 igel hasst linux>
    <23.02.10 <igel> easyvdr is nur easy wenn es easy is>

  • Zitat

    Original von infinite
    Wenn du beim bisherigen Livebuffer Patch im automatischen Wiedergabemodus der Aufnahme am spulen bist wird die Aufnahme automatisch laenger, man bleibt also immer im Wiedergabemodus, es sei denn man spult bis zum Ende des Buffers (temporal gesehen, also in Richtung aktuelle Zeit), dann wird die Wiedergabe des Buffers beendet und man landet wieder im normalen TV Programm (wenn ich mich richtig erinner..)
    Hast du den Livebuffer schonmal ausprobiert? Das geht da auch genauso wie von mir beschrieben.


    Das weiss ich schon dass das so geht, aber fuer die implementierung machts dies vermutlich deutlich schwieriger.
    Aber ich halt mich jetzt hier raus, dafuer dass ich es nicht wirklich brauche hab ich schon viel zu viel geplappert :)

  • Dafür bringst du aber auch gleichzeitig viele Ideen ein... deswegen, nein du hältst dich jetzt nicht raus ;)


    Naja, was spricht denn dagegeben die LBs dynamisch zu handhaben. Wenn pro Client ein LB erzeugt wird, mag das zwar viel Last auf dem Server erzeugen, aber dafür sind Server da, oder irre ich? Und wenn der LB lokal erzeugt wird, gibt es halt nur ein einziges LB-Device.


    Vielleicht hab ich das immer noch nicht Verstanden. Es gibt doch Eingabedevices und Ausgabedevices, das LB-Plugin soll nun genau dazwischen liegen, so dass sich die Ausgabeplugins das zwischengespeicherte Signal abholen können. Das macht ja im prinzip die allgemeingültige Form unumgänglich, weil ja sonst alle Ausgabeplugins (und nicht nur Streamdev sondern auch das PVR350-Plugin diese Funktionalität selbst implementieren müssten, oder wie?


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

    Einmal editiert, zuletzt von methodus ()

  • Entweder ich spinne oder die andern :lol2


    Ich glaube es war von helau ganz anders geplant wie ihr euch das vorstellt.
    Ich versuchs mal aus meiner Sicht zu erklären.
    Ein Ausgabe Plugin bekommt die Daten vom VDR die ausgegeben werden sollen und nur die. Das Ausgabe device kann jetzt die Daten am Fernseher oder wie xine an einen Client schicken. Und genau da setzt dann das Ausgabe device vom Livebuffer an. Die Daten werden aber nicht verschickt oder Ausgegeben sondern gespeichert. Wenn also die Wiedergabe des aktuellen Kanals beendet wird auch wenn man sich den Livebuffer ausgeben lässt wird natürlich auch der aktuelle Livebuffer nicht mehr mit den richtigen Daten gefüttert. Also muss man bei dieser Methode eine Aufnahme starten.
    Und es währe auch kein zwischen device sondern ein Ausgabe device und da kann sich auch keiner andocken.
    Wenn ihr das so nicht wollt sollte man vielleicht doch mit receivern arbeiten.


    mfg Thomas

    VDR:
    Hardware: Thermaltake DH102, Zotac ION ITX-F-E, 2Gig Ram, TechnoTrend
    dual DVB-S2 6400, TechnoTrend Connect CT-3650,


    Software: EasyVDR 1.0

  • Zitat

    Original von helau
    Auch wenn keiner auf meinen urspruenglichen Vorschlag eingehen will, hier nochmal mein Ansatz zur Realisierung des LiveBuffers via Plugin:


    Man legt ein Ausgabe-Device an und speichert in der PlayTS Funktion den Datenstrom ab ( auf Platte oder im Speicher ).
    Sobald jemand das Plugin aktiviert, wird eine Aufnahme auf dem aktuellen Kanal gestartet und zwar derart, dass diese an den vorhandenen livebuffer angehaengt wird ( z.B. dadurch realisierbar, dass das Livebuffer-Verzeichnis denselben Namen bekommt wie die Aufnahme und die vorhanden Files 0000x.ts heissen ).
    Im Grossen und Ganzen wars das schon, und dazu muss vermutlich VDR nicht gepatched werden und streamdev etc laufen damit sicher auch.


    hi das ganze klingt ja nicht so kompliziert und hat mich auf eine Idee gebracht man könnte ja das ganze in den Ram buffern, und sobald eine aufnahme gestartet wird, einfach mit 00002.ts starten und das was im Ram war als 00001.ts auch ins Aufnahme Verzeichnis hineinschreiben, fürs erste wäre das doch mal ein einfacher start?


    hast du zufällig eine aktuelle Doku zum VDR 1.7.10 und dessen Pluginschnittstelle?


    und kannst du mir vielleicht sagen ob diese PlayTS-Version immer einen Frame übergegeben bekommt und den entsprechenden Teil des Tons oder einen Stream der einmal bei jedem Channelswitch übergeben wird?


    kenne mich mit C/C++ programmierung leider nicht wirklich aus (C#, Java, PHP sind eher mein Gebiet) und Matura (in DE auch ABI genannt) inkl. Maturaprojekt bin ich auch gerade dran würde mir das ganze aber gerne mal kurz ansehen da es durchaus sehr interessant ist wie solch ein Plugin programmiert wird



    mfg


  • Du kannst dir ja die sourcen vom VDR-1.7.10 herunterladen und die Plugins.html lesen. In der Readme steht auch noch wie man sich eine Source Dokumentation erstellt.


    mfg Thomas

    VDR:
    Hardware: Thermaltake DH102, Zotac ION ITX-F-E, 2Gig Ram, TechnoTrend
    dual DVB-S2 6400, TechnoTrend Connect CT-3650,


    Software: EasyVDR 1.0

Jetzt mitmachen!

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