Тормозит hd-видео (gentoo, mplayer, nvidia)

dangerr

При проигрывании hd-видео визуально видно, что проигрывается оно медленно, а аудио со временем уходит вперёд, кроме того mplayer выдаёт такое:



************************************************
**** Your system is too SLOW to play this! ****
************************************************

Possible reasons, problems, workarounds:
- Most common: broken/buggy _audio_ driver
- Try -ao sdl or use the OSS emulation of ALSA.
- Experiment with different values for -autosync, 30 is a good start.
- Slow video output
- Try a different -vo driver (-vo help for a list) or try -framedrop!
- Slow CPU
- Don't try to play a big DVD/DivX on a slow CPU! Try some of the lavdopts,
e.g. -vfm ffmpeg -lavdopts lowres=1:fast:skiploopfilter=all.
- Broken file
- Try various combinations of -nobps -ni -forceidx -mc 0.
- Slow media (NFS/SMB mounts, DVD, VCD etc)
- Try -cache 8192.
- Are you using -cache to play a non-interleaved AVI file?
- Try -nocache.
Read DOCS/HTML/en/video.html for tuning/speedup tips.
If none of this helps you, read DOCS/HTML/en/bugreports.html.

Попробовал различные vo (обычно запускаю через vdpau, но с другими разницы нет), autosync 30. sdl у меня не собран, а oss-эмуляция отключена в ядре Linux, да и аудио-то вроде нормально играется. Остальное всё не имеет места быть: пробовал запускать из tmpfs, процессор по данным /proc/cpuinfo: Intel(R) Core(TM) i7-2760QM CPU @ 2.40GHz 8-ядерный (хотя может 4-ядерный, гипертрейдинг вроде как удваевает реальное число... в общем не суть - в любом случае более чем достаточно), к тому же раньше стояла Ubuntu (пока не умерла своей смертью) и там всё игралось без торомозов.
glxgears выдаёт около 60 fps, что соответствует частоте синхронизации монитора.
В качестве драйвера использую бинарный блоб от Nvidia версии:
=x11-drivers/nvidia-drivers-325.08
На другом компе стоит та же версия и там всё играется, то есть на драйвер вроде как грешить не стоит.
Есть мысли куда копать?

svetaslav212

autosync 30
Это что? Вертикальная синхронизация? Может ее вовсе отключить?

dangerr

В мане так описано:

-autosync <factor>
Gradually adjusts the A/V sync based on audio delay measurements. Specifying
-autosync 0, the default, will cause frame timing to be based entirely on audio
delay measurements. Specifying -autosync 1 will do the same, but will subtly
change the A/V correction algorithm. An uneven video framerate in a movie which
plays fine with -nosound can often be helped by setting this to an value
greater than 1. The higher the value, the closer the timing will be to
-nosound. Try -autosync 30 to smooth out problems with sound drivers which do
not implement a perfect audio delay measurement. With this value, if large A/V
sync offsets occur, they will only take about 1 or 2 seconds to settle out.
This delay in reaction time to sudden A/V offsets should be the only side-effect
of turning this option on, for all sound drivers.

Я, честно говоря, не до конца понял... какая-то синхронизация между аудио и видео. Я просто проверил разные значения, потому что так посоветовало сообщение от mplayer-а. Разницы не было.

procenkotanya

Чтобы работало аппаратное декодирование кроме -vo vdpau нужно ещё -vc ffh264vdpau (для других форматов тоже есть кодеки, см. mplayer - vc help | grep vdpau).

dangerr

Хм, вообще тот файл, на котором я заметил проблему - это webm, выкачанный с youtube. Он проигрывается через ffvp8, а если указать -vc ffh264vdpau, то играет только аудио.
Нашёл пару файлов, закодированных в h264 с тем же разрешением (1920x1080). Их mplayer играет без тормозов. По умолчанию через ffh264, но если указать вручную, то и через ffh264vdpau без проблем(кстати, почему так и как сделать, чтобы так было по-умолчанию?).
В общем, выходит, что у меня проблема не со всем hd-видео, а только с кодеком vp8
На всякий случай, ffmpeg у меня собран с флагом vpx, из-за которого в зависимостях libvpx, которая в свою очередь собрана с флагами: mmx sse sse2 sse4_1 ssse3 threads -altivec -doc -postproc -sse3 -static-libs -test

beluchy

покажи всю выдачу mplayer'а

dangerr


$ mplayer endless.webm
MPlayer 1.1-4.7.3 (C) 2000-2012 MPlayer Team
MMX2 supported but disabled

Playing endless.webm.
libavformat version 54.63.104 (external)
libavformat file format detected.
[lavf] stream 0: video (vp8), -vid 0
[lavf] stream 1: audio (vorbis), -aid 0
VIDEO: [VP80] 1920x1080 0bpp 1000.000 fps 0.0 kbps ( 0.0 kbyte/s)
Load subtitles in ./
Opening video filter: [ass auto=1]
Couldn't open video filter 'ass'.
ASS: cannot add video filter
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
libavcodec version 54.92.100 (external)
Selected video codec: [ffvp8] vfm: ffmpeg (FFmpeg VP8)
==========================================================================
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 44100 Hz, 2 ch, floatle, 0.0 kbit/0.00% (ratio: 0->352800)
Selected audio codec: [ffvorbis] afm: ffmpeg (FFmpeg Vorbis)
==========================================================================
AO: [alsa] 48000Hz 2ch floatle (4 bytes per sample)
Starting playback...
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
VO: [vdpau] 1920x1080 => 1920x1080 Planar YV12
A: 3.8 V: 3.3 A-V: 0.496 ct: 0.008 0/ 0 99% 6% 1.0% 51 0


************************************************
**** Your system is too SLOW to play this! ****
************************************************

Possible reasons, problems, workarounds:
- Most common: broken/buggy _audio_ driver
- Try -ao sdl or use the OSS emulation of ALSA.
- Experiment with different values for -autosync, 30 is a good start.
- Slow video output
- Try a different -vo driver (-vo help for a list) or try -framedrop!
- Slow CPU
- Don't try to play a big DVD/DivX on a slow CPU! Try some of the lavdopts,
e.g. -vfm ffmpeg -lavdopts lowres=1:fast:skiploopfilter=all.
- Broken file
- Try various combinations of -nobps -ni -forceidx -mc 0.
- Slow media (NFS/SMB mounts, DVD, VCD etc)
- Try -cache 8192.
- Are you using -cache to play a non-interleaved AVI file?
- Try -nocache.
Read DOCS/HTML/en/video.html for tuning/speedup tips.
If none of this helps you, read DOCS/HTML/en/bugreports.html.

A: 199.6 V: 199.6 A-V: -0.007 ct: 0.024 0/ 0 90% 4% 0.8% 3935 0


Exiting... (End of file)

beluchy

VIDEO: [VP80] 1920x1080 0bpp 1000.000 fps
может файл битый...
попробуй ему -fps 24 задать
а че ты его без MMX2 собрал?

procenkotanya

99% в логе говорит, что узкое место — декодирование видео. Добавление -lavdopts threads=4 может помочь, правда ещё остаётся вопрос, почему проблемы не было на убунте, и на самом ли деле это видео должно тормозить на одном ядре (битрейты на youtub'е не такие высокие, так что тормозить не должно). Можешь дать ссылку на видео?

procenkotanya

может файл битый...
вряд ли, скорее отсутствие детекции для vp8 или признак variable-frame-rate

dangerr

-lavdopts threads=4 помогло. Добавил в конфиг mplayer-а соответственно строку:
lavdopts = "threads=4"
и все видео сейчас не тормозят.
Тормозили видео, практически все, которые на youtube имеют в списке качество 1080p. Я их скачиваю таким методом:
cclive -s best <ссылка_на_страницу_с_видео>
Ну вот, например, одно из наиболее тормозящих, с которого я и дал листинг:
http://www.youtube.com/watch?v=1FxmZh6OBrY
У меня несколько вопросов:
1) Почему mplayer сам не может определять сколько потоков надо создавать на основе моего количества ядер? Можно ли настроить, чтобы он это делал? Я полагаю, что в Ubuntu так и было настроено (я там смотрел gnome-mplayer, то есть по факту тем же mplayer). Вот флеш в браузере как-то сам значит догадывается, что надо в несколько потоков декодировать, так как там не тормозит.
2) Почему 4? cat /proc/cpuinfo выдаёт 8 ядер. Я встречал рекомендации по распараллеливанию либо 2 треда на ядро, либо число ядер+1 тредов (не понял правда когда какой нужно следовать). Или реальных ядер у меня 4, а удвоение за счёт гипертрейдинга и это не нужно учитывать в расчётах? Тогда всё равно надо 5 или 8, если те же рекомендации сохраняются...
3) Как всё-таки сказать mplayer-у, чтобы в случае видео, кодированного h264, он использовал ffh264vdpau, а не ffh264, но при этом другие видео он тоже мог остаться проигрывать. Если просто добавить строку:
vc=ffh264vdpau, то он другие видео не проигрывает. Например, те же vp8.

