www.mikrocontroller.net

Forum: PC-Programmierung Video generieren (C++,C#)


Autor: Joeee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich möchte gerne ein Projekt beginnen, bei dem ich über ein Wlan-Modul 
einen Datenstrom bekomme, diesen Datenstrom in ein Bild umrechne und 
diesen dann quais als ein Bild ausgeben kann. Dies sollte natürlich 
mehrmals in der Sekunde erfolgen und ein "Video" werden.
Das programmieren der Berechnung direkt in C++, bzw. die Ausgabe als 
"gezeichnete" Punkte geht zwar, aber ist natürlich viel, viel, viel zu 
langsam.

Also der Aufbau wäre einfach so:
Datenstrom --> [Koeffizenten in Speicher] --> [Rekonstruktion] --> 
Ausgabe

ich würde also eine schnelle Möglichkeit brauchen einen Algo auf einen 
Speicherbereich loszulassen (sind nur Mult+Add) und diesen 
Speicherbereich dann nach einer Berechnung als Video auszugeben.
Ich hätte da ev. an DirectX gedacht, nur fehlt mit leider dazu das 
nötige Wissen. Soweit ich das mitbekommen habe, kann DirectX direkt auf 
die DSP Blöcke der Hardware zugreifen und somit die Berechnungen schnell 
erledigen?

Drum wollte ich fragen ob DirectX das richtige für mich wäre und wenn ja 
ob es wo ein gutes Tutorial gibt, oder auch eine gute Buchempfehlung?
Andernfalls wie ich das Problem sonst realisiere?

Danke im Vorraus!

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guck dir mal den VLC-Player an. Der ist Opensource.
Als Anfänger einen Videoplayer zu programmieren, ist ein nettes 
Einstiegsprojekt.

Autor: Gommel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die leute werden immer verückter

Autor: Joeee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich sagte nicht das ich Anfänger bin. Bis jetzt kan ich noch nie mit den 
Themen in Berührung.

Ev. hab ich mich auch falsch ausgedrückt.
Ich dachte das es vereinfacht gesagt eine Schnitstelle z.B. in 
DirectVideo gibt, in der ich einfach einen Speicherbereich angebe in dem 
sich das Bild befindet. Dies wird dann ausgegeben.
In einem zweiten Speicherbereich rekonstruiere ich in der Zwischenzeit 
das 2te Bild, schalten den Speicherbereich "um" und berechne im ersten 
das nächste Bild.

Wiegesagt eine wirklich "billige" Ausgabe mit GDI oder direkt als 
BMP-Sequenz funktioniert ja. Es geht nur um eine schnelle Möglichkeit 
nacheinander Bilder zu "zeichnen" und ev. auch die DSP-lastigen 
Berechnungen zu beschleunigen.


@ Gommel
Jepps, am schlimmsten sind die Verückten mit sinnlosen Kommentaren. Mir 
wär leid um meine Zeit.

Autor: Rüdiger Knörig (sleipnir)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du die Qt-Bibliothek benutzen kannst dann schau Dir das 
QMovie-Objekt an. Damit kannst Du den Datenstrom über ein QImage schnell 
einlesen, in ein solches Objekt ablegen und dann am Ende das Objekt als 
Video schreiben.

Wenn es nicht so zeitkritisch ist und schnell gehen soll:
 * Einzelbilder in einem einfachen Format schreiben
 * Mit ImageMagick per Kommandozeile konvertieren:
convert *.jpg movie.mpg

Der MPlayer (bzw. der Mencoder) kann das auch.

Autor: MPEG (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rüdiger Knörig schrieb:
> Wenn Du die Qt-Bibliothek benutzen kannst dann schau Dir das
> QMovie-Objekt an. Damit kannst Du den Datenstrom über ein QImage schnell
> einlesen, in ein solches Objekt ablegen und dann am Ende das Objekt als
> Video schreiben.

Auf der Suche nach lizensfreien Formaten und Encoder bin ich auf diesen 
Beitrag gestossen, kann jedoch nichts zum Speichern eines Videoobjektes 
in der Qt Dokumentation finden: 
http://qt-project.org/doc/qt-4.8/qmovie.html

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Joeee schrieb:
> Hallo zusammen,
>
> ich möchte gerne ein Projekt beginnen, bei dem ich über ein Wlan-Modul
> einen Datenstrom bekomme, diesen Datenstrom in ein Bild umrechne und
> diesen dann quais als ein Bild ausgeben kann. Dies sollte natürlich
> mehrmals in der Sekunde erfolgen und ein "Video" werden.

Was für ein Datenstrom? Was für Umrechnungen?

> Das programmieren der Berechnung direkt in C++, bzw. die Ausgabe als
> "gezeichnete" Punkte geht zwar, aber ist natürlich viel, viel, viel zu
> langsam.

Das finde ich jetzt nicht so natürlich, allerdings ist auch unbekannt, 
wie komplex diese Berechnungen sind.

> Ich hätte da ev. an DirectX gedacht, nur fehlt mit leider dazu das
> nötige Wissen. Soweit ich das mitbekommen habe, kann DirectX direkt auf
> die DSP Blöcke der Hardware zugreifen und somit die Berechnungen schnell
> erledigen?

Definiere "die DSP Blöcke der Hardware". Du kannst z.B. wenn du eine 
Grafikkarte hast, deren Shader-Rechenkerne nutzen, sofern deine 
Berechnungen sehr gut parallelisierbar sind.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du antwortest auf einen über drei Jahre alten Beitrag.

Ist OpenCV nicht gut für sowas geeignet?

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach Mist. Jetzt bin ich auch auf so einen Leichenfledderer reingefallen, 
der tote Threads ausgräbt...

Thomas schrieb:
> Ist OpenCV nicht gut für sowas geeignet?

Vermutlich.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.