# [gelöst] HD Videos ruckeln

## Fijoldar

Hallo,

ich beschäftige mich gerade mit einem etwas merkwürdigen Verhalten. Auf einem PC bleiben HD Videos (1080p, mp4 Datei) zeitweise für 2-3 Sekunden stehen und laufen dann erst weiter, wobei der Ton allerdings kontinuierlich weiter läuft. Hängen bleibt also nur die Video Spur. Getestet habe ich den VLC Player und den KDE eigenen Dragon Player. Bei beiden ist das gleiche Verhalten. Zu Beobachten ist hier eine sehr hohe CPU Auslastung.

Ich habe schon versucht global das Use Flag "vdpau" zu setzen. Das hat allerdings nur minimal zu Verbesserungen geführt. Die Videospur bleibt weiter 1-2 Sekunden hängen.

CPU

Core 2 Duo  E6750 @ 2*2,67 GHz

Grafikkarte

01:00.0 VGA compatible controller: NVIDIA Corporation G92 [GeForce 8800 GT] (rev a2)

Von der Hardware Ausstattung her sollte eigentlich genügend Power vorhanden sein. Zumal unter Windows (Dualboot) keinerlei Probleme mit HD Videos auftreten. Installiert ist der proprietäre nvidia Treiber:

```
x11-drivers/nvidia-drivers

     Available versions:  96.43.23^msd 173.14.36^msd (~)173.14.37^msd 304.88^msd 310.44^msd 313.30^msd (~)319.17^msd {{+X acpi custom-cflags gtk kernel_FreeBSD kernel_linux multilib pax_kernel (+)tools}}

     Installed versions:  319.17^msd(13:45:23 08.05.2013)(X acpi kernel_linux tools -kernel_FreeBSD -multilib -pax_kernel)

     Homepage:            http://www.nvidia.com/

     Description:         NVIDIA X11 driver and GLX libraries  
```

emerge --info

```
$ emerge --info

Portage 2.1.11.62 (default/linux/x86/13.0/desktop/kde, gcc-4.6.3, glibc-2.15-r3, 3.7.10-gentoo i686)

=================================================================

System uname: Linux-3.7.10-gentoo-i686-Intel-R-_Core-TM-2_Duo_CPU_E6750_@_2.66GHz-with-gentoo-2.2

KiB Mem:     2072768 total,    688684 free

KiB Swap:    2093052 total,   2093052 free

Timestamp of tree: Thu, 09 May 2013 08:30:01 +0000

ld GNU ld (GNU Binutils) 2.22

app-shells/bash:          4.2_p37

dev-java/java-config:     2.1.12-r1

dev-lang/python:          2.7.3-r3, 3.2.3-r2

dev-util/cmake:           2.8.10.2-r2

dev-util/pkgconfig:       0.28

sys-apps/baselayout:      2.2

sys-apps/openrc:          0.11.8

sys-apps/sandbox:         2.5

sys-devel/autoconf:       2.13, 2.69

sys-devel/automake:       1.10.3, 1.11.6, 1.12.6

sys-devel/binutils:       2.22-r1

sys-devel/gcc:            4.6.3

sys-devel/gcc-config:     1.7.3

sys-devel/libtool:        2.4-r1

sys-devel/make:           3.82-r4

sys-kernel/linux-headers: 3.7 (virtual/os-headers)

sys-libs/glibc:           2.15-r3

Repositories: gentoo

ACCEPT_KEYWORDS="x86"

ACCEPT_LICENSE="* -@EULA"

CBUILD="i486-pc-linux-gnu"

CFLAGS="-O2 -march=i486 -pipe"

CHOST="i486-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/polkit-1/actions /usr/share/themes/oxygen-gtk/gtk-2.0 /usr/share/themes/oxygen-gtk/gtk-3.0"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"

CXXFLAGS="-O2 -march=i486 -pipe"

DISTDIR="/usr/portage/distfiles"

FCFLAGS="-O2 -march=i686 -pipe"

FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"

FFLAGS="-O2 -march=i686 -pipe"                                                                                                                               

GENTOO_MIRRORS="http://distfiles.gentoo.org"                                                                                                                 

LANG="de_DE.UTF-8"                                                                                                                                           

LDFLAGS="-Wl,-O1 -Wl,--as-needed"                                                                                                                            

MAKEOPTS="-j3"                                                                                                                                               

PKGDIR="/usr/portage/packages"                                                                                                                               

PORTAGE_CONFIGROOT="/"                                                                                                                                       

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"                                                                                                           

PORTAGE_TMPDIR="/var/tmp"                                                                                                                                    

PORTDIR="/usr/portage"                                                                                                                                       

PORTDIR_OVERLAY=""                                                                                                                                           

SYNC="rsync://rsync.gentoo.org/gentoo-portage"                                                                                                               

USE="X a52 aac acl acpi alsa berkdb branding bzip2 cairo cdda cdr cli consolekit cracklib crypt cups cxx dbus declarative dri dts dvd dvdr emboss encode exif fam firefox flac fortran g3dvl gdbm gif gpm gtk iconv ipv6 jpeg kde kipi lcms ldap libnotify mad mng modules mp3 mp4 mpeg mudflap ncurses nls nptl ogg opengl openmp pam pango pcre pdf phonon plasma png policykit ppds qt qt3support qt4 readline sdl semantic-desktop session spell ssl startup-notification svg tcpd tiff truetype udev udisks unicode upower usb vdpau vorbis wicd wxwidgets x264 x86 xcb xcomposite xinerama xml xscreensaver xv xvid zlib" ABI_X86="32" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="de" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-3" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"

USE_PYTHON="2.7"

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
```

