mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR32 mplayer


Autor: Andreas Müller (schnitzeltony)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo AVR32 Freunde,

es gab in der ersten Ausgabe von embedded projects journal einen Beitrag 
von claude in mplayer als Beispiel für die Verwendung des LCD-Displays 
am grasshopper beschrieben wurde. In dem Artikel stand, dass die 
Prozessorauslastung bei ~30% läge.

Ich habe das nun mit dem aktuellen buildroot 2.3.0 von Atmel ausprobiert 
(dort sind schon Patches eingepflegt).

Jetzt zu meinen Fragen:

1. Egal mit was ich mplayer füttere, die Prozessorauslastung liegt immer 
oberhalb von 75%. Ich starte mit
mplayer -vo fbdev -fs -nosound /media/A380crash.avi
An der Konsole sagt mir mplayer:
ASF file format detected.
VIDEO:  [WMV2]  320x240  24bpp  1000.000 fps    0.0 kbps ( 0.0 kbyte/s)
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffwmv2] vfm: ffmpeg (FFmpeg M$ WMV2/WMV8)
==========================================================================
Audio: no sound
Starting playback...
VDec: vo config request - 320 x 240 (preferred colorspace: Planar YV12)
Could not find matching colorspace - retrying with -vf scale...
Opening video filter: [scale]
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is undefined - no prescaling applied.
AVR32 BGR24: Using PICO for color space conversion
SwScaler: using unscaled yuv420p -> bgr24 special converter
VO: [fbdev] 320x240 => 320x240 BGR 24-bit  [fs]
Warum habe ich eine so hohe Auslastung? Gibt es 
Optimierungsmöglichkeiten?
2. In der Konfigurationsdatei von mplayer hat Atmel als default Ausgabe 
Gerät fbdev2 angegeben. Starte ich damit kracht der grasshopper total. 
Ich muss fbdev wählen. Dabei gibt
mplayer -vo help
fbdev2 als mögliche Ausgabe an
Available video output drivers:
        fbdev   Framebuffer Device
        fbdev2  Framebuffer Device
        null    Null video output
        mpegpes Mpeg-PES to DVB card
        yuv4mpeg        yuv4mpeg output for mjpegtools
        png     PNG file
        jpeg    JPEG file
        gif89a  animated GIF output
        tga     Targa output
        pnm     PPM/PGM/PGMYUV file
        md5sum  md5sum of each frame
Wo finde ich fbdev und fbdev2 und was sind die Unterschiede?

Autor: Michael B. (bubi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Andreas,

Ein Tipp in ein tiefes schwarzes Loch (sitz grad ned vorm Linuxrechner)
auf avr32linux.org gibts einen Patch für den mplayer, der die VPU(?) 
nutzt, also auf allefälle die Hardware vom AP7000 speziell ausreizt. 
Wirf mal einen Blick darauf, kA ob buildroot diesen Patch bereithält.


[1] http://avr32linux.org/twiki/bin/view/Main/MPlayer

Michael

Autor: Andreas Müller (schnitzeltony)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Atmel liefert den patch mplayer-1.0rc1-atmel.3.patch mit aus. Ich 
vermute, das ist eine Weiterentwicklung dessen, was auf AVR32Linux.org 
zu finden ist.

Autor: Michael B. (bubi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm mist, wäre auch zu einfach gewesen :)
Ich hab aber sowas schonmal wo gelesen, da hat jemand auch ~75% 
Auslastung und hat gefragt wie claude das geschafft hat...
Ich google mal.

Autor: Michael B. (bubi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier gings darum:
Beitrag "AVR32: 32bit vs 16bit SDRAM Anbindung"

Lösung scheinen die aber auch nicht gefunden zu haben. :(
Hat dein Video bereits 320x240 oder wird das skaliert?
Holst du dir das Video über die SD-Karte rein?
Ev. läuft einiges auf deinem Speicher-Bus, von dem du ja dank DMA nichts 
mitbekommst, sich aber logischerweise auf deine Performance auswirkt.

Autor: Udo S. (udo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie misst du die Auslastung?

Gruß
Udo

Autor: Andreas Müller (schnitzeltony)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mplayer gibt das selber an

oder

top

Autor: Claude Schwarz (claudeschwarz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
die 30% bezogen sich auf ein MPEG1 (oder 2??, schon ne weile her) File. 
Woher bekommt dein GH die Daten ? SD oder NFS? Wie das ganze mit WMV8 
ausschaut kann ich nicht sagen, mit MPEG4 war die Auslastung jedenfalls 
um einiges höher.

Autor: Andreas Müller (schnitzeltony)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Claude,

ich habe beides versucht von MMC und aus dem RAM (/tmp): Unterschiede 
waren nicht erkennbar. Kannst Du vielleicht mal ein WMV8 320*200 30fps 
versuchen?
Mir geht es darum, festzustellen, ob da was kaputt programmiert worden 
ist. Hast Du vielleicht ein Testvideo (ich suche noch nach einem, was 
ich ohne Copyright-Verletztung hochladen kann..)

Autor: Claude Schwarz (claudeschwarz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das wird noch ein paar Tage dauern bis ich dazu komme, habe erst vor 
einer guten Woche meinen Grasshopper wieder bekommen und muss meine 
Toolchain erst mal wieder Funktionsfähig bekommen.
Als Video hab ich damals einfach einen Kino Trailer genommen , 
glaube(TM) das verletzt kein Copyright. Meine Versuche habe ich immer 
mit NFS gemacht (Da der Atmel MCI/SD/MMC Treiber bis vor ein paar Tagen 
bzw 2.6.27 sowas von Buggy war).

Autor: Andreas Müller (schnitzeltony)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur zur Info: mit buildroot 2.2.1 / kernel 2.6.17 ergibt sich etwa die 
gleiche Auslastung.

Autor: Sebastian A. (freddyk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

mit der Option -benchmark gibt der mplayer am Ende eine Zusammenfassung 
der Auslastung, getrennt nach "video codec", "video output", "audio" und 
"system" (wie normalerweise auch zur Laufzeit). Aber Achtung die Angabe 
in Prozent beziehen sich dabei nicht auf die Prozessorauslastung sonder 
auf die Verteilung bei der Wiedergabe.

Hier mein Video:
VIDEO:  MPEG2  300x240  (aspect 1)  25.000 fps  600.0 kbps (75.0 
kbyte/s)

und der Benchmark:
BENCHMARKs: VC:  24.003s VO:   8.443s A:   0.000s Sys:   1.687s = 
34.133s
BENCHMARK%: VC: 70.3224% VO: 24.7350% A:  0.0000% Sys:  4.9426% = 
100.0000%

Ich habe nur 1000 Frames (-frames xxx) wiedergegeben, bei 25fps also 
40s. Der AVR32 war damit 34.133s beschäftigt, macht also 85% 
Gesamtauslastung.

Atmel buildroot 2.2.1, Kernel 2.6.25

Ein vergleichendes Video wäre nicht schlecht, da neben der Auflösung und 
Kodierung auch fps und Komprimierungsrate mitspielen.

Das Video wurde von der SD-Karte wiedergegeben, auch bei mir sind bei 
der Wiedergabe aus dem RAM sind keine großen Änderungen erkennbar.


Sebastian

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.