Jump to content

Aufgaben (Generate MP3/MP4) Problem


frank64

Recommended Posts

Hallo an alle.

 

Ich habe ein Problem mit dem Hinzufügen einer neuen Aufgabe in den DVBViewer Service Optionen. Konkret habe ich die Kommandozeile aus der vorhandenen Aufgabe "Generate MP3/MP4" als Vorlage benutzt und so abgeändert:

-hwaccel auto -i "{SOURCE_FILE}" -map 0:v -vcodec h264_nvenc -vf yadif -pix_fmt yuv420p -profile:v baseline -preset medium -rc:v vbr -cq:v 19 -vf "scale=trunc(in_w/2)*2:trunc(in_h/2)*2" -map 0:a? -c:a aac "{PATH_FILENAME}.mp4"

also alle Variablen entfernt die sich auf mp3 Aufnahmen oder den Unterschied zwischen *.ts und *.mpg Aufnahmen beziehen. Ich will beide Aufnahmeformate in *.mp4 wandeln und dabei den Hardware Encoder meiner Quadro P400 benutzen. Ich bekomme als Ergebnis nur ein 0-byte, also leere *.mp4 Datei. Normalerweise würde ich vermuten, daß ich schlicht die ffmpeg Kommandozeile vermurkst habe, ABER: wenn ich außerhalb des DVB Media Server denselben Befehl mit konkreten Dateinamen an ffmpeg übergebe, funktioniert es einwandfrei!

ffmpeg -hwaccel auto -i "P:\TV-Aufnahmen\test file.mpg" -map 0:v -vcodec h264_nvenc -vf yadif -pix_fmt yuv420p -profile:v baseline -preset medium -rc:v vbr -cq:v 19 -vf "scale=trunc(in_w/2)*2:trunc(in_h/2)*2" -map 0:a? -c:a aac "P:\Tv-Aufnahmen\test file.mp4"

Alos vermute ich, das Problem liegt in der Auflösung der Variablen {SOURCE_FILE}. {PATH_FILENAME} funktioniert ja anscheinend, da ich eine, wenn auch leere, MP4 mit korrektem Namen im richtigen Verzeichnis erhalte. Was kann da schief laufen, hat jemand eine Idee?

 

PS: ich habe auch mal bei offenem Taskmanager beobachtet, anscheinend wird ffmpeg gar nicht aufgerufen, jedenfalls erscheint es nie in der Prozessliste.

Edited by frank64
Link to comment

Hab nochmal zur Sicherheit einen Test mit der original Aufgabe "Generate MP4/MP3" gemacht, das funktioniert. Also irgendwas ist falsch an meiner ffmpeg Zeile, aber ich komm einfach nicht drauf... ?

Link to comment
vor einer Stunde schrieb nuts:

Das abschließende Anführungszeichen beim Ausgabepfad vielleicht? Ist jetzt aber nur "geraten" von Smartphone aus. :D

Danke, aber das wars nicht, das gehört so ;)

 

Hab den Fehler gefunden, auch wenn ich ihn mir nicht recht erklären kann: das "-hwaccel auto" am Anfang war das Problem, das sorgt normalerweise dafür das auch das decoden des Source-Videos über die Grafikkarte läuft. Wenn ich das weglasse, funktioniert die Aufgabe. Seltsam, weil wie gesagt als ffmpeg Befehl im cmd window funktioniert es auch mit hwaccel.

 

Aber damit kann ich leben und es läuft jetzt - Konvertierung 3 bis 4 mal schneller als ohne GPU, und dabei nuir 30 Prozent CPU Last statt vorher 100 Prozent. ?

Link to comment

Ich glaube das hatten wir schonmal an anderer Stelle. Die GPU Unterstützung ist (teilweise?) nicht über das Systemkonto (in dem der DMS läuft) verfügbar. Würde zumindest deine Beobachtung mit dem manuellen Aufruf erklären, da dieser wohl kaum im Systemkonto ablaufen wird. 

Link to comment

Nie ausprobiert, aber laut changelog sollte sich das sogar ändern lassen:

 

Zitat

"Ergänzt: Aufgaben-Optionen: Die Checkbox „Erweiterte Privilegien für die Ausführung von Aufgaben im aktiven Benutzerkonto“ erlaubt dem Media Server, Aufgaben auszuführen, die eine Anwendung mit Benutzeroberfläche (z.B. den DVBViewer) im aktiven Benutzerkonto starten. Bitte beachten: Mehr Rechte bedeuten i.a. weniger Sicherheit. Deshalb sollte diese Einstellung nur wenn nötig verwendet werden. Sie zu ändern erfordert Administratorrechte (siehe nächster Punkt). Nach einer Neuinstallation oder Aktualisierung des Media Servers kann es erforderlich sein, die Option erneut einzuschalten. Die neue Checkbox „Im aktiven Benutzerkonto ausführen“ im Task Editor legt pro Task fest, ob sie im aktiven Benutzerkonto (mit zugänglicher Benutzeroberfläche) oder im Systemkonto (ohne Benutzeroberfläche) ausgeführt werden soll."

 

Wäre ein Versuch wert. :)

Link to comment

Hmm... jein. Das encoden über die GPU geht ja mit den Standard Privilegien, und das ist auch das wichtige, weil es nur 1/3 CPU-Leistung kostet und gleichzeitig mind. 3x schneller ist, im Vergleich zu software-encoding. Bei mir ist es irgendwie das decoden des Source Files über die GPU gescheitert. Das bringt nochmal mehr Speed, wenn es denn funktioniert.

 