Hat jemand eine Idee?

Gruß

FijoldarLast edited by Fijoldar on Sat May 11, 2013 8:29 am; edited 1 time in total

----------

## AmonAmarth

zeig mal bitte die ausgabe von 

```
eselect opengl show
```

 und wie verhält sich mplayer mit der option -vo vdpau beim abspielen? deine emerge --info ausgabe lässt aber nicht auf das global gesetzte vdpau use flag schließenLast edited by AmonAmarth on Fri May 10, 2013 10:07 pm; edited 1 time in total

----------

## Fijoldar

1. Ich bin einen Schritt weiter gekommen. Habe eher durch Zufall das Video mit Kaffeine geöffnet (den Player nutze ich eigentlich nur für DVB-T Fernsehen) und habe festgestellt, dass es dort problemlos wiedergegeben werden konnte (CPU Last ~10%). Daraus schließe ich, dass es mit der Video-Beschleunigung der Grafikkarte zu tun hat.

2. Ich muss wohl auch noch zusätzlich das Use Flag "vaapi" setzen. 

3. Ich habe VLC mit "vaapi" kompiliert. Jetzt kann ich die Videos zumindest schonmal fehlerfrei abspielen. Allerdings habe ich immer noch eine CPU Auslastung von ~70%. Scheint wohl immer noch nicht ganz rund zu laufen.

4. Dragon Player verursacht weiter Hänger. Dieser Player fliegt wohl runter.

----------

## AmonAmarth

 *Fijoldar wrote:*   

> 1. Ich bin einen Schritt weiter gekommen. Habe eher durch Zufall das Video mit Kaffeine geöffnet (den Player nutze ich eigentlich nur für DVB-T Fernsehen) und habe festgestellt, dass es dort problemlos wiedergegeben werden konnte (CPU Last ~10%). Daraus schließe ich, dass es mit der Video-Beschleunigung der Grafikkarte zu tun hat.
> 
> 2. Ich muss wohl auch noch zusätzlich das Use Flag "vaapi" setzen. 
> 
> 3. Ich habe VLC mit "vaapi" kompiliert. Jetzt kann ich die Videos zumindest schonmal fehlerfrei abspielen. Allerdings habe ich immer noch eine CPU Auslastung von ~70%. Scheint wohl immer noch nicht ganz rund zu laufen.
> ...

 

dragon player ist afaik nur eine GUI frontend für mplayer. die GUI kann wohl am wenigsten für die schlechte performance welche du berichtestLast edited by AmonAmarth on Fri May 10, 2013 10:10 pm; edited 1 time in total

----------

## Fijoldar

 *AmonAmarth wrote:*   

> zeig mal bitte die ausgabe von 
> 
> ```
> eselect opengl show
> ```
> ...

 

```
$ eselect opengl show

nvidia
```

Das passt.

 *Quote:*   

> und wie verhält sich mplayer mit der option -vo vdpau beim abspielen?

 

