pblacky Posted May 1 Share Posted May 1 Hallo, Ich bin erst seit 1 Woche Benutzer des DVBViever und nehme seither damit meine Sendungen über eine DigitalDevices Octopus auf. Das funktioniert alles inzwischen ganz brauchbar! Nun habe ich entdeckt, dass es die Möglichkeit gibt, Aufnahmen nachher direkt mit dem Media Server zu konvertieren. Allerdings sind diese konvertierten Files mir der default angebotenen nicht viel kleiner als die original *.ts Dateien. Da ich viele der Aufnahmen gerne möglichst klein und ohne Qualitätsverlußt aufheben möchte hab ich sie vor meinem Umstieg immer mit AviDemux nach gewissen Vorgraben verkleinert. Damit hab ich die *.ts Files auf ca. 50% runtergebracht ohne einen sichtbaren Qualitätsverlußt zu haben. Nun zur Frage: Kann man die nach der Aufnahme angebotene automatische Konvertierung irgendwo einstellen ? Oder kann ich vielleicht den AviDemux da irgendwie einbinden? Ich hab mir das Handbuch schon angesehen, aber zu dieser automatischen Konvertierung hab ich noch keine Doku gefunden! Quote Link to comment
Griga Posted May 1 Share Posted May 1 vor 5 Stunden schrieb pblacky: Kann man die nach der Aufnahme angebotene automatische Konvertierung irgendwo einstellen ? Du kannst sie modifizieren, wenn du dich mit FFmepg auskennst, das die Transkodierung durchführt. Starte die Media Server-Optionen (SvcOptions.exe), wähle "Aufgaben" und z.B. "Generate MP4/MP3". Klicke dann auf "Anzeigen". Es erscheint der Aufgaben-Editor und zeigt die an FFmpeg übergebenen Kommandoparameter. Wenn du sie im Aufgabeneditor modifizieren willst, musst du SvcOptions.exe mit Adminrechten starten. Zusätzlich zu Kommandoparametern kannst du in der Aufgabendefinition Platzhalter und Bedingungen in geschweiften Klammern und Großbuchstaben verwenden. Hilfen dazu gibt es im Aufgaben-Editor selbst (auf "Platzhalter" klicken, beim Überstreichen mit der Maus gibt es ein Beispiel als Hinweis)), im Wiki sowie im Webinterface -> Links -> Media Server Versionshinweise. Suche dort mit der Browser-Suchfunktion (Strg+F) nach {IF BEDINGUNG} Soviel erst mal in Kürze... wenn etwas unklar ist, fragen. vor 5 Stunden schrieb pblacky: Oder kann ich vielleicht den AviDemux da irgendwie einbinden? Wenn du dich gut damit auskennst, wie AviDemux über Kommandoparameter gesteuert wird, kannst du vermutlich eine entsprechende Process Task erzeugen. 1 Quote Link to comment
pblacky Posted May 4 Author Share Posted May 4 Ich hab kein Problem, wenn die Konvertierung mit FFMPEG gemacht wird. Hab da mal reingesehen, aber das ist mit etwas zu hoch um da selbst Hand anzulegen ohne mich auszukennen ;-( Der Syntax ist relativ durchschaubar, aber die Konvertier Parameter sind mir zu hoch! Die voreingestellte Konvertierung "Generate MP4/MP3" funktioniert zwar, aber die konvertierten Files, sind bei mir nicht viel kleiner als die Aufnahmen des Original *.ts Stream! Mit Avdemux konnte ich bis jetzt immer so ca. 50% runterkonvertieren ohne sichtbaren Qualitätsverlußt! Ich hatte gehofft, dass hier jemand ein paar weitere sinvolle Konvert Einstellungen mit FFMPEG verwendet uns sie vielleicht teilen möchte? Ist aber vorerst kein Proiblem, denn meine alte Konvertierroutine ist noch aktiv, also wird das Platz 99 in meiner 1000 Seitigen ToDo Liste mit dem DVBV 😉 Quote Link to comment
Griga Posted May 4 Share Posted May 4 vor 1 Minute schrieb pblacky: Die voreingestellte Konvertierung "Generate MP4/MP3" funktioniert zwar, aber die konvertierten Files, sind bei mir nicht viel kleiner als die Aufnahmen des Original *.ts Stream! Das liegt daran, dass die Videodaten nicht konvertiert, sondern kopiert werden, also nahezu 1:1 von TS nach MP4 übernommen werden, damit es schnell und ohne Qualitätsverluste über die Bühne geht. Konvertiert wird nur MPEG2 Video, und zwar nach H.264, weil MPEG2 im MP4-Container ungebräuchlich ist. "Generate MP4/MP3" zielt hauptsächlich darauf ab, mit dem Media Server Aufnahmen auf Mobilgeräte zu streamen, die mit TS meistens nichts anfangen können. MP4 mit H.264 Video spielen dagegen sogar Browser ab. Angesichts der aktuellen Festplattenpreise lohnt es sich kaum noch, Aufnahmen kleiner zu machen. Bei 100 € für eine externe 4 TB-Platte bezahlst du pro GB 2,5 Cent... Quote Link to comment
pblacky Posted May 4 Author Share Posted May 4 (edited) vor 8 Minuten schrieb Griga: Angesichts der aktuellen Festplattenpreise lohnt es sich kaum noch, Aufnahmen kleiner zu machen. Bei 100 € für eine externe 4 TB-Platte bezahlst du pro GB 2,5 Cent... Ja da hast du recht! Außer du möchtest sie auf einem Handy oder Tablett unterwegs offline mithaben und hast nur 128 GB Speicher gekauft 😉 Ich werd mal mit dem alten System weiter konvertieren und mir das später mal genauer ansehen..... Danke jedenfaslls für deine vielen Tipps hier, das erleichtert mir den Einstieg!! Edited May 4 by pblacky Quote Link to comment
Griga Posted May 4 Share Posted May 4 Da bräuchtest du dann ein Handy oder Tablet, das Videos von einer externen Festplatte abspielen kann... Vielleicht hilft es dir weiter, in der Datei C:\Program Files (x86)\DVBViewer\config\ffmpegprefs.ini oder auch iphoneprefs.ini nachzuschauen, wie die FFmpeg-Parameter für die Konvertierung von Live Streams und Dateien für die Wiedergabe im Browser aussehen. Da wird nämlich wirklich konvertiert, um eine bestimmte Auflösung und Zielbitrate zu erreichen. Die Teile in geschweiften Klammern sind wieder Variablen, für die der Media Server etwas einsetzt - was genau, siehst du im svcdebug.log, nachdem du eine Wiedergabe im Browser veranlasst hast. Quote Link to comment
pblacky Posted May 5 Author Share Posted May 5 Am 4.5.2024 um 12:00 schrieb Griga: Vielleicht hilft es dir weiter, in der Datei C:\Program Files (x86)\DVBViewer\config\ffmpegprefs.ini oder auch iphoneprefs.ini nachzuschauen, wie die FFmpeg-Parameter für die Konvertierung von Live Streams und Dateien für die Wiedergabe im Browser aussehen. DAS werd ich mir bei Gelegenheit mal reinziehen und dann melde ich mich wieder, DANKE! Quote Link to comment
Webturtle Posted May 6 Share Posted May 6 (edited) Hallo, @pblacky: In welches Format möchtest Du denn mit Ffmpeg konvertieren? Ich rekordiere öfters Aufnahmen mit einer Batchdatei mit Ffmpeg in MPEG für unseren Flat-TV. Dabei kann ich in der Batchdatei die mit MPC-HC bzw. VLC festgestellten Werte für den Vor- und Nachlauf eingeben und so ca. 2x10 Minuten wegschneiden. Im Internet gibt es auch in Deutsch leidlich brauchbare Anleitungen für Ffmpeg. Viele Grüße Webturtle Edited May 6 by Webturtle Quote Link to comment
pblacky Posted May 6 Author Share Posted May 6 vor 7 Stunden schrieb Webturtle: In welches Format möchtest Du denn mit Ffmpeg konvertieren? Ich konvertiere die erstellten Aufnahmen derzeit noch mit einer Batch über Kommandline mit AviDemux. Hab gerade mal nachgesehen, weil ich meinen Konvertier Settings schon vor einigen Jahren mal ausdefiniert und seither nicht mehr verändert habe. Media Info hat bei einer bereits konvertierten Datei folgendes ausgespuckt: Format : AVC Format/Info : Advanced Video Codec Format-Profil : High@L3 Format-Einstellungen : CABAC / 4 Ref Frames Format-Einstellungen für CABAC : Ja Format-Einstellungen für RefFrames : 4 frames Codec-ID : H264 Dauer : 1 h 1 min Bitrate : 1 091 kb/s Breite : 768 Pixel Höhe : 432 Pixel Bildseitenverhältnis : 16:9 Bildwiederholungsrate : 25,000 FPS Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scantyp : progressiv Bits/(Pixel*Frame) : 0.132 Stream-Größe : 483 MiB (86%) verwendete Encoder-Bibliothek : x264 core 152 r2854 e9a5903 Kodierungseinstellungen : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x3:0x133 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=6 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=20.0 / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00 Ich würde mir gerne den "Extraschritt" über das Batch mit AviDemux ersparen!? Kann man das auch über FFMPEG automatisch NACH einer Aufnahme machen? Quote Link to comment
Griga Posted May 6 Share Posted May 6 vor 40 Minuten schrieb pblacky: Ich konvertiere die erstellten Aufnahmen derzeit noch mit einer Batch über Kommandline mit AviDemux. Lass doch mal die Batch sehen! Vielleicht kann man sie einfach als Process Task verwenden. Eine solche Task kann natürlich auch eine Batchdatei ausführen. Im Grunde müsste man ihr nur die Quelldatei mittels der Variablen {SOURCE_FILE} übergeben. Quote Link to comment
pblacky Posted May 7 Author Share Posted May 7 (edited) vor 14 Stunden schrieb Griga: Lass doch mal die Batch sehen! Gerne! @echo off set "Z_Pfad=V:\1 - Videobibliothek\0 - NEU" set "Q_Pfad=V:\4 - AutoConvert" if not exist "%Q_Pfad%\*.ts" goto end rem Rufzeichen entfernen powershell -EP Bypass -C "Get-ChildItem -LiteralPath '%Q_Pfad%' -File -Filter '*!*.ts' | rename-item -NewName {$_.Name -replace '!'} -verbose" if not exist "%Z_Pfad%" md "%Z_Pfad%" for %%f in (*.ts) do ( echo y | "p:\PortableApps\AvidemuxPortable\App\Avidemux32\avidemux_cli.exe" --load "%%f" --run "AviDemux_16zu9.py" --save "%Z_Pfad%\%%f.mkv" ) :end Allerdings muss ich das Batch im Selben Ordner, wie die Videofiles anspeichern, da ich AviDemux bis jetzt nicht dazu bringen konnte mit Pfaden zu den Videofiles zu arbeiten. Außerdem kann sie mit Rufzeichen im Dateinamen nicht umgehen, daher muss ich diese im Batch auch vorher entfernen. Den Powershell Teil hab ich mir aus diversen Foren zusammengesucht, aber es funktioniert.... Es sind viele Kleinigkeiten, die eine neue Lösung sicher beseser kann! Deshalb bin ich auch sehr interessiert daran, das möglichst mit den DBViewer Boardmitteln zu machen, da es voraussichtlich stabiler laufen wird !? Aber grundsätzlich freue ich mich über jede Lösung, die wenig händischen Befassungsaufwand hat 😉 Edited May 7 by pblacky Quote Link to comment
Griga Posted May 7 Share Posted May 7 (edited) Am 7.5.2024 um 10:25 schrieb pblacky: Allerdings muss ich das Batch im Selben Ordner, wie die Videofiles anspeichern, da ich AviDemux bis jetzt nicht dazu bringen konnte mit Pfaden zu den Videofiles zu arbeiten. Das macht die Sache umständlich. Und dass die Batch die zu bearbeitende Aufnahme nicht als Kommandoparameter empfängt. Für eine Process Task müsste sich die Batch in einem bestimmten (immer dem selben) Verzeichnis befinden. Und sie müsste als erstes die als Kommandoparameter übergebene Aufnahme in ihr eigenes Verzeichnis verschieben/kopieren (was per Batch nicht besonders schwierig ist), bevor sie ihren eigentlichen Job ausführt. Wenn sie das tun würde, könnte die Task nach Start der Media Server-Optionen mit Adminrechten (geht auch über das Tray Menü) -> Aufgaben -> Neu im Aufgaben-Editor eingegeben werden. [Teil gelöscht, da so wie angegeben nicht funktionsfähig. Korrektur siehe unten] Edited May 8 by Griga Ergänzung, Teil gelöscht Quote Link to comment
Griga Posted May 8 Share Posted May 8 So, jetzt habe ich es raus, wie eine Batch als "Aufgabe nach Aufnahme" ausgeführt werden kann... hat gedauert, weil die Behandlung von Leerzeichen in als Kommandoparameter übergebenen Pfaden dabei höchst tückisch ist. Ich habe eine Datei D:\Transfer\Test Ordner\Test.bat mit folgendem Inhalt: echo on copy %1 "D:\Transfer\Test Ordner" Diese soll eine Datei, deren Pfad\Name der Batch als Kommandoparameter übergeben wird, nach Test Ordner kopieren. %1 steht hier für den ersten übergebenen Kommandoparameter. Man kann sofort probieren, ob das klappt, indem man eine beliebige Datei mit der Maus auf die Batch-Datei zieht. Windows übergibt sie dann als Kommandoparameter. Nun die Process Task, die den Start von Test.bat und das Kopieren einer Aufnahme in den Test Ordner veranlasst. So wird sie in den Aufgaben-Editor eingegeben: Die wesentlichen Punkte Um in den Aufgaben-Editor etwas eingeben zu können, müssen die Media Server-Optionen (SvcOptions.exe) mit Admin-Rechten gestartet werden. Das geht auch über das Tray-Menü ("Mit Admin-Rechten konfigurieren"). Danach Aufgaben -> Neu anwählen (oder Bearbeiten, falls eine bereits existierende Aufgabe geändert werden soll). Nach zweimal OK ist die Aufgabe gespeichert und lässt sich bei der Timerprogrammierung als "Aufgabe nach Aufnahme" auswählen. Als Dateiname wird cmd.exe mitsamt Pfad angegeben, also der Kommandoprozessor, der die Batch ausführen soll. Als Parameter wird /C übergeben, das die Ausführung der nachfolgenden Parameter durch cmd.exe veranlasst. Darauf folgt der Pfad\Name der Batch sowie der Platzhalter {SOURCE_FILE}, für den der Media Server den Pfad\Name der Aufnahme einsetzt. Er wird wiederum der Batch als Kommandoparameter übergeben. Zu beachten ist hier, das alles zusammen, was auf /C folgt, in Anführungszeichen eingeschlossen werden muss, wenn Leerzeichen vorkommen, und zusätzlich jeder Kommandozeilenparameter einzeln, der Leerzeichen enthalten könnte. Deshalb /C ""D:\Transfer\Test Ordner\Test.bat" "{SOURCE_FILE}"" Als Prozesspriorität ist "niedrig" zu empfehlen, damit das Kopieren und die Konvertierung nicht andere Abläufe im PC behindert, z.B. weitere laufende Aufnahmen. Du müsstest jetzt eigentlich nur das Kopieren der Aufnahme in deine Batch integrieren und mit ihr entsprechend verfahren. Möglich wäre auch, die Aufnahme in den Zielordner zu verschieben, wenn sie sich auf dem selben Laufwerk befindet. Aber es wäre nicht nett gegenüber dem Media Server, der die Aufnahme ja bereits in seiner Aufnahme-Datenbank vermerkt hat. Der Eintrag zeigt dann ins Leere. Quote Link to comment
pblacky Posted May 10 Author Share Posted May 10 Hallo @Griga War gerade eine Woche auf Urlaub und habe soeben deinen Tipp gefunden. Super perferkt beschrieben, werde es in den nächsten Tagen gleich mal ausprobieren! Vielen Dank! Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.