Videokonverter vom mp4 nach Bmp
-
Hi, ich suche einen Konverter, der das Video in eine BMP-Sequenz verwandelt. Beispielsweise kann das der ogg video converter (http://www.ogg-converter.net). Leider bricht er in der Shareware nach 60% des Videos ab. Kennt jemand ein vergleichbares Tool und moeglichst kostenfrei, da nur es nur ein- bis zweimal zum Einsatz kommen wird?
-
ffmpeg kann das
ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
-
rüdiger schrieb:
ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
jpeg würde ich aber nicht nehmen, wenn das weiterverarbeitet werden soll. Lieber png.
-
Christoph schrieb:
rüdiger schrieb:
ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
jpeg würde ich aber nicht nehmen, wenn das weiterverarbeitet werden soll. Lieber png.
Und eine schoen grosze Disk bereitmachen. Ich habe hier ein paar Hundert Gigabytes PNG-Keyframes fuer ein kleines Projekt herumliegen.
-
nman schrieb:
Christoph schrieb:
rüdiger schrieb:
ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
jpeg würde ich aber nicht nehmen, wenn das weiterverarbeitet werden soll. Lieber png.
Und eine schoen grosze Disk bereitmachen. Ich habe hier ein paar Hundert Gigabytes PNG-Keyframes fuer ein kleines Projekt herumliegen.
Kommt aber auch auf die Auflösung und Dauer an. Ich habe in einem Projekt ein Programm geschrieben, welches Bilder erstellt hat und diese habe ich dann mit ffmpeg in einen Film umgewandelt. 30 Sekunden, Auflösung 640*480, 30 FPS hat, wenn ich mich recht erinnere, ca. ein halbes Gigabyte benötigt.
Grüssli
-
Christoph schrieb:
rüdiger schrieb:
ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
jpeg würde ich aber nicht nehmen, wenn das weiterverarbeitet werden soll. Lieber png.
Jo. Hab das Beispiel 1:1 aus der Manpage kopiert. Wobei je nach Anwendung der zusätzliche Qualitätsverlust im Verhältnis zum Speicherplatz vielleicht egal ist.
-
Dravere schrieb:
Kommt aber auch auf die Auflösung und Dauer an.
Klar. Ich habe hier ja auch eine weit dreistellige Anzahl von Filmen in 1080p.
-
Sind die üblichen PNG Encoder/Decoder denn schnell genug?
Kann mich noch erinnern dass PNGs Speichern immer "ewig" gedauert hat - ist aber schon ne Zeit lang her, war vermutlich noch auf meinem guten alten P4 -- keine Ahnung wie das mit aktuellen CPUs und aktuellen Programmen aussieht.
-
ffmpeg arbeitet da nicht in Echtzeit, deswegen ist es nicht schlimm, wenn mal ein Frame etwas länger dauert.
png speichern dauert nur dann lange, wenn man eine besonders hohe Komprimierungsstufe wählt. Bei niedriger Komprimierung geht das Speichern viel schneller.
-
Mir ist schon klar dass ffmpeg da nicht in Echtzeit arbeitet. Nur wenn die Bearbeitungszeit mit PNG auf einmal ne ganze Sekunde pro Frame ist, dann wird's auch irgendwann fad, nen?
Bzw. für mich wäre die Frage: was ist schneller - unkomprimiert BMPs speichern (Festplatte muss mehr Daten speichern) oder PNGs speichern (CPU muss Daten komprimieren)?
Zumindest bei normalen Videos, weil PNG da kaum was bringt. Wenn es sich um irgendwas handelt was PNG 1:10 oder so komprimieren kann wird die Platzersparnis vielleicht wieder interessant.
-
hustbaer schrieb:
Mir ist schon klar dass ffmpeg da nicht in Echtzeit arbeitet. Nur wenn die Bearbeitungszeit mit PNG auf einmal ne ganze Sekunde pro Frame ist, dann wird's auch irgendwann fad, nen?
Nein, weit entfernt davon. Ich habe fuer Shot-Segmentation + Keyframe-Extraktion mit OpenCV ungefaehr Echtzeit * 0.6 gebraucht (single-threaded) und der Flaschenhals war definitiv nicht das PNGs encoden.
Bzw. für mich wäre die Frage: was ist schneller - unkomprimiert BMPs speichern (Festplatte muss mehr Daten speichern) oder PNGs speichern (CPU muss Daten komprimieren)?
BMPs speichern war IIRC zwar schneller, aber nur messbar -- nicht spuerbar.
edit: Zumindest mit SSD.
Zumindest bei normalen Videos, weil PNG da kaum was bringt.
Wuerde ich so jetzt auch nicht sagen.
-
@nman
Auf was für ne Grösse bist du denn mit PNG gekommen?
Bei mir waren die nie wesentlich unter 50%, also vielleicht mal 40 aber da konnte man dann schon ne Flasche aufmachen.
-
hustbaer schrieb:
Auf was für ne Grösse bist du denn mit PNG gekommen?
Ich habe die Filmdaten jetzt nicht mehr herumliegen, sondern nur mehr ein paar Hundert Trailer in 480p. Die Filme müsste ich mir von Amazon Glacier zurückholen
Aber mal sehen wie das für die Trailer aussieht:
~ % for f in ~/trailers/data/flat-trailers/*/ du --block-size=1 $f/keyframes/*.png | cut -f 1 >> filesizes ~ % awk '{sum+=$1} END{print sum/NR}' filesizes 432889
Bei mir waren die nie wesentlich unter 50%, also vielleicht mal 40 aber da konnte man dann schon ne Flasche aufmachen.
Hier dann wohl so um die 420 Bytes pro 480p-Screenshot.
Die genaue Auflösung variiert natürlich ein wenig, aber wenn wir mal 16:9 voraussetzen hätten wir 853×480, also bei normalem RGB so um die 853*480*3=1228320 Bytes? (Sollte gut hinkommen, ist noch wohlwollend zugunsten von BMP geschätzt.)
Dh. die durchschnittliche PNG ist 432889/1228320=.3524 der Größe der unkomprimierten Bilddaten. Nicht so schlecht IMO.