mplayer habe ich gar nicht installiert. Kann ich aber mal machen. Ich melde mich dann nochmal, sobald ich eine Ausgabe bekomme.

----------

## Fijoldar

Also mplayer spielt das Video zwar ab, allerdings ohne Sound. Zumindest konnte ich aber keine Ruckler feststellen.

Hier mal die Ausgabe:

```
mplayer -vo vdpau test.mp4

MPlayer 1.1-4.6.3 (C) 2000-2012 MPlayer Team

MMX2 supported but disabled

SSE supported but disabled

SSE2 supported but disabled

Spiele test.mp4.

libavformat version 53.32.100 (external)

libavformat-Dateiformat erkannt!

[lavf] stream 0: video (h264), -vid 0

[lavf] stream 1: audio (aac), -aid 0, -alang und

VIDEO:  [H264]  1920x1080  24bpp  25.000 fps  4786.2 kbps (584.3 kbyte/s)

Clip-Info:

 major_brand: mp42

 minor_version: 0

 compatible_brands: isommp42

 creation_time: 2012-05-21 08:11:13

Load subtitles in ./

==========================================================================

Erzwungener Videocodec: ffh264vdpau

Öffne Videodecoder: [ffmpeg] FFmpeg's libavcodec codec family

libavcodec version 53.61.100 (external)

Ausgewählter Videocodec: [ffh264vdpau] vfm: ffmpeg (FFmpeg H.264 (VDPAU))

==========================================================================

==========================================================================

Öffne Audiodecoder: [ffmpeg] FFmpeg/libavcodec audio decoders

AUDIO: 44100 Hz, 2 ch, s16le, 151.5 kbit/10.74% (ratio: 18943->176400)

Ausgewählter Audiocodec: [ffaac] afm: ffmpeg (FFmpeg AAC (MPEG-2/MPEG-4 Audio))

==========================================================================

AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)

Starte Wiedergabe...

[VD_FFMPEG] Versuche pixfmt=0.

Film-Aspekt ist undefiniert - keine Vorskalierung durchgeführt.

VO: [vdpau] 1920x1080 => 1920x1080 H.264 VDPAU acceleration 

[VD_FFMPEG] XVMC-beschleunigtes MPEG-2.

A:  11.7 V:  11.7 A-V: -0.008 ct: -0.011   0/  0  1%  0%  0.9% 0 0 

Beenden... (Ende)

```

Videobeschleunigung scheint also zu funkionieren. Bleibt nur die Frage, warum VLC solche Zicken macht

----------

## Josef.95

 *AmonAmarth wrote:*   

> deine emerge --info ausgabe lässt aber nicht auf das global gesetzte vdpau use flag schließen

  Da musst du dich verguckt haben - USE=vdpau ist global mit drin.

........................................................................................

@Fijoldar

 *Fijoldar wrote:*   

