Jump to content
Webturtle

FFmpeg per Batch-Datei starten

Recommended Posts

Webturtle

Hallo,

 

wie muß der der Befehl für FFmpeg in einer Batch-Datei aussehen, wenn Kommandozeilen-Variable für die Dateinamen (Pfadnamen) für Quell- und Zieldateinamen verwendet werden sollen?

 

Die Parameter sollen vom Video-Editor übernommen werden. Das Rekodieren funktioniert auch, aber nur, wenn ich die Pfadnamen, die auch Leerzeichen enthalten, explizit in die Batch-Datei schreibe. Bei der Verwendung von %1 oder "%1" funktioniert es nicht.

 

 

Viele Grüße

 

Webturtle

 

 

Share this post


Link to post
hackbart

Also angeben brauchst du die im Editor nicht, denn das füge ich automatisch hinzu.:

 

result := Format(GetAppPath + '\ffmpeg.exe -y -i "%s" ' +  strDefaultTranscode + ' "%s"', [AInFile, FOutput])

 

Share this post


Link to post
Webturtle
Posted (edited)

Hallo Christian,

 

zunächst vielen Dank für Deine Antwort. Zuerst zum Editor: Bei dem habe ich die von Dir voreingestellten Parameter gelöscht und durch  -target pal-dvd -r 25 -s 720x576 -qscale 0  ersetzt. Mit den voreingestellten funktioniert die Umwandlung in MPG (noch) nicht (ich weiß in einer späteren Version soll dies besser werden). Die Parameter habe ich übrigens aus einer deutschen Kurzanleitung für FFmpeg, die leider nur sehr spärlich zu finden sind. Ansonsten bin ich mit dem Video-Editor sehr zufrieden.

 

Meine Frage bezog sich auf eine Konvertierung duch FFmpeg unabhängig von Video-Editor. Ich habe z.B. Sendungen bei BR-alpha (alias ARD-alpha) mit dem DVBViewer GE mit Start-/Stopsteuerung per PDC aufgenommen und wollte sie für einen Fernseher ohne HEVC/H.265 Wiedergabe in MPEG konvertieren. Da es bei den Aufnahmen dank PDC nichts zu schneiden gibt, wollte ich sie direkt mit FFmpeg konvertieren. Dies funktioniert auch sehr gut, wenn ich den Befehl in eine Batch-Datei schreibe und die Pfadnamen der TS- und MPG-Dateien in Anführungszeichen ausdrücklich hineinschreibe (Der Pfad bzw. der Name der Sendungen enthält Leerzeichen). Es gelingt mit aber nicht, die Batchdatei so zu fassen, daß die Namen von Quell- und Zieldatei als Kommandozeilenparameter der Batchdatei angegeben werde können. %1 und %2 funktionieren ebenso wenig wie "%1" und "%2". Als Parameter habe ich übrigens die Voreinstellungen vom Video-Editor verwendet. Beim FFmpeg direkt funktionieren sie.

 

 

Viele Grüße

 

Webturtle

Edited by Webturtle

Share this post


Link to post
hackbart

Achso:

 

ffmpeg -i "Eingabedatei" Parameter "Ausgabedatei".

 

also in deinem Fall:

 

@echo off
ffmpeg -i %1 -f dvd -target pal-dvd -vb 8000k -mbd rd -trellis 1 -flags +mv0 -cmp 0 -subcmp 2 %2 

Das wäre eine extrem langsame Version via batch. Besser ist es auch die Auflösung mit zu berücksichtigen. Als Batch gibst du dann als ersten Parameter die Eingabedatei an und als zweiten die Zieldatei. Wenn da irgendwo Leerzeichnen im Dateinamen bzw. Pfad sind, sollte Anführungszeichen mit verwendet werden. FFmpeg ist ziemlich pingelig was Fehler angeht, so dass man die Parameter ggf. erweitern sollte - je nach Fehlermeldung.

Share this post


Link to post
sir drake

Hallo webturtle,

