Anzeige

Am Puls von Microsoft

Anzeige

[gelöst] ffmpeg per Powershell jpgs in mp4

m1ch4

Herzlich willkommen
Hallo miteinander,

schön, dass ich ein Forum gefunden habe wo noch ordentliche Aktivität zu finden ist (y)

Ich habe folgendes Problem.

Es werden minütlich Snapshots einer Kamera auf einem Fileserver angelegt.
Diese haben das Format yyyy-mm-dd_SS-MM.jpg

Per Task sheduler würde ich immer 24 Uhr die Bilder in einen separaten Ordner verschieben, um dort die Bilder in eine mp4 zu packen.

Script dafür
Code:
$date = Get-Date -format "dd-MM-yyyy"
$source = "\\fileserver\"
$newfolder = $source + "\" + $date
$dirffmpeg = "C:\Program Files\ffmpeg\bin"

New-Item $newfolder -ItemType directory

Get-ChildItem -Path $source -File | Move-Item -Destination $newfolder

Das funktioniert auch soweit ganz gut aber jetzt kommt das eigentliche Problem mit ffmpeg.

Code:
&$dirffmpeg\ffmpeg.exe -r 1 -f image2 -s 1920x1080 -i $newfolder\%04d.jpg -vcodec libx264 -crf 25  -pix_fmt yuv420p $newfolder\test.mp4

Das funktioniert ja so nicht ganz, da meine Dateinamen wesentlich länger sind und nicht mit 0001 anfangen.
Es kommt folglich der Fehler von ffmpeg
Could find no file with path '$newfolder\%04d.jpg' and index in the range 0-4
$newfolder\%04d.jpg: No such file or directory

Nun ist meine Frage: Wie kann ich ffmpeg dazu bringen alle jpg´s, sortiert nach Alter, in eine mp4 zu packen?
Dabei möchte ich ungern alle Bilder umbenennen.
Ein Test mit entsprechend umbenannten Bildnamen hat ohne Probleme funktioniert.

Vielen Dank für eure Hilfe

VG
Michael :)


edit:
Ich habe noch etwas interessantes gefunden. Image2pipe.
Allerdings schaffe ich es auch nicht etwas in diese Pipe zu laden.

Mein Versuch:
Code:
Get-ChildItem -Path $source -file *.jpg | &$dirffmpeg\ffmpeg.exe -r 1 -f image2pipe -s 1920x1080 -vcodec libx264 -crf 25  -pix_fmt yuv420p $source/test.mp4
Der Fehler:
Output #0, image2pipe, to '$source/test.mp4':
Output file #0 does not contain any stream

Jemand eine Idee?
 
Zuletzt bearbeitet:
Anzeige
Guten Morgen,

leider hatte sich niemand gemeldet und ich habe nach alternativen gesucht.
Jetzt habe ich eine Lösung gefunden. Ich muss zwar die Bilder hin und her verschieben aber das ist nicht so schlimm auf dem Fileserver.
Gelöst habe ich es nun folgendermaßen:

mencoder mf://*.jpg -mf fps=25:type=jpg -ovc copy -oac copy -o outputfile.avi

Vielleicht hilft es ja dem ein oder anderen.

Eine Frage habe ich aber noch.
Die erstellt Snapshots mit ffmpeg haben teilweise die untere hälfte grüne oder ganz verschwommene Sicht.
Kann man das noch irgendwie verbessern im ffmpeg Befehl?

VG
Michael
 
Servus miteinander,

auch mein letztes Problem habe ich lösen können.
Die Bildfehler war darauf zurückzuführen, dass die Snapshots per UDP abgeholt wurden.
Somit muss man ffmpeg einfach dazu zwingen den rtsp Stream per TCP zu öffnen und dann einen Snapshot zu erstellen.

Leuchtet auch ein, da UDP keine Kontrolle der Datenpakete hat.

Befehl dafür "-rtsp_transport tcp"


Auch wenn ich mir meine Fragen selbst beantwortet habe, danke ich euch für den seelischen Beistand :)
 
Anzeige
Oben