> 
> 
> ```
> CFLAGS="-O2 -march=i486 -pipe"
> 
> ...

 

Hm, ist i486 so wirklich beabsichtigt, oder wurde versehentlich ein "falsches" stage3 Archiv genutzt?

----------

## AmonAmarth

 *Josef.95 wrote:*   

>  *AmonAmarth wrote:*   deine emerge --info ausgabe lässt aber nicht auf das global gesetzte vdpau use flag schließen  Da musst du dich verguckt haben - USE=vdpau ist global mit drin.

 

oh tatsache, beim überfliegen wohl irgendwie übersehen...

----------

## Fijoldar

 *Josef.95 wrote:*   

> 
> 
> @Fijoldar
> 
>  *Fijoldar wrote:*   
> ...

 

Bewusst wollte ich ein x86 System. Ich habe hier nur 2GB Ram, der läuft mir mit 64 Bit zu schnell voll. Dachte deswegen an ein i686 System. Allerdings finde ich nur i486. Dann habe ich es dabei einfach belassen. Evtl. suche ich auch an der falschen Stelle, aber als Quelle habe ich das hier genutzt:

http://ftp.halifax.rwth-aachen.de/gentoo/releases/x86/current-stage3/

Was würdest du mir denn empfehlen?

EDIT: argh...kann es sein, dass zwischenzeitlich einfach keine i686 Archive verfügbar waren? Jetzt sehe ich sie auch...komisch, hätte schwören können, bei der Installation wäre nur i486 verfügbar gewesen...

EDIT2: Wie es aussieht hatte ich für die Installation einen ziemlich schlechten Zeitpunkt gewählt. Es gab wirklich mal eine kurze Zeit keine i686 stage3 Archive. Zumindest belegen das einige Mails aus der Mailing Liste: http://www.mail-archive.com/gentoo-user@lists.gentoo.org/msg136633.html

----------

## Josef.95

Fijoldar,

ja, soweit ich am Rande mitbekommen hatte waren vor ein paar Wochen i686 stages tatsächlich mal kurzfristig nicht verfügbar, zumindest nicht unter

/x86/current-stage3/

Unter /x86/autobuilds/ waren aber noch nicht ganz so aktuelle verfügbar. Aber zugegeben, wenn man das nicht weiß waren sie nicht ganz einfach zu finden.

Mit i486 verschenkst du wahrscheinlich ziemlich viele Funktionen die deine Intel Core 2_Duo E6750 CPU eigentlich unterstützt.

Ich denke du solltest zumindest auf i686 gehen wenn du ein x86 32 bit System nutzen möchtest. Nutze dafür zb den Tipp aus der make.conf  *Quote:*   

> # WARNING: Changing your CHOST is not something that should be done lightly.
> 
> # Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.

 

Und wenn die gebauten Pakete tatsächlich nur auf dem Rechner laufen müssen, auf dem sie gebaut wurden, dann nutze am besten gleich -march=native

(Siehe dazu auch im http://gcc.gnu.org/onlinedocs/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options )

----------

## Fijoldar

@Josef.95

Vielen Dank für den Tipp!

Ich habe meine make.conf jetzt geändert:

```
# These settings were set by the catalyst build script that automatically

# built this stage.

# Please consult /usr/share/portage/config/make.conf.example for a more

# detailed example.

CFLAGS="-O2 -march=native -pipe"

CXXFLAGS="${CFLAGS}"

# WARNING: Changing your CHOST is not something that should be done lightly.

# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.

CHOST="i686-pc-linux-gnu"

# These are the USE flags that were used in addition to what is provided by the

# profile used for building.

USE="mmx sse sse2 sse3 X vdpau vaapi g3dvl -bluetooth qt kde -gnome dvd alsa opengl wicd"

VIDEO_CARDS="nvidia"

INPUT_DEVICES="evdev"

MAKEOPTS="-j3"

USE_PYTHON="2.7"

PYTHON_TARGETS="python2_7"

LINGUAS="de"
```

Müsste ich jetzt sämtliche Pakte neu kompilieren? Wenn ja, wie? Oder sollte ich es jetzt einfach so lassen und bei Updates werden entsprechend die neuen Einstellungen genutzt und nach einer Zeit ist alles gut?

Den Thread an sich setze ich mal auf "gelöst". Zwar läuft VLC noch nicht ganz rund, ich bin jetzt aber in der Lage, zumindest mit Kaffeine HD Videos problemlos abzuspielen.

----------

## Josef.95

Fijoldar,

hm nein, mit einfach nur den CHOST neu setzen ist es nicht getan. Nutze bitte den schon verlinkten http://www.gentoo.org/doc/en/change-chost.xml Guide und gehe den komplett und sorgfältig durch.

Alternativ bleibt wohl nur eine Neuinstallation.

Falls du dich entscheidest eine Neuinstallation durchzuführen ist es wahrscheinlich besser gleich ein amd64 System zu wählen, sofern von deiner CPU unterstützt. Mit 2GB RAM plus 2GB SWAP kommt man idR noch gut klar (ja auch mit kde auf amd64).

----------

## Fijoldar

Ok, ich bin den Guide durchgegangen. Hat alles soweit auch problemlos funktioniert. Ein "emerge -e world" habe ich allerdings erstmal ausgelassen. Habe mich zuerst auf die dort genannten Pakte konzentriert. Der Rest folgt dann bei weiteren Updates.

Das war mir jetzt doch lieber als eine Neuinstallation. Ich habe ein Gentoo System bisher noch nie neuinstallieren müssen und dabei wollte ich es auch gerne belassen  :Wink: . Wirkliche Vorteile verspreche ich mir von amd64 nämlich nicht. Das hier ist wirklich ein reiner Anwendungs-PC ohne große Rechen Aufgaben.

Also nochmals ein dickes Danke!

----------