dangerr

а че ты его без MMX2 собрал?
С флагом mmx собран, а флага mmx2 в принципе ни у одного пакета не существует.

$ eix -c -U mmx2
No matches found.

Но вообще меня тоже напрягает, что он так ругается...

svetaslav212

Для линуксоида ты удивительно плохо разбираешься в тонкостях железа. :confused:

procenkotanya

> http://www.youtube.com/watch?v=1FxmZh6OBrY
У меня играется с 40% загрузкой одного ядра, работающего на 1.2 GHz. Если у тебя всё правильно скомпилено, проверяй, что power management не шалит (powertop).
> Почему mplayer сам не может определять сколько потоков надо создавать на основе моего количества ядер?
Может, если не делает, вероятно никто ещё соответсвующий патч не подал. Я не в курсе. Сейчас вообще модно mpv.
> Я встречал рекомендации по распараллеливанию либо 2 треда на ядро
Больше потоков чем ядер полезно при компиляции: есть чем загрузить ядра, когда какой-нибудь компилятор подтупливает на вводе-выводе, плюс это дешёвый способ обеспечить, чтобы компиляция медленно компилируемых файлов началась раньше. В твоём случае надо просто успевать декодировать всё к дедлайну, желательно с минимальными затратами энергии, поэтому либо 4, либо 8.
> Как всё-таки сказать mplayer-у ...
Поставить запятую после ffh264vpau в vc=. Это еcть в мане.

sharki55

 а в чём преимущество mplayer перед mpc и vlc ?
(пользуюсь этими двумя- играют всё. Только версии vlc после 1.0.5 не оч дружат с Семёркой -
Горячии клавиши надо оживлять каждый раз при включении вручную)

Filan

а в чём преимущество mplayer перед mpc
mpc появился под что-то отличное от виндов?

Plok2008

MMX2 supported but disabled
Попробуй mplayer собрать с флагом cpudetection. И/или собрать mplayer2. Может что-то лучше будет.

dangerr

Если у тебя всё правильно скомпилено, проверяй, что power management не шалит (powertop).
powertop показывает чуть меньше тысячи ms/s при проигрывании с одной нитью. При проигрывании с четырьмя сильно не меняется, но иногда значение и больше тысячи бывает.
Я вообще пока оптимизацией энергопотребления и переключением между режимами не занимался. Настроил в ядре: CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y и судя по описанию всё должно работать на максимальной производительности при такой опции. Сейчас пересобрал Linux без CONFIG_CPU_FREQ вообще, но поведение не изменилось.
Я же правильно понял, что ты предполагаешь, что возможно у меня уменьшается частота проца для уменьшения энергопотребления?
Поставить запятую после ffh264vpau в vc=. Это еcть в мане.
Отлично! Работает, спасибо :)

dangerr

а в чём преимущество mplayer перед mpc и vlc ?
vlc я особо не пользовался. mplayer заточен под управление через опции командной строки и настройку через конфиг, что удобно и практично. По умолчанию никакой гуйни нету, инфомация выводится через osd. В vlc вроде сразу же гуёвина и настройка, вроде, вся через менюшку. А так его хвалят многие, так что должен быть неплох.
mpc - это вообще клиент для mpd, который только аудио из музыкальной библеотеки проигрывает. Не понимаю как его можно сравнивать с mplayer.

viktor954

mpc
в другом мире это сществующий только для того другого мира Media Player Classic. Некоторым он почему-то нравится.

procenkotanya

Я же правильно понял, что ты предполагаешь, что возможно у меня уменьшается частота проца для уменьшения энергопотребления?
Нет, я в первую очередь предполагаю, что у тебя кодеки скомпилены без оптимизаций, ибо в моём случае даже 600MHz с одним ядром хватало бы.

dangerr

Попробуй mplayer собрать с флагом cpudetection.
Собрал. Надпись изчезла. Спасибо, я что-то думал, что этот флаг нужен только когда предполагается использовать бинарник на других машинах. :)

dangerr

Нет, я в первую очередь предполагаю, что у тебя кодеки скомпилены без оптимизаций, ибо в моём случае даже 600MHz с одним ядром хватало бы.
Тогда я не понял причём здесь powertop?
Вот как у меня собраны mplayer, ffmpeg и libvpx:

