Suche Freeware: png-Sequenz nach h264 Video mit variabler Framerate

Hallo zusammen,

auf die CD meiner Abschlussarbeit (Informatik) würde ich gerne ein Video packen.

Dazu habe ich etwa 200k Einzelbilder als png-Dateien erzeugt.
Die Dateien heißen „movXXXXX-YYYYY.png“.

Mit XXXXX zähle ich das, was ich „Zyklus“ nenne. Innerhalb eines Zyklus gibt es eine verschiedene Anzahl an Frames (max. 10000), angezeigt über die YYYYY-Nummerierung. Das Abschlussbild eines Zyklus heißt immer „movXXXXX-99999.png“.

Also könnte zb. ein Teil der Sequenz lauten:

„mov00006-08432.png“
„mov00006-99999.png“
„mov00007-00000.png“
„mov00007-00001.png“
„mov00007-00002.png“
„mov00007-99999.png“
„mov00008-00000.png“

Ich möchte jetzt eine Videodatei erzeugen, die jeden Zyklus (XXXXX) innerhalb einer Sekunde darstellt (die verwendete Framerate ist also variabel). Da ich ca. 1600 Zyklen habe, dauert das Video damit 1600sec. Mir ist klar, dass durch die fixe Framerate in der Videodatei viele Bilder gar nicht gezeigt werden, das ist aber kein Problem, so lange die Wiedergabegeschwindigkeit passt!

Das ganze hätte ich dann gerne mit einer modernen Kompression wie h264 auf maximal 80MB zusammengeschrumpft. Vielleicht kann der Encoder ja mit den ungenutzten „Zwischenbildern“ sogar was anfangen.

könnt ihr mir ein freewaretool empfehlen (oder eine Anleitung für vdub), damit ich das hinbekomme?

Ich würde es versuchen mit MEDIA-CODER von:
http://www.mediacoderhq.com/
mehr als 64 MB Download - Freeware

Aber vor allem würde ich die PNG Bildchen in JPG umwandeln! Brauchen dann viel weniger Platz und es ist mit unserem Auge kein Qualitäts-Verlust festzustellen …

Auch mal hier lesen - Deutsch:
http://www.chip.de/downloads/MediaCoder-32-Bit_21642…

Viel Erfolg! - peterOnline, Fankfurt

hi ich würde dir auch erst empfehlen deine png datein in jpg umzuwandeln z.b 
ashampoo photo commander 9 oder optimizer

dann rufts du windows movie maker auf und kannst dann deine kleinen umgewandelten bilder in eine sequnzen länge deiner wahl zusammen fügen und abspeichern.

wenn du dies getan hast rufst du windows open office auf und klicks das programm power piont auf und fügst alles ein abspeichern und fertig…

ich hoffe ich konnt dir helfen…

lg speedy

hallo

Aber vor allem würde ich die PNG Bildchen in JPG umwandeln!
Brauchen dann viel weniger Platz und es ist mit unserem Auge
kein Qualitäts-Verlust festzustellen …

WARUM???
wenn das anschliessend genutzte programm nur jpg frisst, meinetwegen, schweren herzens.

und dann noch mit den worten:

vor allem

das ergibt überhaupt keinen sinn!!

die dateien liegen als png vor!!

Dazu habe ich etwa 200k Einzelbilder als png-Dateien erzeugt

png ist UNKOMPRIMIERT oder VERLUSTFREI komprimiert - eine PERFEKTE WAHL FÜR EINE EINZELBILDSEQUENZ AUS DER EIN VIDEO GEMACHT WERDEN SOLL!!!

warum um alles in der welt soll hier gewandelt werden.

„weniger platz“ ist NUR ein argument wenn man zu wenig platz hat.

und es ist mit unserem Auge
kein Qualitäts-Verlust festzustellen

ja dann lass es doch wie es ist wenn es nicht besser sondern vielleicht eher ein bisschen schlechter wird.

*kopfschüttel*

