Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 01.09.2014, 23:38 Titel: [ Spielerei / Experiment ] Video mit FreeBasic generiert |
|
|
Vorhin einmal noch ein interessantes Experiment ausprobiert: Film mit berechneten Einzelbildern generieren. Dazu mit
http://beilagen.dreael.ch/QB/FilmGenTest.bas
zunächst eine Anzahl Einzelbilder berechnet (alle als .bmp gespeichert). Anschliessend alles auf ein Linux-Testsystem transferiert, dort mit
Code: | # apt-get install ffmpeg |
ein hübsches Open Source-Videotool aufgesetzt und dann mit
Code: | $ ffmpeg -i "Bild%04d.bmp" ../Testfilm.avi |
zu einer Filmdatei umgewandelt, welche sich im VLC-Player betrachten lässt.
Schlussendlich hat auch ein Hochladen auf YouTube funktioniert, das Ergebnis seht Ihr unter
https://www.youtube.com/watch?v=qz-MkeJpADM
Anwendungen sind Raytracing-Animationen, Mandelbrot-Zooms usw., da sich FB fürs Berechnen der einzelnen Bilder beliebig Zeit lassen kann. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 02.09.2014, 22:49 Titel: |
|
|
Und bereits der nächste Schritt erfolgt: "Futter" auch für die Ohren. :-)
Dazu die "Tonspur" als normale .wav-Audio-Datei ebenfalls in FB erzeugt:
http://beilagen.dreael.ch/QB/WavGen.bas
Der Zusammenbau erledigt auch hier wieder ffmpeg wie zuvor:
Code: | $ ffmpeg -i "Bild%04d.bmp" -i ../Testsound.wav ../Testfilm.avi |
d.h. einfach mit -i die WAV-Datei genauso als Input mitgeben. Ergebnis-AVI lässt sich natürlich im VLC-Player wiedergeben, auch ein Upload nach YouTube funktioniert ohne Probleme. Ergebnis:
https://www.youtube.com/watch?v=j3mqeDC9W8Y
Praktische mögliche Anwendung: Billiard-Simulation so als Film rendern inkl. Zusammenstoss-Geräusche: Ergibt dann qualitativ viel bessere Resultate als wie seinerzeit in QB mit SOUND-Kommandos in Echtzeit zu arbeiten, da ich bei präziser Rendering-Berechnung Bild und Ton absolut perfekt (praktisch aufs Sample-Byte genau) zueinander synchronisieren kann. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1278 Wohnort: Ruhrpott
|
Verfasst am: 03.09.2014, 02:39 Titel: |
|
|
Hallo dreael!
Tolles Video, für die paar Programmzeilen! Hat der Transfer auf ein Linux-System einen besonderen Grund? ffmpeg läuft auch unter Windows hervorragend.
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 03.09.2014, 12:11 Titel: |
|
|
...und unter Windows kann man auch VirtualDub für denselben Task verwenden, wenn einem die Kommandozeile zu umständlich ist. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 08.09.2014, 16:11 Titel: |
|
|
Eine eigentlich verpflichtend geltende Angabe ist die Framerate, welche unbedingt mit angegeben werden sollte, beim ausrechnen.
für 25 Bilder pro Sekunde
Wer ein Mehrkern/thread-system hat kann auch mit
das ganze etwas beschleunigen
Bei Bild zu Video sollte eigentlich auch immer (abhängig von der Bildgröße) eine Bitrate festgelegt werden. Sonst gibts bei den "parameterlosem" aufruf eine recht schlechte quali.
@darel .. das erklärt z.B. auch die recht schlechte bitratenqualität in deinem YT Video ( nicht die Auflösung)
Ein von mir genutzter Aufruf ist für UHD Videos z.B.
Code: | ffmpeg -i img%04d.jpg -r 24 -s 3840x2560 -b 64000k -threads 16 test.avi |
( http://www.youtube.com/watch?v=IojW2Cq3yZo )
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 08.09.2014, 18:28 Titel: |
|
|
Danke für alle bisherigen Hinweise. Windows-Version werde ich bei Gelegenheit auch einmal testen. Dort könnte ich alle FreeBasic-Programme auf eines konsolidieren und mit SHELL "ffmpeg .." die Generierung der Videodatei auslösen und mit KILL die Einzelbilder wieder löschen nach erfolgreicher Berechnung.
Ansonsten ist mir schon klar, dass für ein perfektes Video alles 24 Bit tiefe Bilder nötig wären, dazu noch Anti-Aliasing-gerendert, z.B. beim Mandelbrot-Zoom pro physikalischem Pixel z.B. 16 Unterpixel mit der Iteration berechnet und am Schluss PSET mit einer Farbe gemacht, welche dem Durchschnitt aller Einzelpixel entspricht. Auflösung der Einzelbilder müsste dann ebenfalls sinnvollerweise mit der gewünschten Auflösung vom Video übereinstimmen, damit nichts mit "-s" umgerechnet werden muss.
Ansonsten für die FB-Profils etwas: Mit .BMP kann die temporäre Datenmenge extrem gross werden -> da könnt Ihr rasch einmal eine 4 TB-Platte nur als %TEMP% fürs Filmberechnen in Euren PC einbauen (von daher absolut "Full ACK", FB-Programm und ffmpeg auf demselben Rechner ausgeführt, damit nichts übers LAN übertragen werden muss) -> ein BSAVE als .PNG oder .JPG wäre so betrachtet sinnvoll. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 08.09.2014, 18:53 Titel: |
|
|
PS: ffmpeg und mencoder nehmen auch gepipte daten auf .. es ist also auch möglich das video zu erzeugen, wärend es gerendert wird. Dann spart man sich das zwischenspeichern.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 11.09.2014, 13:39 Titel: |
|
|
Inzwischen als erstes Filmprojekt ein Mandelbrot-Zoom. Ergebnis:
https://www.youtube.com/watch?v=sdwjGBEli_g
FB-Quellcode:
http://beilagen.dreael.ch/QB/FilmMandelbrot.bas
Das Ganze arbeitet parametriert. Um nicht romanweise INPUT-Fragen beantworten müssen, werden sämtliche Parameter aus einer Textdatei eingelesen:
http://beilagen.dreael.ch/QB/Film_3_Param.txt
=> Mit diesen Parametern könnt Ihr also frei herumspielen. :-)
Besonderheit vom Ganzen (hier kommt also Echtfarbe-Grafikmodus zum Einsatz): Subpixel-Rendering, und zwar auch in der Zeitachse, was dann den für eine fliessende Bewegung nötigen Unschärfe-Effekt ergibt:
http://beilagen.dreael.ch/Diverses/Film_3_00343.png
Die Intensität dieses Effekts kann mit dem Parameter zAufl in der Textdatei gesteuert werden (1=ohne diesen Effekt).
Das Ganze soll noch weiterentwickelt werden (ist in der jetzigen Version also noch nicht perfekt); ich denke da bereits ans verteilte Bilderberechnen, um sämtliche CPU-Kerne auszulasten + auch weitere PCs mitrechnen zu lassen. Ausserdem ist so etwas auch eine interessante Anwendung für den 64-Bit-Compiler.
Sobald einmal das fertige Programm dasteht, lasse ich dann gerne einmal meine PCs eine Nacht lang einen längeren Mandelbrot-Zoom in Full HD-Qualtät rendern (das grosse 6 TB-NAS, wo alle FB-Prozesse ihre .BMPs laufend zentral übers LAN ablegen können, steht auf alle Fälle zur Verfügung). :-)
Übrigens diesmal mit der Windows-Version (64-Bit-Binary natürlich) von FFMpeg alle Einzelbilder zum Film konvertiert und diesmal mit der Bitrate (-b-Parameter) gespielt.
/edit: Inzwischen einmal die Berechnung noch die volle Zeit durchlaufen lassen. Ergebnis:
https://www.youtube.com/watch?v=Ekyz_awL_34 _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
|