[I] media-video/mplayer
Installed versions: 1.1.1-r1(06:24:07 PM 07/29/2013)(X a52 alsa bl cdparanoia cpudetection dts dv dvb dvd dvdnav enca encode
faad ftp gif gsm iconv jpeg libass lzo mad mmx mng network opengl osdmenu png quicktime rtc rtmp shm speex sse sse2 ssse3
theora toolame tremor truetype unicode v4l vdpau vorbis x264 xinerama xv xvid xvmc -3dnow -3dnowext -aalib -altivec -aqua -bidi
-bindist -bluray -bs2b -cddb -cdio -debug -dga -directfb -doc -dxr3 -faac -fbcon -ggi -ipv6 -jack -joystick -jpeg2k -ladspa -libcaca
-libmpeg2 -lirc -live -md5sum -mmxext -mp3 -nas -nut -openal -oss -pnm -pulseaudio -pvr -radio -rar -samba -sdl -tga -twolame
-vidix -xanim -xscreensaver -zoran KERNEL="linux" VIDEO_CARDS="-mga -s3virge -tdfx")

[I] media-video/ffmpeg
Installed versions: 1.2.1(06:23:26 PM 07/29/2013)(aacplus alsa amr avx bzip2 cpudetection encode fontconfig gsm
hardcoded-tables iconv mmx mp3 network rtmp schroedinger speex ssse3 theora threads truetype v4l vdpau vorbis vpx x264 xvid zlib
-3dnow -3dnowext -X -aac -altivec -bindist -bluray -cdio -celt -debug -doc -examples -faac -fdk -flite -frei0r -gnutls -iec61883
-ieee1394 -jack -jpeg2k -libass -libcaca -libsoxr -libv4l -mmxext -modplug -neon -openal -openssl -opus -oss -pic -pulseaudio -sdl
-static-libs -test -twolame -vaapi -vis FFTOOLS="-aviocat -cws2fws -ffescape -ffeval -fourcc2pixfmt -graph2dot -ismindex -pktdumper
-qt-faststart -trasher")

[I] media-libs/libvpx
Installed versions: 1.2.0_pre20130625(10:08:10 AM 07/09/2013)(mmx sse sse2 sse4_1 ssse3 threads -altivec -doc -postproc
-sse3 -static-libs -test ABI_X86="64 -32 -x32")

А вот кусок про одно из ядер из /proc/cpuinfo

processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel(R) Core(TM) i7-2760QM CPU @ 2.40GHz
stepping : 7
microcode : 0x28
cpu MHz : 2394.473
cache size : 6144 KB
physical id : 0
siblings : 8
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64
monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm
ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid
bogomips : 4790.48
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

Что-то ещё нужно, чтобы сказать правильно ли у меня собраны кодеки?

procenkotanya

powertop там во вторую очередь: после "если всё правильно скомпилено"
-O2 в CFLAGS есть? А если найду? Можешь попробовать поставить perf и глянуть perf top во время тормозов, правда без -g и FEATURES=nostrip (или splitdebug) он толком ничего не покажет.

dangerr

-O2 в CFLAGS есть?
$ grep CFLAGS /etc/portage/make.conf
CFLAGS="-O2 -pipe -march=native -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"

Вот что показывает perf top -g во время воспроизведения видео:

PerfTop: 3224 irqs/sec kernel: 6.2% exact: 0.0% [4000Hz cycles], (all, 8 CPUs)
--------------------------------------------------------------------------------------------------------

91.03% libavcodec.so.54.92.100 [.] 0x000000000039927d
3.61% libvdpau_nvidia.so.325.08 [.] 0x0000000000081d50
1.13% libc-2.17.so [.] 0x000000000008ad86
0.35% libasound.so.2.0.0 [.] 0x0000000000083a10
0.25% libavcodec.so.54.92.100 [.] av_resample
0.23% nvidia_drv.so [.] 0x00000000004fedf3
0.20% perf [.] 0x0000000000040881
0.17% mplayer [.] 0x00000000000536a8
0.13% [nvidia] [k] _nv012246rm
0.11% libxul.so [.] 0x00000000019732e0
0.08% [kernel] [k] __schedule
0.06% libasound.so.2.0.0 [.] snd_pcm_lfloat_convert_float_
0.06% [vdso] [.] 0x000000000000070c
0.05% urxvt [.] 0x000000000001ab4a
0.05% [kernel] [k] find_busiest_group
0.04% liblua.so.5.1.5 [.] 0x0000000000016341
0.04% [snd_hda_intel] [k] azx_interrupt
0.04% libpthread-2.17.so [.] pthread_mutex_lock
0.04% libc-2.17.so [.] __sched_yield
0.04% [kernel] [k] _raw_spin_lock
0.03% [kernel] [k] system_call
0.03% [kernel] [k] system_call_after_swapgs
0.03% [kernel] [k] pick_next_task_fair
0.03% [kernel] [k] _raw_spin_lock_irqsave

FEATURES у меня деволтные стоят. Даже не разбирался что это - дефолтное поведение portage всегда устраивало. В списке по emerge --info nostrip или splitdebug нет.

procenkotanya

У тебя не включен USE mmxext. cpudetection не при чём.
Пересобери и покажи как выглядит perf stat mplayer -nosound -benchmark -vo null ... на том тестовом видео.

dangerr

У тебя не включен USE mmxext. cpudetection не при чём.
Ну да, его нет в /proc/cpuinfo, как и mmx2 - только просто mmx.
Пересобрал с mmxext (cpudetection тоже пока оставил) и вот вывод:

$ perf stat mplayer -nosound -benchmark -vo null 2011\ -\ endless.webm
MPlayer 1.1-4.7.3 (C) 2000-2012 MPlayer Team

Playing 2011 - endless.webm.
libavformat version 54.63.104 (external)
libavformat file format detected.
[lavf] stream 0: video (vp8), -vid 0
[lavf] stream 1: audio (vorbis), -aid 0
VIDEO: [VP80] 1920x1080 0bpp 1000.000 fps 0.0 kbps ( 0.0 kbyte/s)
Load subtitles in ./
Opening video filter: [ass auto=1]
[ass] auto-open
==========================================================================
Forced video codec: ffh264vdpau
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
libavcodec version 54.92.100 (external)
Selected video codec: [ffvp8] vfm: ffmpeg (FFmpeg VP8)
==========================================================================
Audio: no sound
Starting playback...
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
VO: [null] 1920x1080 => 1920x1080 Planar YV12
V: 199.6 0/ 0 90% 1% 0.0% 0 0


BENCHMARKs: VC: 180.859s VO: 2.319s A: 0.000s Sys: 0.488s = 183.666s
BENCHMARK%: VC: 98.4717% VO: 1.2626% A: 0.0000% Sys: 0.2656% = 100.0000%

Exiting... (End of file)

Performance counter stats for 'mplayer -nosound -benchmark -vo null 2011 - endless.webm':

183375.365364 task-clock # 0.996 CPUs utilized
5,494 context-switches # 0.030 K/sec
52 cpu-migrations # 0.000 K/sec
31,220 page-faults # 0.170 K/sec
439,664,931,570 cycles # 2.398 GHz
113,402,565,594 stalled-cycles-frontend # 25.79% frontend cycles idle
48,721,971,572 stalled-cycles-backend # 11.08% backend cycles idle
1,054,410,980,361 instructions # 2.40 insns per cycle
# 0.11 stalled cycles per insn
87,320,177,760 branches # 476.183 M/sec
2,310,694,678 branch-misses # 2.65% of all branches

184.068288951 seconds time elapsed

Тормоза неизменные.

procenkotanya

Инструкций должно быть ~210 лямов, а у тебя в пять раз больше. На всякий случай, размер файла 141946720, правильно?
Собери ffmpeg добавив -g в CFLAGS, и FEATURES=nostrip, после этого perf сможет хотя бы функции в нём различать.

dangerr

du -b выдаёт именно такую цифру.
Значит я отредактировал /etc/portage/make.conf
Отредактировал строку:
CFLAGS="-O2 -pipe -march=native -fomit-frame-pointer -g"
И добавил такую:
FEATURES="nostrip"
Выполнил:
emerge -1 ffmpeg
и потом снова ту же команду:

$ perf stat mplayer -nosound -benchmark -vo null 2011\ -\ endless.webm
MPlayer 1.1-4.7.3 (C) 2000-2012 MPlayer Team

Playing 2011 - endless.webm.
libavformat version 54.63.104 (external)
libavformat file format detected.
[lavf] stream 0: video (vp8), -vid 0
[lavf] stream 1: audio (vorbis), -aid 0
VIDEO: [VP80] 1920x1080 0bpp 1000.000 fps 0.0 kbps ( 0.0 kbyte/s)
Load subtitles in ./
Opening video filter: [ass auto=1]
[ass] auto-open
==========================================================================
Forced video codec: ffh264vdpau
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
libavcodec version 54.92.100 (external)
Selected video codec: [ffvp8] vfm: ffmpeg (FFmpeg VP8)
==========================================================================
Audio: no sound
Starting playback...
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
VO: [null] 1920x1080 => 1920x1080 Planar YV12
V: 199.6 0/ 0 90% 1% 0.0% 0 0


BENCHMARKs: VC: 180.361s VO: 2.327s A: 0.000s Sys: 0.471s = 183.159s
BENCHMARK%: VC: 98.4725% VO: 1.2703% A: 0.0000% Sys: 0.2573% = 100.0000%

Exiting... (End of file)

Performance counter stats for 'mplayer -nosound -benchmark -vo null 2011 - endless.webm':

182854.874124 task-clock # 0.996 CPUs utilized
6,464 context-switches # 0.035 K/sec
62 cpu-migrations # 0.000 K/sec
28,529 page-faults # 0.156 K/sec
438,412,712,114 cycles # 2.398 GHz
111,987,789,260 stalled-cycles-frontend # 25.54% frontend cycles idle
48,334,137,374 stalled-cycles-backend # 11.02% backend cycles idle
1,054,355,324,635 instructions # 2.40 insns per cycle
# 0.11 stalled cycles per insn
87,303,262,580 branches # 477.446 M/sec
2,312,668,086 branch-misses # 2.65% of all branches

183.552788883 seconds time elapsed

Я что-то сделал не так? Новой инфы не вижу...

procenkotanya

Теперь perf top или perf record/perf report должны показывать отдельные функции в libavcodec.so

dangerr

В portage появилось обновление для mplayer, версия 1.2_pre20130729.
Я его поставил. Теперь и без 4 нитей перестало тормозить и вместо 99% показывает в районе 25. Видимо, пофиксили.

procenkotanya

Довольно странно, не вижу подобных фиксов и даже обсуждений.

dangerr

Могу в принципе даунгрейднуться и продолжить поиски. :)
(Мне в принципе интересно что же там такое было)

