Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Fragen zum Verhalten von mplayer
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
Vortex375
Veteran
Veteran


Joined: 03 Mar 2005
Posts: 1739
Location: Deutschland

PostPosted: Wed Jun 20, 2007 12:20 pm    Post subject: Fragen zum Verhalten von mplayer Reply with quote

Hi zusammen. Mir ist grad beim Herumexperimentieren mit mplayer etwas interessantes aufgefallen.

Ich habe eine Datei im h.264 codec mit 1280x720 Pixeln abgespielt. Das beansprucht auf meinem Rechner rund 50% CPU-Zeit. Mit ist aber aufgefallen, dass ich das Wiedergabefenster beliebig groß ziehen kann, ohne dass die CPU Auslastung zunimmt.

Zunächst dachte ich, dass das am hardwarebeschleunigten X-Video-Adapter liegt, aber es funktioniert auch mit Videoausgabe-Modulen, die kein hardwarebeschleunigtes Scaling unterstützen. Jedoch verhalten sich alle ein wenig anders.

Mit -vo xv (dem Standard) kann ich problemlos bis auf eine Fensterbreite von 10000 Pixeln gehen. Das Bild wird logischerweise matschig, aber die Wiedergabe läuft flüssig und in normalem Tempo weiter.

Mit -vo x11 (und der Zusatzoption -zoom) komme ich nur bis auf 2000 Pixel Fensterbreite. Sobald ich die 2000 erreiche/überschreite kommt ein "Mplayer was interrupted by Signal 6".

Mit -vo gl (benutzt auch den SwScaler) komme ich bis auf 4000 Pixel. Wenn ich drüberhinaus gehe hängt sich Mplayer mit 100% CPU-Last auf und rendert so alle halbe Minute mal ein Frame.


Das hat für mich jetzt ein paar Rätsel aufgeworfen. Ich dachte eigentlich, dass das Scaling ziemlich rechenintensiv ist. Allerdings steigt die CPU-Auslastung selbst mit den unbeschleunigten Videoausgabe-Modulen nicht an. Diese scheinen jedoch irgend ein Limit zu haben, wenn man zu groß skaliert dann hängt sich mplayer auf.

Ich frage mich in diesem Sinne auch, was denn dann der Nutzen des beschleunigten XVideo-Treibers ist. Denn die CPU-Auslastung ist mit den nicht beschleunigten Treibern nur unmerklich größer.

Oder liegt es daran, dass er immer nur den Teil des Videos dekodiert/scaled, der auch wirklich angezeigt wird? Mein Monitor hat nämlich nur eine Auflösung von 1024x768 Pixeln.

Kann mir jemand dieses Phänomen vieleicht genauer erklären? :D
Back to top
View user's profile Send private message
hoschi
Advocate
Advocate


Joined: 19 Jul 2003
Posts: 2517
Location: Ulm, Germany, Europe

PostPosted: Wed Jun 20, 2007 5:40 pm    Post subject: Reply with quote

Ohne viel Ahnung davon zu haben, leuchtet mir es nicht ein warum Zoom/Scaling auch nur annäherend Einfluss auf die CPU-Auslastung haben sollte. Der MPEG/OGG-Container muss immer nur "dekodiert" werden. Dekodierung erfolgt im Gegensatz nur Kodierung ja mit dem Limit der Frameausgabe und etwas Puffer.
Das Ausgeben über die entsprechende Videoschnittstellen könnte da eher Einfluss haben, gerade wenn ich an den Grafikspeicher und XVideo denke, letzteres ist leider immer noch etwas Buggy, wenn der Videospeicher voll läuft. Was einem mit alten Inteltreibern und wenig Videospeicher bei Videos mit hoher Auflösung passieren kann. Grosse Videos oder sonst irgendwie hochqulitatives Material gebe ich mit Mplayer immer auf dem Terminal (Framebuffer) aus, da läuft einfach alles sauber.

Lass doch mal das Video "kleiner" abspielen mit 640x480 und zeichne die CPU-Auslastung auf (kannst ja den System-Monitor im Hintergrund offen lassen), und dann nochmal mit der Vollbildausgabe vergleichen.
_________________
Just you and me strogg!
Back to top
View user's profile Send private message
Vortex375
Veteran
Veteran


Joined: 03 Mar 2005
Posts: 1739
Location: Deutschland

PostPosted: Wed Jun 20, 2007 6:04 pm    Post subject: Reply with quote

Quote:
Ohne viel Ahnung davon zu haben, leuchtet mir es nicht ein warum Zoom/Scaling auch nur annäherend Einfluss auf die CPU-Auslastung haben sollte. Der MPEG/OGG-Container muss immer nur "dekodiert" werden.

Mit Dekodieren ist es aber nicht getan. Die Daten auf deiner Festplatte müssen eine ganze Reihe von Schritten durchlaufen, bis du ein Bild auf dem Monitor sehen kannst.

Nachdem das Bild dekodiert wurde, kann man ja noch verschiedene Video-Filter (PostProcessing etc.) drüber laufen lassen. Und anschließend muss es dann noch auf dem Bildschirm ausgegeben werden. Wenn der Film jetzt aber nicht die gleiche Auflösung wie der Monitor hat und man will Vollbild haben, dann muss der Computer das Bild eben vergrößern oder verkleinern.

Und wie vergrößert oder verkleinert ein Computer ein Bild ohne zu Rechnen bzw. die CPU zu bemühen? Das erklärste mir mal plausibel. :wink:

Quote:
Lass doch mal das Video "kleiner" abspielen mit 640x480 und zeichne die CPU-Auslastung auf (kannst ja den System-Monitor im Hintergrund offen lassen), und dann nochmal mit der Vollbildausgabe vergleichen.


Das könnte ich ausprobieren, aber dazu muss ich mir irgendwie die durschnittliche CPU-Last von mplayer während einer Minute oder so anzeigen lassen. Mit der momentanen CPU-Auslastung kann man nicht viel vergleichen, da diese stark schwankt.

Weiß jemand wie ich die CPU-Auslastung des mplayer Prozesses über einen bestimmten Zeitraum beobachten kann?
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum