ffmpeg Zeitraffervideo in LQ erstellen

Sound, Digitalkameras, TV+Video und Spiele.
Antworten
rayman39
Beiträge: 64
Registriert: 23.04.2009 19:34:57

ffmpeg Zeitraffervideo in LQ erstellen

Beitrag von rayman39 » 25.05.2018 06:38:54

Hallo zusammen,

derzeit nutze ich auf meinem Raspi 2B mit raspbian

ffmpeg -pattern_type glob -i "$ziel_input/raycam1*.jpg" -vcodec libx264 -crf 30 "$ziel_output/raycam1_$datum2.avi"

um aus Einzelbildern ein Zeitraffer zu erstellen.

Funktioniert auch ganz gut.

Allerdings dauert es mit 4.000 Einzelbildern in HD-Auflösung 1 Stunde und das Video wird ca 100 MB groß.

Könnt Ihr mir einpaar Tipps zu folgendem geben:

- Kann ich den Prozess beschleunigen?
- Weche Parameter bräuchte ich, um ein (zweites) Video in niedriger Qualität / LQ (Zielgröße 10MB) zu erstellen, dass man auch mal über E-Mail verschicken kann?

Vielen Dank

pferdefreund
Beiträge: 3791
Registriert: 26.02.2009 14:35:56

Re: ffmpeg Zeitraffervideo in LQ erstellen

Beitrag von pferdefreund » 25.05.2018 06:49:52

Mit den Tools aus Imagemagix kann man wohl im Batch erst mal die Bilder verkleinern. Evenutell hilft das schon. Schau dir mal convert an- stammt wohl aus dem Paket imagemagix. Wenns weniger zum Umsetzen wird, wird es auch kleiner und damit auch schneller.

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: ffmpeg Zeitraffervideo in LQ erstellen

Beitrag von Lord_Carlos » 25.05.2018 07:43:25

Du kannst den output mit ffmpeg verkleinern: z.B. -vf scale=320:-1 https://trac.ffmpeg.org/wiki/Scaling Oder -vf scale=-1:720 Wenn es 720p video werden soll. Also das kleinere HD.

Code: Alles auswählen

ffmpeg -pattern_type glob -i "$ziel_input/raycam1*.jpg" -vf scale=320:-1 -vcodec libx264 -crf 30 "$ziel_output/raycam1_$datum2.avi"
crf ist die qualitaet, eine hoehere Zahl macht den output kleiner, aber auch schlechter.
z.B. -crf 36

Mann kann ffmpeg auch sagen es soll weniger CPU Zeit zum berechnen benutzen. https://trac.ffmpeg.org/wiki/Encode/H.264#Preset
z.B. -preset faster
Aber dann wird die Datei auch wieder leicht groesser.

Das ganze:

Code: Alles auswählen

ffmpeg -pattern_type glob -i "$ziel_input/raycam1*.jpg" -vf scale=320:-1 -vcodec libx264 -crf 36 -preset faster "$ziel_output/raycam1_$datum2.avi"
Wenn du wirkliche eine ganz bestimmte Zielgroesse haben willst, musst du 2 pass encoding benutzen: https://trac.ffmpeg.org/wiki/Encode/H.264#twopass

Deiner Fehler ist es das ganze auf dem Pi zu machen. Kopiere die Bilder auf einen "normalen" rechner und es geht viel viel schneller.
Dazu ist email nicht optimal. Wenn du das Video in voller Aufloesung zu einem Videohoster hochlaedst, kann es sich jeder in seiner Lieblingsaufloesung angucken.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

wanne
Moderator
Beiträge: 7448
Registriert: 24.05.2010 12:39:42

Re: ffmpeg Zeitraffervideo in LQ erstellen

Beitrag von wanne » 28.05.2018 15:03:05

Der Raspberry 2B kann h.264 in Hardware:
https://raspberrypi.stackexchange.com/q ... 9546#29546
Kannst du aber nur mit dem gstreamer nutzen.
Ansonsten kannst du noch die C-APIs der beiden Programme nutzen. Denen kannst du direkt nacheinander Bilder verfüttern. Dann wird die zeit beim Aufnehmen zum encodieren verwendt. Bei einem Zeitraffer Video ist das ziemlich hilfreich.
Aber am Ende bleibt es einfach ein dumme Idee auf einem raspberry pi videos zu encodieren. Wenn die Leitung vom PI zu schmalbandig für die Bilder ist würde ich auf dem PI maximal einen mpeg4 machen und dann auf einem potenten Server reencodieren. (Oder ffvhuff, wenn du findest das zwei mal lossy etwa so schlimm wie יהוה sagen ist.)
rot: Moderator wanne spricht, default: User wanne spricht.

Antworten