procenkotanya

Мне тоже

dangerr

ok, завтра займёмся. :cool:

agaaaa

libavcodec version 54.92.100 (external)
Один я эту строчку заметил?
Не значит ли она, что тебе надо libavcodec пересобирать, а не ffmpeg?

procenkotanya

Не один, не значит. В gentoo пакеты не подразбиваются по компонентам, так что libavcodec ставится в составе ffmpeg с его бинарниками и другими либами.

dangerr

Добрался наконец до пациента, отдаунгрейдил mplayer и... тормоза не вернулись!
Посмотрел что ещё было обновлено. ffmpeg и libvpx не обновлялись. Откатил на всякий случай mesa. Как я понимаю, раз узкое место было декодирование, то она никак не должна влиять, но больше я не знаю что тут откатывать. В общем, тоже ничего не поменялось.
Вот список того, что обновилось, может есть какие идеи?

These are the packages that would be merged, in order:

Calculating dependencies ..... ...... done!
[ebuild U ] app-arch/bzip2-1.0.6-r4 [1.0.6-r3] USE="-static -static-libs" ABI_X86="(64%*) -32% (-x32)" 0 kB
[ebuild U ] virtual/libiconv-0-r1 [0] ABI_X86="(64%*) -32% (-x32)" 0 kB
[ebuild U ] media-libs/vo-amrwbenc-0.1.3 [0.1.2-r1] USE="-examples -static-libs" ABI_X86="(64) -32 (-x32)" 595 kB
[ebuild U ] dev-libs/gobject-introspection-common-1.36.0 [1.34.2] 1,173 kB
[ebuild U ] media-sound/wavpack-4.60.1-r1 [4.60.1] USE="mmx -static-libs%" ABI_X86="(64%*) -32% (-x32)" 0 kB
[ebuild U ] sys-power/acpid-2.0.19 [2.0.18] USE="(-selinux)" 148 kB
[ebuild U ] app-emulation/emul-linux-x86-baselibs-20130224-r1 [20130224] USE="development" ABI_X86="-32%" 0 kB
[ebuild N ] virtual/service-manager-0 USE="(-prefix)" 0 kB
[ebuild U ] app-admin/eselect-postgresql-1.2.0 [1.1.2] 4 kB
[ebuild U ] sys-libs/zlib-1.2.8-r1 [1.2.8] USE="minizip -static-libs" ABI_X86="(64%*) -32% (-x32)" 0 kB
[ebuild U ] x11-proto/videoproto-2.3.2 [2.3.1-r1] ABI_X86="(64) -32 (-x32)" 117 kB
[ebuild U ] media-libs/speex-1.2_rc1-r2 [1.2_rc1-r1] USE="ogg sse -static-libs" ABI_X86="(64%*) -32% (-x32)" 0 kB
[ebuild U ] media-libs/libdvdread-4.2.0-r1 [4.2.0] USE="-css" ABI_X86="(64%*) -32% (-x32)" 0 kB
[ebuild U ] dev-libs/libgcrypt-1.5.3:0/11 [1.5.2-r1:0/11] USE="-static-libs" 1,474 kB
[ebuild U ] media-libs/libdca-0.0.5-r3 [0.0.5-r2] USE="-debug -oss -static-libs" ABI_X86="(64%*) -32% (-x32)" 0 kB
[ebuild U ] media-libs/libmad-0.15.1b-r8 [0.15.1b-r7] USE="-debug -static-libs" ABI_X86="(64%*) -32% (-x32)" 0 kB
[ebuild U ] media-sound/cdparanoia-3.10.2-r6 [3.10.2-r5] USE="-static-libs" ABI_X86="(64%*) -32% (-x32)" 0 kB
[ebuild U ] x11-apps/iceauth-1.0.6 [1.0.5] 131 kB
[ebuild U ] media-libs/libdvdnav-4.2.0-r1 [4.2.0] ABI_X86="(64%*) -32% (-x32)" 0 kB
[ebuild U ] dev-libs/nss-3.15.1 [3.15] USE="-utils" 6,140 kB
[ebuild U ] x11-libs/libXfont-1.4.6 [1.4.5-r1] USE="bzip2 truetype -doc -ipv6 -static-libs" 478 kB
[ebuild U ] sys-apps/lm_sensors-3.3.4 [3.3.3-r2] USE="-sensord -static-libs" 169 kB
[ebuild U ] media-libs/libcuefile-477-r1 [477] ABI_X86="(64%*) -32% (-x32)" 0 kB
[ebuild U ] media-libs/libreplaygain-477-r1 [477] ABI_X86="(64%*) -32% (-x32)" 0 kB
[ebuild U ] media-sound/musepack-tools-465-r1 [465] ABI_X86="(64%*) -32% (-x32)" 0 kB
[ebuild U ] media-libs/fontconfig-2.10.92:1.0 [2.10.2-r1:1.0] USE="-doc -static-libs" ABI_X86="(64) -32 (-x32)" 1,490 kB
[ebuild U ] sys-apps/portage-2.1.13.2 [2.1.12.13] USE="(ipc) -build -doc -epydoc (-pypy2_0) -python2 -python3 (-selinux)
-xattr" LINGUAS="-ru" PYTHON_TARGETS="python2_7 python3_3 -pypy1_9 -pypy2_0 -python2_6 -python3_1 -python3_2
(-python3_4)" 875 kB
[ebuild U ] dev-python/setuptools-0.9.8 [0.9.6] PYTHON_TARGETS="python2_7 python3_3 -pypy1_9 -pypy2_0 -python2_5
-python2_6 -python3_1 -python3_2" 749 kB
[ebuild U ] sys-apps/kmod-14-r1 [14] USE="lzma openrc%* tools zlib -debug -doc -static-libs" 0 kB
[ebuild U ] x11-themes/gnome-icon-theme-3.8.2 [3.6.2] USE="-branding" 16,238 kB
[ebuild U ] net-print/cups-1.6.3-r2 [1.6.3-r1] USE="ssl threads -X -acl -dbus -debug -filters -gnutls -java -kerberos -lprng-compat
-pam -python (-selinux) -static-libs -usb -xinetd -zeroconf" LINGUAS="-ca -es -fr -ja -ru" PYTHON_SINGLE_TARGET="python2_7%*
-python2_5% -python2_6%" PYTHON_TARGETS="python2_7%* -python2_5% -python2_6%" 0 kB
[ebuild NS ] sys-kernel/vanilla-sources-3.2.49:3.2.49 [3.2.44:3.2.44, 3.2.48:3.2.48] USE="-build -deblob -symlink" 920 kB
[ebuild U ] media-libs/glew-1.10.0-r1:0/1.10 [1.9.0:0/0] USE="-doc -static-libs" 555 kB
[ebuild U ] sys-power/powertop-2.4 [2.3] USE="unicode -X" 618 kB
[ebuild U ] dev-libs/glib-2.36.3-r1:2 [2.34.3:2] USE="-debug (-fam) (-selinux) -static-libs -systemtap {-test} -utils -xattr"
PYTHON_TARGETS="python2_7%* -python2_5% -python2_6%" 6,472 kB
[ebuild U ] dev-libs/atk-2.8.0 [2.6.0] USE="-introspection -nls {-test%}" 620 kB
[ebuild U ] dev-cpp/glibmm-2.36.2:2 [2.34.1:2] USE="-debug -doc -examples {-test}" 2,256 kB
[ebuild U ] net-libs/glib-networking-2.36.2 [2.34.2] USE="ssl -gnome -libproxy -smartcard {-test}" 345 kB
[ebuild U ] x11-libs/pango-1.34.1 [1.32.5] USE="X -debug -introspection" 992 kB
[ebuild U ] net-libs/libsoup-2.42.2:2.4 [2.40.3:2.4] USE="ssl -debug -introspection -samba {-test}" 716 kB
[ebuild U ] dev-cpp/atkmm-2.22.7 [2.22.6] USE="-doc" 383 kB
[ebuild U ] media-video/mplayer-1.2_pre20130729 [1.1.1-r1] USE="X a52 alsa bl cdparanoia dts dv dvb dvd dvdnav enca encode
faad ftp gif gsm iconv jpeg libass lzo mad mmx mmxext mng network opengl osdmenu png rtc rtmp shm speex sse sse2 ssse3 theora
toolame truetype unicode v4l vdpau vorbis x264 xinerama xv xvid xvmc -3dnow -3dnowext -aalib (-altivec) (-aqua) -bidi -bindist
-bluray -bs2b -cddb -cdio -cpudetection -debug -dga -directfb -doc -dxr3 -faac -fbcon -ggi -ipv6 -jack -joystick -jpeg2k -ladspa -libcaca
-libmpeg2 -lirc -live -md5sum -mp3 -nas -nut -openal -oss -pnm -pulseaudio -pvr -radio -rar -samba -sdl -tga -tremor* -twolame
(-vidix) -xanim -xscreensaver -zoran (-quicktime%*)" VIDEO_CARDS="-mga -s3virge -tdfx" 5,233 kB
[ebuild U ] dev-cpp/pangomm-2.34.0:1.4 [2.28.4:1.4] USE="-doc" 504 kB
[ebuild R ] app-portage/layman-2.0.0 USE="git mercurial subversion -bazaar -cvs -darcs {-test}" PYTHON_TARGETS="python2_7
-pypy2_0% -python2_6" 0 kB
[ebuild U ] app-emulation/emul-linux-x86-xlibs-20130224-r2 [20130224] USE="(development) opengl" ABI_X86="-32%" 0 kB
[ebuild U ] x11-libs/libpciaccess-0.13.2 [0.13.1-r1] USE="zlib -minimal -static-libs" ABI_X86="(64) -32 (-x32)" 351 kB
[ebuild U ] sys-fs/eudev-1.2_beta [1.1] USE="hwdb keymap kmod modutils openrc rule-generator -doc -gudev -introspection
(-selinux) -static-libs {-test%}" 31 kB
[ebuild U ] virtual/udev-206 [200] USE="kmod -gudev -hwdb -introspection (-selinux) -static-libs (-keymap%*)" 0 kB
[ebuild U ] sys-apps/hwids-20130717-r1 [20130717] USE="udev" 8 kB
[ebuild U ] media-libs/mesa-9.1.5 [9.1.4] USE="egl gallium gbm nptl openvg shared-glapi vdpau xa xorg xvmc -bindist -classic
-debug -gles1 -gles2 -llvm -osmesa -pax_kernel -pic (-r600-llvm-compiler) (-selinux) -wayland"
PYTHON_SINGLE_TARGET="python2_7 -python2_6" PYTHON_TARGETS="python2_7 -python2_6" VIDEO_CARDS="-i915 -i965 -intel
-nouveau -r100 -r200 -r300 -r600 -radeon (-radeonsi) -vmware" 5,985 kB

Total: 50 packages (47 upgrades, 1 new, 1 in new slot, 1 reinstall), Size of downloads: 55,754 kB

Ядро Linux я не обновлял. Только поставил сорцы.

procenkotanya

Забавно, не вижу что могло повлиять, но судя по тому, что количество инструкций было 5 раз больше, наиболее вероятным мне кажется что в тот раз -O2 из CFLAGS куда-то пропало.

dangerr

наиболее вероятным мне кажется что в тот раз -O2 из CFLAGS куда-то пропало
Мне это кажется наиболее невероятным. :)
Я один раз это поставил и больше не менял. Когда ты сказал, добавил в CFLAGS -g, потом перед обновлением его убрал.

procenkotanya

Вообще да, если ffmpeg не обновлялся, то тормоза были не в libavcodec, а сам mplayer заставлял его делать много (лишней) работы. Загадочно.

apl13

gentoo
в другом мире это сществующий только для того другого мира Media Player Classic.
И то правда!
Оставить комментарий
Имя или ник:
Комментарий: