Posts by hannemann

    Jedoch habe ich das Gefühl das das Vorhaben hier im Umfang explodieren wird...
    Prinzipiell lässt sich das ja alles schon mit Plex/Emby bewerkstelligen. Emby kann auch schon mit den NVDEC/Quicksync Encodern.


    Macht doch nichts, wenn das Projekt etwas größer wird. Um unser Hobby weiter voranzutreiben ist es IMO ein Schritt in die richtige Richtung. Auch kann es nicht schaden ein Open Source Plugin anzubieten, das mit transkodieren von Streams umgehen kann damit andere Projekte wie z. B. Kodi auch davon profitieren können. Es soll ja immer noch Leute geben, die sich Plex und Co nicht installieren wollen da Closed Source.


    Einen extra Dienst fände ich nicht so gut. Ich habe da bedenken wegen der Umschaltzeiten und was macht der Dienst während des umschaltens wenn keine Daten mehr geliefert werden. Naja... da kenn ich mich nicht aus. Wenn es funktioniert... aber irgendwie hört sich für mich Plugin "richtiger" an. Auch weil man direkten Zugriff hat und IMO alles einfacher Steuern könnte.


    Wahlfreier Zugriff ist viel schwieriger....


    Wenn Live TV noch einfacher ist, warum dann nicht für Aufnahmen ein Recording Device nutzen? Müsste das nicht ähnlich handlebar sein? Bei Streamdev kann man ja bereits einen Timestamp mitgeben. So habe ich in meinem Player das Spulen umgesetzt.

    MartenR


    Wie man die Parameter übergibt kann man ja relativ einfach anpassen. Ich habe jedenfalls gerade festgestellt, das Apache als Proxy zicken macht wenn man kodierte slashes im URL übergeben will (404). Vielleicht sind GET Parameter doch besser geeignet.


    Restfulapi kann bereits alles liefern was benötigt wird. Wenn man das als Quelle für die benötigten Infos hernimmt braucht man sich darum gar nicht zu kümmern und falls was fehlt bauen wir es ein.


    Meinst du Live TV lässt sich auch so umsetzen? Das zu segmentieren stell ich mir irgendwie schwierig vor.

    Vielmehr eine Architektur zu finden die möglichst viele Geräte ansprechen kann, also welche Container und Codecs bedient werden müssen. Außerdem habe ich nicht so richtig Lust auf die javascript Seite und ich brauche noch eine lib die sich um die http routen kümmert.
    Also ich schwanke noch ob ich damit anfangen soll....


    Also wenn das mit den Segmentierten Dateien irgendwie hinzubekommen ist... den JavaScript Part übernehme ich gerne. Mein Player kann ja schon die Hälfte. Aktuell arbeite ich mit den Streams von Streamdev aber das kann man auch umbauen.
    Für den HTTP Teil könnte man cxxtools nehmen.

    Naja, interessant ist das schon (wobei das schon viel Zeit brauchen wird), aber ich würde das eher nicht als Ausgabeplugin machen, sondern eher so eine Art Plugin, dass die Aufnahmen und die aktuellen Sender, als segmentierte TS oder MP4 transcodiert. (Also so eine Art vompserver plugin, nur http basiert und mit Transcoding und Segmentierung mit Clients entweder nativ oder Javascript).
    Das Problem sind hier eher die vielen Standards Samsung TV wollen noch die alten HAS oder HLS Standards, moderne Browser und Android TV (z.B. Sony) kann man über die MediaSourceExtensions von HTML5 bedienen oder nativ über MediaCodecs, aber das sind dann entweder MP4 oder TS Container. (Bei Segmentierung kann man leider ffmpeg nicht zum muxen nehmen, da es das nicht unterstützt). Zusätzlich gibt es noch ein großes Codec Wirrwar was die einzelnen Devices unterstützen.....


    Ich hab da ja so eine Webapp Programmiert, mit der man über Streamdev auch TV oder Aufnahmen ansehen kann. Was mich dabei stört, ist das ich IOS nicht bedienen kann, da hier die angesprochene Segmentierung verlangt wird und die langsamen Umschaltzeiten. Das Codec Wirrwarr ist gar nicht so schlimm. Eigentlich benötigt man nur x264 und Webm. Damit bedient man schon mal alles außer IOS (IE mit Webm Plugin von Google, Edge hab ich (noch) nicht). Chrome nimmt übrigens auch MKV


    Ich wünsche mir so ein Plugin, damit VDR eine eigene Lösung für Mobiles Fernsehen anbieten kann. Das funktioniert mit meiner App sehr gut (ich nutze sie täglich z.B. zum Nachrichten schauen beim Zähneputzen), ist aber wie gesagt verbesserungswürdig. Jetzt mit NVENC kann man schon mal schwachbrüstigere Server dafür nutzen. TV Geräte interessieren mich hier weniger. Da kann man auch einen RPI oder ähnliches als Client anschließen oder meine App mit Chromecast nutzen (ist eher nur zum Aufnahmen schauen gut TV geht auch, man kann ja aber nicht umschalten).


    Vielleicht kann man ja auch Streamdev beibringen bei Nutzung von Externremux auf Befehl umzuschalten. Aktuell muss ich immer den Stream anhalten und einen neuen starten, was auch schon Probleme macht und ca. 30 Sekunden dauert.

    Das ist ja echt mal interessant, was sich da tut!


    Eine Frage nur, warum arbeitet ihr alle mit Bitraten?
    ...
    Bzw. ob es überhaupt mit CRF geht.


    ffmpeg -h encoder=nvenc

    Leider kennt nvenc crf nicht.

    Das aber ne 950er ;)


    Ich sag mal: Klar... kauf! Und berichte dann bitte was die mit HEVC so kann :P


    Ich habe das ganze gerade in meine App implementiert. Nu kann mein Serverchen mir auch HD Streamen ohne auf Anschlag abzuhecheln bzw. HD funktioniert endlich überhaupt.
    Streamdev EXT mit Hardware Encoding...


    Das einzige was noch besser wäre wär ein richtiges Ausgabeplugin das on the Fly transkodiert und mit dem man auch via HTTP Request umschalten kann ohne das er den Transkodier Prozess neu starten muss.


    Vielleicht liest ja hier einer von den Ausgabe Plugin Profis mit und baut das mal eben kurz ;) Ich beteilige mich dann auch mit einer hübschen Mediengalerie für den Browser.

    Mal am Rande:
    Die GTX750TI hat ein Maxwell Chip, oder?
    Meine GTX780 noch einen Kepler Chip.
    Meine GTX780 macht bei 3PO's Testdatei gerade einmal ~90fps


    Obwohl die GTX780 mehr Gaming Leistung als die GTX750 hat, hinkt sie beim nvenc hinterher...


    Geil... Meine Karte rockt voll! :strike1
    Maxwell vor!!!

    Code
    frame=  850 fps=151 q=26.0 Lsize=   20573kB time=00:00:34.92 bitrate=4826.2kbits/s speed= 6.2x


    Keine Ahnung ob Maxwell die neuere Generation ist aber Kepler ist doch die erste Generation mit der NVENC überhaupt geht. Daher müsste dein Chip ja einer älteren Generation angehören, was das erklären könnte

    Tja... keine Ahnung. Vorhin lief es ja noch. Also muss irgendwas anders sein.


    Was noch anders ist ist die Einheit der Bitrate: 4.5M
    Mach doch mal

    Code
    ffmpeg -i test_hd.ts -map 0:v -map 0:a:0 -c:v nvenc_h264 -b:v 4500K -maxrate 5000K -bufsize:v 9000K -bf 2 -g 150 -i_qfactor 1.1 -b_qfactor 1.25 -qmin 1 -qmax 50 -c:a libfdk_aac  -f matroska output.mkv


    Versuch auch mal libx264 und den audio codec weg zu lassen. Nur um das Problem einzukreisen.