oder meinst du, das du die ts-datei im orginal auf eine batch ziehen möchtest ( drag and drop ) und der rest passiert in der batch ?

falls ja,
schau dir die anhängende Datei ( batch gezippt )  an.

Die zerlegt deine ts-datei in seine bestandteile und setzt sie für die zieldatei neu zusammen.

entsprechend den vorgaben  in der batch.

 

vg

ffmpeg_batch.zip

  • Like 1

Share this post


Link to post
Webturtle
Posted (edited)

Hallo,

 

@sir drake: Vielen Dank für Deine Antwort und den Anhang. Ich hatte gedacht, die Batch-Datei klassisch zu starten (z.B. do-ffmpeg "d:\Eigene Dateien\Video\DVBViewer\Test.ts") oder den Pfadnamen  der makierten Datei von SpeedCommander als Kommadozeilenparameter übergeben zu lassen. Der Name der Zieldatei sollte u.U. per Autohotkey-Script daraus abgeleitet werden (also z.B. "d:\Eigene Dateien\Video}DVBViewer\Test.mpg") oder fest in der Batch-Datei vorgegeben werden (z.B. "d:\Eigene Dateien\Video}DVBViewer\recoded.mpg"). In diesem Fall müßte man die rekodierte Datei halt jedes mal umbenennen. Dies läßt sich mit SpeedCommander leicht bewerkstelligen. Ich habe zwei AutoHotkey-Scripte um Dateienamen mit Datum zu kopieren oder zu pasten, die per Anwendungsfavorit jeweils für die markierte Datei gestartet werden. SpeedCommander gibt es übrigens ab und zu als Vollversion in der Computerbild.

 

An drag and drop hatte ich gar nicht gedacht.

 

Ich werde mir Deine Ffmpeg_batch.zip natürlich näher ansehen und ausprobieren. Es sieht so aus als würde sie mein Problem lösen, das darin besteht, daß in den Pfadnamen Leerzeichen vorkommen, was für Batch-Kommandozeilenparamter nicht möglich ist. Sie müssen daher mit Anführungszeichen eingeschlossen werden. Außerdem verlangt Ffmpeg ebenfalls Anführungszeichen um die Pfadnamen, wenn sie Leerzeichen enthalten.

 

 

@Christian: In den Anführungszeichen bzw. den Leerzeichen besteht ja gerade das Problem der ffmep.bat. Die Batch-Datei verlangt Anführungszeichen um die Namen und Ffmeg auch. Bei ffmpeg "Test Aufnahme.ts" würde Test Aufnahme.ts anstelle von %1 an Ffmpeg weitergeben, was als Fehler beanstandet wird. "%1" in der batch funktoniert aber auch nicht.

 

Ich verstehe nicht, warum es eine extrem langsame Version via batch ist. Es sind dieselben Paramerter, die in Deinem Video-Editor als Default-Parameter für mpg vorgegeben waren, nur bei mir (noch) nicht funktionieren. Als batch schon und der Video-Editor funktioniert mit anderen Paramertern auch sehr gut.

 

 

Viele Grüße

 

Webturtle

 

Edited by Webturtle

Share this post


Link to post
Webturtle
Posted (edited)

Hallo,

 

@sir drake: Nochmals vielen herzlichen Dank für Deine ffmpeg_batch :thumbsup: !  Sie ist viel besser und einfacher zu bedienen als das, was ich vorhatte. Ich mußte nur den Pfadnamen von FFmpeg.exe anpassen und als Export-Verzeichnis das Quellverzeichnís angeben. Durch die unterschiedliche Dateierweiterung können ja beide im selben Verzeichnis stehen.

 

Ich bin ganz  begeistert! :jump:

 

@Christian: Ich habe es gestern einmal getestet, in einem Tierversuch mit Shaun dem Schaf (ich höhre schon: Bäh! Mähtoo!), die Folgen sind nämlich mit ca. 5 Minuten schön kurz.

 

