Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

[ Spielerei / Experiment ] Video mit FreeBasic generiert

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 01.09.2014, 22:38    Titel: [ Spielerei / Experiment ] Video mit FreeBasic generiert Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 02.09.2014, 21:49    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1208
Wohnort: Ruhrpott

BeitragVerfasst am: 03.09.2014, 01:39    Titel: Antworten mit Zitat

Hallo dreael!

Tolles Video, für die paar Programmzeilen! lächeln 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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 03.09.2014, 11:11    Titel: Antworten mit Zitat

...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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 08.09.2014, 15:11    Titel: Antworten mit Zitat

Eine eigentlich verpflichtend geltende Angabe ist die Framerate, welche unbedingt mit angegeben werden sollte, beim ausrechnen.

Code:
-r 25

für 25 Bilder pro Sekunde

Wer ein Mehrkern/thread-system hat kann auch mit
Code:
-threads <ANZAHL>

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
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 08.09.2014, 17:28    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 08.09.2014, 17:53    Titel: Antworten mit Zitat

PS: ffmpeg und mencoder nehmen auch gepipte daten auf zwinkern .. es ist also auch möglich das video zu erzeugen, wärend es gerendert wird. Dann spart man sich das zwischenspeichern. zwinkern


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 11.09.2014, 12:39    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz