• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Beherrscht mplayer multithread um Videos zu dekodieren?

Hallo Leute,

ich bin in einer Zwickmühle, weil ich nicht den richtigen Videoplayer für meine Wünsche finden kann.

Mein System:
BenQ R55 G21 Dual Core 1.83 GHz
OpenSuse 11/Gnome
Kernel: 2.6.25.11-0.1-default
xine: v0.99.6cvs
mplayer: 1.0rc2-openSUSE

1.) XINE bietet mir die Möglichkeit das Dekodieren von Videos auf mehrere Threads zu verteilen und Bilder im Voraus zu berechnen, so dass ich mir auch aufwendiges HD-Bildmaterial (1080p) flüssig ansehen kann

Code:
~/.xine/config
video.processing.ffmpeg_thread_count:3
engine.buffers.video_num_buffers:2000
engine.buffers.video_num_frames:200

2.) Der mplayer bietet eine Vielzahl von Filtern, die es mir ermöglichen auch weniger gutes mpeg4 Material auf HD-Auflösung mit einem Lanczos-Filter zu skalieren

Code:
mplayer -vo xv -vf scale=1920:-1,pp=hb/vb/dr/al,smartblur=.6:-.5:0,unsharp=l5x5:.8:c5x5:.4 -sws 9

Allerdings verteilt der mplayer das Dekodieren nicht auf mehrere Threads, so dass nur eine CPU belastet wird. Dies führt dazu, dass der ein oder andere Film nicht flüssig dargestellt werden kann.


Was wünsche ich mir:

1.) Vielleicht könnt ihr mir einen Tipp geben, wie ich Xine dazu bringe einen Lanczos Software Scaler und die anderen Filter (siehe mplayer) zu verwenden, da ich aus der Xine-Doku nicht schlau werde.

Dazu die Liste der Plugins:
Code:
 Verfügbare xine-Plugins:
   -Audioausgabe:
     pulseaudio, alsa, oss, jack, arts, esd, file, none.

   -Videoausgabe:
     xv, opengl, SyncFB, raw, xshm, aa, none, xxmc, sdl, vidixfb, vidix, fb,
     xvmc.

   -Demuxer:
     anx, image, mng, mpeg-ts, ogg, iff, fli, pva, wve, idcin, ipmovie, vqa,
     wc3movie, roq, str, film, smjpeg, fourxm, vmd, mpeg_block, mpeg_pes, avi,
     slave, flashvideo, quicktime, asf, real, nsv, aud, aiff, flac, nsf,
     realaudio, snd, tta, voc, vox, mod, yuv4mpeg2, matroska, mpeg, dts, ac3,
     wav, cdda, rawdv, mpc, yuv_frames, mp3, shn, elem, sputext, aac.

   -Eingang:
     gnomevfs, CD, stdin, rtsp, pvr, tcp, rtp, v4l_radio, v4l_tv, VCDO, FILE,
     mms, http, pnm, VDR, smb, DVD, VCD.

   -Untertitel:
     spudec, spucc, spucmml, spudvb, sputext.

   -Nachbearbeitung:
     goom, tvtime, upmix, upmix_mono, stretch, volnorm, oscope, fftscope,
     fftgraph, expand, fill, invert, eq, denoise3d, boxblur, eq2, unsharp, pp,
     noise, vdr, vdr_video, vdr_audio, switch, mosaico.

   -Audiodecoder:
     gsm610, mad, ffmpegaudio, realadec, speex, dvaudio, nsf, a/52, vorbis,
     mpc, dts, pcm, qta, win32a, faad.

   -Videodecoder:
     mpeg2, realvdec, gdkpixbuf, ffmpegvideo, image, theora, yuv, win32v, qtv,
     bitplane, rgb, ffmpeg-wmv9, ffmpeg-wmv8.


2.) Oder die schönere Lösung wäre, wenn ihr mir sagen könntet, wie der mplayer multithread verwendet.


Vielen Dank für eure Tipps
 
OP
D

deepthought

Newbie
MplayerXP soll wohl Multithreating unterstützen, allerdings kann ich das Paket nicht kompilieren, da ich kein gcc 3.2 oder kleiner sondern nur 3.3 finden kann.

Ich bekomme dann folgenden Fehler:

Code:
Desktop/mplayerxp-0.6.2> ./configure 
Entering 'codecs' directory
Checking for build system type ... i686-suse-linux
Checking for Program name ... mplayerxp
Checking for __fastcall optimization abilities ... no
Checking for as ... /usr/lib/gcc/i586-suse-linux/4.3/../../../../i586-suse-linux/bin/as
Checking for as support of mmx ... yes
Checking for as support of mmx2 ... yes
Checking for as support of 3dnow ... yes
Checking for as support of 3dnow2 ... yes
Checking for as support of sse ... yes
Checking for as support of sse2 ... yes
Checking for gcc support of FPU_CLOBBERED ... yes
Checking for gcc support of MMX_CLOBBERED ... failed
To use MMX instructions with aggressive optimization you need to upgrade your gcc!
Checking for gcc support of SSE_CLOBBERED ... failed
To use SSE instructions with aggressive optimization you need to upgrade your gcc!
Checking for malloc.h ... yes
Checking for memalign() ... yes
Checking for alloca.h ... yes
Checking for Sun mediaLib ... no
Checking for pthread ... yes (using '-lpthread')
Checking for zlib ... no
Checking for lrintf ... yes
Checking for llrint ... yes
Creating config.mak
Creating config.h
Checking for .align is power-of-two ... no
Generating list of ffmpeg's codecs! Please wait
Checking for liba52 ... no
Checking for libdts ... no
Checking for libgsm ... no
Checking for libmp3lame ... no
Checking for libvorbis ... no
Checking for libogg ... no
Checking for xvid ... no
Checking for x264 ... no
Checking for libfaac ... no
Checking for libfaad ... no
Checking for libnut ... no
Checking for dc1394_demuxer ... no
Checking for v4l2_demuxer ... yes
Checking for amr_nb_decoder ... yes
Checking for amr_wb_decoder ... yes
Leaving 'codecs' directory
Entering 'loader' directory
Checking for build system type ... i686-suse-linux
Checking for as support of mmx ... yes
Checking for as support of mmx2 ... yes
Checking for as support of 3dnow ... yes
Checking for as support of 3dnow2 ... yes
Checking for as support of sse ... yes
Checking for as support of sse2 ... yes
Checking for gcc support of FPU_CLOBBERED ... yes
Checking for gcc support of MMX_CLOBBERED ... failed
To use MMX instructions with aggressive optimization you need to upgrade your gcc!
Checking for gcc support of SSE_CLOBBERED ... failed
To use SSE instructions with aggressive optimization you need to upgrade your gcc!
Checking for win32 dll's ... /usr/lib/win32
Checking for Program name ... mplayerxp
Checking for __fastcall optimization abilities ... no
Checking for mman.h ... yes
Creating config.mak
Creating config.h
Leaving 'loader' directory
Entering 'mplayerxp' directory
Checking for build system type ... i686-suse-linux
Checking for gcc-3.3 version ... 3.3.3-hammer, bad
Checking for gcc3 version ... v. ?.??, bad
Checking for gcc32 version ... v. ?.??, bad

*** Please downgrade/upgrade C compiler to gcc-2.95.x or gcc-3.x version! ***

You are using a different compiler than ours. We do not have the time to make
sure everything works with compilers than the one we use.  Use either use the
same compiler as ours, or use --disable-gcc-checking but DO *NOT* REPORT BUGS
unless you can reproduce them after recompiling with 2.95.x or 3.0.x version!

Note for gcc 2.96 users: some versions of this compiler are known to miscompile
mplayerxp. If you get compile errors, first upgrade to the latest 2.96 release
(but minimum 2.96-85) and try again. If the problem still exists, try with 
gcc 3.0.x (or 2.95.x) *BEFORE* reporting bugs!

        GCC 2.96 IS NOT AND WILL NOT BE SUPPORTED BY US !

     *** For details please read DOCS/gcc-2.96-3.0.html ***


Error: Bad gcc version

Check configure.log if you do not understand why it failed.
Leaving 'mplayerxp' directory
Entering 'etc' directory
Creating config.mak
Leaving 'etc' directory
Entering 'DOCS' directory
Creating config.mak
Leaving 'DOCS' directory

Vorher habe ich folgendes eingegeben:
Code:
CC=gcc-3.3
export CC

und natürlich das Paket gcc33 installiert:

http://software.opensuse.org/search?baseproject=openSUSE:11.0&p=1&q=gcc33

Ein gcc 3.2 oder kleiner konnte ich nicht finden, kann mir da jemand bitte helfen?

Danke
 
Oben