Mit %FFMPEG%" -i "%ORG%" -f dvd -target pal-dvd "%NEW%" wie in Sir Drakes ffmep_batch wurde als Speed glaube ich 1,6x angezeigt (stellenweise 1,8x) die Größe war ca. 193 MB.

Mit "%FFMPEG%" -i "%ORG%" -f dvd -target pal-dvd -r 25 -s 720x576 -qscale 0 "%NEW%",  wie ich es in einer Kurzanleitung im Internet gefunden habe, ist es ähnlich.

Mit "%FFMPEG%" -i "%ORG%" -f dvd -target pal-dvd -vb 8000k -mbd rd -trellis 1 -flags +mv0 -cmp 0 -subcmp 2 "%NEW%" wie es standardmäßig in den Vorgabend des Video-Editors steht, wird als Speed ca. 1,2x angegeben, also wirklich deutlich langsamer wie Du gesagt hast, allerdings war die Datei auch mit ca. 167 MB deutlich kleiner.

 

Man muß also im Einzelfall abwägen, was einem wichtiger ist Größe oder Rechenzeit. Qualitätsmäßig habe ich auf dem Notebookdisplay keinen großen Unterschied gesehen. Die Bilder waren aber auch nicht anspruchsvoll: Knetfiguren und wollige Schafe.

 

 

Viele Grüße

 

Webturtle

 

 

 

 

 

Edited by Webturtle

Share this post


Link to post
sir drake

Hallo Webturtle,
gern geschehen.👍
beste grüße

Share this post


Link to post
sir drake
Posted (edited)

Hallo webturtle,
kleiner nachtrag.

Die Batch läßt sich bei mir auch sehr gut aus dem DMS als "Aufgabe nach der Aufnahme" ausführen.
So sieht es in der Admin-Config des DMS aus ( siehe Bild )

Wichtig sind die umfassenden "" im Parameter-Block.
Sonst erkennt die Batch es ggfs nicht als einen einizegn Parameter an.

Beim Timer setzen must du dann nur die entsprechende Aufgabe wählen.
vg

 

2018_08_05_15_15_12_Aufgaben_Editor.png.44f230316f114068a7389da09a6354d1.png

 

Edited by sir drake

Share this post


Link to post
Webturtle

Hallo,

 

@sir drake:  Vielen Dank für die zusätzlichen Infos. Ich besitze zwar eine Lizenz für den DMS (auch um die Entwickler zu unterstützen), konnte mich aber noch nicht aufraffen, diesen zu installieren, da dies auch mit einem gewissen Änderungen beim DVBViewer verbunden ist. Ich streame nicht und automatische Programmierungen bei Serien sind entweder unzuvelässig (wenn man nur fehlende Folgen aufnehmen will) oder führen zu einer Unmenge von Timern (Star Trek oder bereits aufgenommen Folgen, die nach Verschieben auf ein externes Medium nicht mehr in der Aufnahmedatenbank stehen). Für die automatische Aufnahme von gesuchten Spielfilmen oder Darstellern oder auch Serien reicht für meine Zwecke auch EPGPlus. Dies hat mir eine Reihe von Aufnahmen beschert, die ich sonst übersehen hätte.

 

 

Viele Grüße

 

Webturtle

 

Share this post


Link to post
sir drake

Hallo Webturtle,
ich kann das durchaus nachvollziehen.
Die ganz große Lösung generiert einen entsprechenden Aufwand.

 

Die Erkennung von noch offenen Folgen etc wurde hier im Forum bereits einige Male diskutiert
und eine in diesem Umfeld etablierte Lösung/Erweiterung ist mir zumindest nicht beannt.
 

Funktional kommt man nicht um 3rd-party-software herum, wenn man das Serien-Handling besser im Griff haben wil.'

Das ist mitnichten Kritik am bestehenden System. Auf keinen Fall !!!     

 

viele Grüße
sD

ps:  TV-Browser->HTTP-Converter->DMS ->Aufnahme
gerne mehr über PM wenn du interesse hast

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×