Trotzdem, vlt. probier ichs nochmal aus mit den erweiterten Rechten, danke für den Tip.

Link to comment

Nichts Gegenteiliges behauptet. ;)

Womöglich benötigt der Decoder eine DXVA Schnittstelle, die im Systemkonto nicht zur verfügung steht?

Ich meine jemand hatte mal etwas ähnliches bezüglich des GPU Processing gemeldet, aber ich finde den Thread gerade nicht.

Link to comment

Okay, ich hatte da eine Vermutung, die sich bestätigt hat: die Kommandozeile der Aufgaben im DVB Media Server erwartet, warum auch immer, als erstes Argument die Angabe des Sourcefiles mit -i,  jeder andere Befehl an erster Stelle führt zum oben beschriebenen Verhalten, daß nur eine leere *.mp4 erzeugt wird. Habs beispielhaft mit "-nostats" und "loglevel" an erster Stelle der Kommandozeile probiert, immer dasselbe.

Link to comment
2 hours ago, frank64 said:

ich hatte da eine Vermutung, die sich bestätigt hat: die Kommandozeile der Aufgaben im DVB Media Server erwartet, warum auch immer, als erstes Argument die Angabe des Sourcefiles mit -i

 

Kann ich nicht bestätigen. Ich habe "Generate MKV" entsprechend modifiziert (einmal -hwaccel auto und einmal -analyzeduration 1M vorangestellt), dann im Webinterface -> Aufnahmen eine vorhandene Aufgabe editiert (Stiftsymbol) und im Edit-Dialog Aufgabe anwenden -> Generate MKV ausgeführt.

 

Für den Zweck habe ich den DMS (also DVBVservice.exe) als Anwendung gestartet, damit ich den FFmpeg-Output sehen kann. Abgesehen von einer Fehlermeldung, dass die HW-Beschleunigung nicht initialisiert werden konnte, lief alles reibungslos über die Bühne, d.h. die Zieldatei wurde erzeugt.

 

Den DMS als Anwendung laufen lassen ist für Testzwecke recht nützlich. Dazu muss man ihn erst über das Tray Tool als Dienst stoppen, dann einfach ein Doppelklick auf die EXE. Der DMS hat dann sogar ein kleines Fenster, über das man ihn beenden kann. Es gibt aber wesentliche Einschränkungen: Zum Beispiel klappt die Kommunikation mit dem Tray Tool nicht, und der DMS kann mangels Adminrechten nicht mehr in bestimmte Verzeichnisse schreiben. Also den Modus besser nicht für den regulären Betrieb benutzen!

 

Link to comment

Danke, das ist ja ziemlich nützlich. Habs eben mal ausprobiert, auch daß man die Aufgaben im Web Interface manuell ausführen kann, war mir nicht bewußt.

 

Ich glaub, ich muß mir Asche aufs Haupt streuen.... ?... vermutlich lag das Problem an der verwendeten ffmpeg Version. Als ich vor ein paar Wochen DVBViewer/Mediaserver installiert habe, hat gerade der automatische ffmpeg Download während des Setup nicht funktioniert und ich hab es von Hand ins Verzeichnis kopiert, wie sich herausstellt Version 3.4.2 (64bit). Jetzt hab ich mal die aktuelle 4.0.2 (64bit) verwendet und damit funktioniert auch -hwaccel als erstes Argument in der Kommandozeile.

 

Sorry nochmal. Alles gut jetzt, die Aufnahmen werden nun mit  11 bis 12-facher Geschwindigkeit konvertiert. :)

Link to comment
2 hours ago, frank64 said:

Jetzt hab ich mal die aktuelle 4.0.2 (64bit) verwendet und damit funktioniert auch -hwaccel als erstes Argument in der Kommandozeile.

 

Danke für den Hinweis. Dann sollte auch das kommende DMS 2.1.2 Release die FFmpeg-Version 4.0.2 zum Download anbieten, nicht mehr 3.4.2.

 

Link to comment
  • 2 years later...

Hallo zusammen,

 

ich nutze zwar noch eine alte Version vom DVB Recodeing Service (1.33.2.0 (beta)) aber hier meine Settings für die automatische Konvertierung mittels FFMPEG nach der Aufnahme:

 

Dateiname:

{DVBVIEWER_PATH}ffmpeg.exe

<Ich habe nach langem hin und her herausgefunden, dass FFMPEG nur aufgerufen wird, wenn es in genau diesem Verzeichnis liegt.>

 

Parameter:

-i "{SOURCE_FILE}" -init_hw_device qsv=hw -filter_hw_device hw -vf hwupload=extra_hw_frames=64,format=qsv -c:v h264_qsv -global_quality 22 -y "{PATH_FILENAME}.mp4" -nostdin

 

Damit werden meine Videos mittels der integrierten INTEL GPU umgerechnet.

Ich reduziere damit um knapp 66%. Aus 3GB werden so 1GB Video-Daten.

Ob diese Qualität für einen großen Fernseher reicht, muss ich noch testen.

 

Grundsätzlich nehme ich aber nur alltägliche Sendungen auf, wo die Qualität eher Nebensächlich sein darf...

 

Ich poste das jetzt, damit andere nicht noch lange rum suchen müssen.

Meine Konfig funktioniert so...

 

Wenn man an der Ausgabe-Qualität noch schrauben möchte, empfehle ich die Dokumentation von FFMPEG: https://ffmpeg.org/ffmpeg.html

--

Viele Grüße

Sysselix

 

2021-07-11 22_16_04-DVBViewer Recording Service V1.33.2.0 (beta).png

Edited by Sysselix
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...