ich habe das Problem, dass ich aus einem Foto ein Standbild (in einem Video)
machen möchte.
wenn ich das Foto jetzt 400 x kopiere und daraus foto001.jpg bis foto400
mache, lässt sich das ganze sehr leicht mit
ffmpeg -i foto%03d.jpg standbild.flv
machen.
Das ganze ist allerdings etwas langwierig und umständlich. Geht es auch
irgendwie, dass man ein solches Video mit nur einem Foto machen kann, das
dann zB. 15 Sekunden dauert?
Beste Grüße
Elisabeth
Naja, eine Idee wäre die Framerate mit ffmpeg entsprechend anzupassen,
z.B. auf 1frame/s, somit würdest du nur 15 Bilder brauchen. Vielleicht
kann der -r Parameter auch Kommazahlen interpretieren, dann könntest
du 1/15 als Framerate angeben, was allerdings nicht jeder Codec
unterstützen wird.
ciao,
Alex
Hallo,
es scheint so zu funktionieren:
ffmpeg -r 0.1 -f image2 foto%d.jpg -r 25 out.mpg
Das erste -r ist dabei die Input-Framerate, das zweite die Output-Framerate.
Scheinbar braucht man aber mindestens zwei Bilder, damit es funktioniert.
Beste Grüße
Elisabeth
Bei der Output Framerate kannst du sicher auch noch was nachjustieren,
oder ist 25 hier das Limit für mpg?
> Scheinbar braucht man aber mindestens zwei Bilder, damit es funktioniert.
1 Bild == Bild
2+ Bilder == Video :]
Sehr pedantisch, der ffmpeg, aber macht irgendwie auch Sinn.
ciao,
Alex
> Hallo,
>
> ich habe das Problem, dass ich aus einem Foto ein Standbild (in einem
> Video) machen möchte.
>
> wenn ich das Foto jetzt 400 x kopiere und daraus foto001.jpg bis foto400
> mache, lässt sich das ganze sehr leicht mit
Oder mit ln foto001.jpg bis foto400,
dann ist es physisch nur einmal auf der Platte,
aber unter 400 verschiedenen Dateinamen.
Etwa so:
for ((i=2;i<=400;i++)); do ln foto001.jpg foto$i.jpg; done
> Etwa so:
> for ((i=2;i<=400;i++)); do ln foto001.jpg foto$i.jpg; done
Ist ja krass, was man da schon wieder an neuer(?) bash-syntax kennenlernt :-)
Ich hätt's wohl noch so geschrieben: for i in {2..400}; do ...
Und das variable ln-argument dann so: foto$(printf %03d $i).jpg
Oder überhaupt gleich so:
for i in {002..400}; do ln foto001.jpg foto$i.jpg; done
Ich habe nie behauptet, ein bash-Guru zu sein, es war nur ein Vorschlag.
Deine Lösung gefällt mir besser.
Ich habe nicht behauptet, dass du es behauptet hättest, aber vielleicht
angedeutet, dass du es vielleicht dennoch bist :-)
Immerhin kannte ich die Syntax noch nicht einmal. Dass im konkreten Problem
dann eine andere Lösung noch kompakter war, ist dabei Nebensache.