grüße

hallo

auch hier:

hi ich würde dir auch erst empfehlen deine png datein in jpg
umzuwandeln z.b 

warum ???

frisst der anschliessend von dir empfohlene moviemaker nur jpg ???
–> einverstanden.

aber sonst kann ich mich nur wundern!

grüße

das umwandeln in jpg halte ich auch für eine Notlösung.
JPEG führt eine Fouriertransformation durch, das verwischelt meine Kanten. Ich habe mit png den Vorteil, dass die wenigen Kanten verlustfrei abgespeichert werden können. Und das Ganze in ein paar KB.

Das Problem ist, dass das Tool, dass du mir empfohlen hast weder variable Frameraten innerhalb eines Videos darstellen kann, NOCH einzelbilder zu einem Video zusammensetzen kann.

Das erzeugt mir hier tausende mp4-Dateien aus den Einzelbildern.

hallo,

ich glaube du hast noch sehr viel arbeit vor dir.
ich glaube NICHT dass es ein programm gibt welches deinen wunsch in einem rutsch erzeugen kann.
vielleicht solltest du aber auch im bereich messtechnik (oder ähnliches) schauen, ich kann mir durchaus vorstellen dass es dort software gibt die auf das problem „viele“ bilder „schneller abspielen“ besser vorbereitet ist.
ein schnittprogramm wird es so oder so machen (einmal eingestellt), aber nicht automatisiert abhängig deiner bilderabzahl pro zyklus.

du hast zwei möglichkeiten:

  1. viel arbeit in der vorbereitung, anschliessend in einem rutsch zu einem video importieren, fertig.
    nachteil an 1: du kannst schwer nachher noch etwas ändern, bzw merkst erst am ende ob du „richtig“ geplant hast.
  2. wenig arbeit in der vorbereitung, ein bisschen mehr im import sowie viel im schnittprogramm selbst.
    nachteil an 2: sehr viel „nach“-organisation und frikelei, dafür stehen alle möglichkeiten offen.

ein paar fragen (die du dir vielleicht auch selbst stellen musst):

  • in welcher auflösung sind die bilder ? passt diese zu bekannten videoauflösungen und zum gewünschten endvideo.
    (mit auflösung ist hier die effektive pixelzahl höhe mal breite gemeint)
  • bist du SICHER, dass jeder zyklus mit (exakt) einer sekunde gezeigt werden soll ??
    meist merkt man erst im schnitt das etwas anderes besser ist; seien es nur anderthalb sekunden, oder wenigstens eine halbe sekunde standbild des letzten zyklusses bevor der nächste beginnt.

dann bringst du meines erachtens einen begriff mit seiner funktion durcheinander.
du redest von einer flexiblen framerate, diese wird aber bezüglich auf das ENDVIDEO eben immer gleich sein.
das hast du ja schon richtig gesehen, mal werden zig bilder weggelassen, mal müssen einige bilder mehrere frames lang stehen bleiben. (das meinst du mit der flexiblen framerate denke ich).
dieser zweite fall ist meines erachtens der schwerere.

ein paar denkansätze zum möglichen workflow, dabei muss ich sagen dass ich keine konsumerschnittprogramme kenne. vielleicht gibt es das eine oder andere was noch die ultimative funktion für dich hat, ansonsten gehe ich mal von den möglichkeiten aus die beim avid gang und gäbe sind und auch allgemein zu finden sein werden.

