Forum: PC-Programmierung Video in Einzelbilder konvertieren / ffmpeg


von Tom M. (tomm) Benutzerseite


Lesenswert?

Hi Leute

Ich hab meine LED Matrix fertig gestellt und möchte jetzt einen 
Video-Stream drauf anzeigen. Um aus einer Videoquelle Einzelbilder zu 
extrahieren, verwende ich:
1
ffmpeg -i Ratatouille.avi -ss 100 -t 10 -r 1  -s 80x60 -gray -y "rat%d.pgm"

Das erzeugt viiiele Dateien... Was ich eigentlich brauche sind die PGM 
Daten, die ich via USB (FTDI) an den AVR übermittle. Das klappt soweit 
auch mühselig via Terminalprogramm (screen); auf dem AVR läuft ein CLI, 
das auch PGM versteht. Der PGM Header beginnt praktischerweise mit "P5".

Kann ich ffmpeg dazu bringen, nicht Einzelbilder abzulegen, sondern 
die Daten kontinuierlich in eine Pipe (oder grosse Einzeldatei) zu 
schreiben? Hab mich durch das Manual gequält und mit pipe: 
experimentiert, aber ich krieg's nicht hin.

Hilfe! :o)

von ccoder (Gast)


Lesenswert?

Mit ffmpeg hab ich noch nichts gemacht, aber MPlayer kann man relativ 
einfach neue video outputs beibringen.
Ein Beispiel für LED-Matrix damit gibts z.B. hier: 
http://metalab.at/wiki/Led_Matrix

von Tom M. (tomm) Benutzerseite


Lesenswert?

ccoder schrieb:
> Mit ffmpeg hab ich noch nichts gemacht, aber MPlayer kann man relativ
> einfach neue video outputs beibringen.

Danke, hab ich fast befürchtet. ;)

Oder ich bringe meinem AVR ein einfaches Video-Format bei. Was ist für 
eine kleine LED Matrix mit wenigen Graustufen bzw. einen AVR (mega168) 
geeignet?

von Joerg W. (joergwolfram)


Lesenswert?

Oder in einem zweiten Schritt (Script) die ganzen PGM Dateien mittels 
cat zu einer großen Datei zusammenfügen...

Gruß Jörg

von ... (Gast)


Lesenswert?

Wie wär es mit:
1
ffmpeg -i Ratatouille.avi -ss 100 -t 10 -r 1  -s 80x60 -pix_fmt gray -f image2pipe -vcodec pgm -y rat.pgm_seq

von oskar (Gast)


Lesenswert?

named pipe

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Mit  RealBasic z.B. würde ich über die Quicktime-Schnittstelle die 
Video-Datei öffnen, einen Frame extrahieren, den auf die passende 
Pixelgröße skalieren und als String bzw. Bytestrom über die serielle 
Schnittstelle bzw. auf einen virtuellen COM-Port ausgeben - und das 
Alles in einem einzigen Programm.

Was ich sagen will - warum nicht eine "richtige" Programmiersprache 
nehmen, statt mit irgendwelchen Skrips herumzufummeln? Das oben Genannte 
geht natürlich mit C, Delphi oder was auch immer - bestimmt genau so gut 
...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.