zur möglichkeit 1:
man kann beim importieren von bildern entweder jedes bild FÜR SICH importieren oder eben als SEQUENZ. dabei werden die bilder in ein video des arbeitscodec gewandelt dass sich an die voreingestellten frameraten hält; also zb 25P.
dabei kenne ich aber NICHT die möglichkeit ein bild länger stehen zu lassen, jedes einzelbild wird einem frame entsprechen!
selbst wenn du ein schnittprogramm findest bei dem du einstellen kannst wie lange jedes frame stehen bleibt, wäre das ja dann wieder eine individuelle einstellung die du PRO import einstellen müsstest, da deine zyklen ja nicht identisch sind.
—> kannst du nicht jeden ordner händisch bearbeiten und die bilder die zu viel sind einfach weglöschen, bei den ordnern in denen du zu wenig hast die „fehlenden“ einfach duplizieren; und dann ALLES konform in der richtigen reihenfolge umbenennen und einfach den gesamten ordner importieren. FERTIG.
(zum umbenennen: der avid wird NUR benennungen erlauben die LÜCKENLOS aufeinanderfolgen. wenn du aber eine benennungsreihenfolge durch deine zyklen- sowie bilder-nummerierung einhalten kannst wäre das ja mit „irfan-view“ unproblematisch zu machen.)

zur möglichkeit 2:
man könnte die veränderung der geschwindigkeit auch später im schnitt machen, ein zyklus der zu viele bilder hat müsste also beschleunigt werden, einer der zu wenige hat müsste verlangsamt werden (so etwas immer testen; vor allem bei einer verlangsamung kann es passieren dass immer 2 bilder auf das raster EINES bildes landen und dann verblendet werden)
abhängig der erforderlichen veränderungen könnte das unkompliziert verlaufen, aber auch hier braucht es dann eine INDIVIDUELLE einstellung.
jeder zyklus müsste einzeln importiert, in die timeline geschnitten und dann verlängert oder verkürzt werden.
solltest du nur zb 4 verschiedene zyklen haben (welche mit 5 bildern,welche mit 25, welche mit 100 und welche mit 2500) könntest du natürlich auch mit 4 individuellen importen und geschwindikeiten arbeiten - müsstest dann aber auch erst wieder „umschneiden“, also ANSCHLIESSEND in der timeline wieder die reihenfolge ändern.

so,
hoffe ich habe alles einigermassen richtig verstanden was du vorhast.
ich hoffe du verstehst was ich so gerade denke.

Da ich ca. 1600 Zyklen habe

wirst du noch viele wochenenden damit verbringen . . .

grüße

für alle, die es interessiert:
ich habe mich jetzt für variante 1 entschieden.
Ein Matlab Skript dupliziert oder löscht Zwischenbilder, bis die gewünschte effektive Framerate herauskommt.
Sieht ganz gut aus. Ich dachte nur, dass eventuell richtige Videosoftware Interpolation oder ähnliches durchführt.

Ich empfehle hierfür Avisyth in Kombination mit ffmpeg.
Avisynth ist ein scriptbasierter Videoeditor. Mit einer Zeile wie

mov00008 = ImageSource("mov00008-%d.png", 0, 1000, 0.001).ChangeFPS(50)

kannst du eine Bildsequenz laden und als Variable ablegen (eine Konvertierung in JPEG ist nicht nötig, sogar wegen der Kompressionsartefakte eher schädlich). Die Nummerierung und gewünschte (dynamische) Framerate (sodass die Sequenz eine Sekunde lang zu sehen ist) musst du manuell angeben. Das Gesamtvideo muss eine feste Framerate besitzen, z.B. 50. Da du Informatiker bist, wird es dir ein leichtes sein, das Script für all deine Bildsequenzen automatisch erzeugen zu lassen. Hinterher setzt du alle Sequenzen zusammen.

mov00001+mov00002+...

Das Avisynth-Script kannst du mit ffmpeg in eine echte Videodatei verwandeln. Mit einem Befehl wie

ffmpeg -i script.avs -an -vcodec libx264 -g infinite animation.mp4

Beide Programme sind auch für Linux verfügbar (unter den Namen avconv und avxsynth). Erzähle uns von deinen Erfahrungen.

das klingt toll!
Wäre wohl ein guter Tip gewesen, wenn ich nicht bereits meine „manuelle“ Lösung gefunden hätte :smile:

dank dir! Vielleicht hilft es ja jemand anderem