LINUX.ORG.RU

DVD и XvMC


0

0

На днях решил начать борьбу с мерзостным дёрганием картинки при смещении камеры в фильмах.

Мерзостное дёргание присутствует на всех виденных мной источниках: в линуксе (mplayer и kaffeine), в MacBook Pro (стандартный макосёвый DVD проигрыватель) и на довольно дорогом железном DVD-плеере

Но недавно вспомнил, что у nvidia в доке были слова motion compensation. С помощью гугла и чьей-то мамы собрал xine с поддержкой xvmc, и поднял под ней лицензионный DVD.

Поток раскодирует однозначно карта, так как эта дрянь рисуется в оверлее, поверх всех окон, и мерзостно мигает при перемещении окна, плюс процессор не занят совсем

в /etc/X11/XvMCConfig прописана libXvMCNVIDIA_dynamic.so

15 минут пробы чудо-технологии показали следующее:

1. на смещении панорамных видов эта дрянь дёргается сильнее, чем вариант через софтовый декодер + xv

2. при показе/скрытии любой текстовой информации (времени, субтитров) оно немилосердно мигает

3. качество раскодировании неимоверно мерзотное. Такое ощущение, что смотришь экранку, а не лицензионный DVD

Теперь, собственно, вопрос: xvmc для NVidia у кого-то работает по-человечески? Гугель вменяемого ничего не рассказал, то есть либо я что-то натупил, либо xxmc видео выход не работает нормально ни у кого, и на него забили болт

★★★★

1) а ты уверен, что у тебя на самом деле не пиратка?

2) попробуй сграбить dvd и посмотреть с жесткого диска (это на предмет задержек непосредственно при чтении диска)

mplayer -dumpstream dvd://

mplayer stream.dump

AEP ★★★★★
()
Ответ на: комментарий от AEP

1) а ты уверен, что у тебя на самом деле не пиратка?

Проверял на нескольких дисках. Вообще, сабжевый диск — властелин колец, со всякими голограммами, доп. материалами, и английской дорожкой.

2) попробуй сграбить dvd и посмотреть с жесткого диска (это на предмет задержек непосредственно при чтении диска)

the same. только грабил просто образом, а mplayer'у говорил -dvd-device lotr.iso

adarovsky ★★★★
() автор топика
Ответ на: комментарий от anonymous

>эта дрянь под вендой отлично работает. а в линухах отсасывает

повторяю для альтернативно одарённых: проверял везде.

На самом деле, проблема известная: видео идёт 24 кадра в секунду, реальная частота обновления экрана от 50 щас 85 герц, что не кратно этим 24 кадрам, В итоге получается картина типа 2 одинаковых кадра, 3 одинаковых кадра, 2 кадра, 3, 2, 2, 3, ... Вот этот переход и создаёт ощущение рваности

Или ты про встроенный кодек? Тогда тем более дрянь, если его алгоритм от оси зависит. Софтовый декодер лучше в разы. Или у вас в венде и софтовые кодеки такие же поганые? :)

adarovsky ★★★★
() автор топика
Ответ на: комментарий от adarovsky

Ничё не понял что ты тут понаписал. Тебе я чётко сказал: хочешь PureVideo -- ставь венду и не компостируй честнЫм людям мозги, ибо это проприетарная технология (надеюсь, смысл слов пояснять не надо?)

Чё у тебя там за 24 кадра я хз, бери nvidia-config или как там оно и крути настройки синхронизации, всё работает, один ты, вендузятник-кривые-ручки, никак ничего настроить не можешь.

anonymous
()
Ответ на: комментарий от adarovsky

> повторяю для альтернативно одарённых: проверял везде.

Да выкинь ты эту палёную болванку, которая у тебя дёргается, и скачай нормальную пиратку с торрента.

anonymous
()
Ответ на: комментарий от anonymous

>Чё у тебя там за 24 кадра я хз, бери nvidia-config или как там оно и крути настройки синхронизации, всё работает

оно и у меня работает, но качество не устраивает. Скажу больше, в нашем кинотеатре болезнь у фильмов такая же. Так же дёргается. Чтобы это осознать, надо, правда, было смотреть старые фильмы, ещё плёночные

adarovsky ★★★★
() автор топика
Ответ на: комментарий от anonymous

>Да выкинь ты эту палёную болванку, которая у тебя дёргается, и скачай нормальную пиратку с торрента

дёргаются _абсолютно все dvd_, _на всех проигрывателях_. Какое из слов тебе непонятно? Нечего посоветовать — помолчи лучше, за умного сойдёшь

adarovsky ★★★★
() автор топика
Ответ на: комментарий от adarovsky

> дёргаются _абсолютно все dvd_, _на всех проигрывателях_

Сходи к врачу, пусть тебе нервный тик глаза вылечит.

anonymous
()
Ответ на: комментарий от adarovsky

> Чтобы это осознать, надо, правда, было смотреть старые фильмы, ещё плёночные

Простой совет: читай лучше книги...

anonymous
()
Ответ на: комментарий от anonymous

чего-то я разницы между софт. и аппарат. не вижу, что по выводу картинки, что по нагрузке на процессор. В /etc/X11/XvMCConfig указана таже библиотека, например, файл 1080i.ts :

mplayer -vo xv , нагрузка проца 35-50%

mplayer -vo xvmc -vc ffmpeg12mc , тоже самое

anonymous
()
Ответ на: комментарий от anonymous

проверить, что работает XvMC просто: оно рисуется в своём оверлее, и поверх него видно только указатель мыши. Всяческие окна им перекрываются всегда. Может, ещё работает какая-то софтовая реализация этого XvMC? Читни README к nvidia, я так сходу не помню, может, что-то надо разрешать дополнительно

adarovsky ★★★★
() автор топика
Ответ на: комментарий от adarovsky

Обнаружен TS формат файла!
VIDEO MPEG2(pid=17) AUDIO A52(pid=20) NO SUBS (yet)!  PROGRAM N. 1
VIDEO:  MPEG2  1920x1088  (aspect 3)  29.970 fps  38810.4 kbps (4851.3 kbyte/s)
vo_xvmc: X-Video extension 2.2
vo_xvmc: X-Video MotionCompensation Extension version 1.1
==========================================================================
Форсирован видеокодек: ffmpeg12mc
Открываю декодер видео: [ffmpeg] FFmpeg's libavcodec codec family
[VD_FFMPEG] XVMC ускоренный кодек.
Выбран видеокодек: [ffmpeg12mc] vfm: ffmpeg (FFmpeg MPEG-1/2 (XvMC))
==========================================================================
==========================================================================
Открываю декодер аудио: [liba52] AC3 decoding with liba52
Using SSE optimized IMDCT transform
Using MMX optimized resampler
AUDIO: 48000 Hz, 2 ch, s16le, 384.0 kbit/25.00% (ratio: 48000->192000)
Выбран аудиокодек: [a52] afm: liba52 (AC3-liba52)
==========================================================================
AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)
Начало воcпроизведения...
[VD_FFMPEG] XVMC-ускоренный MPEG-2.
[VD_FFMPEG] Пробую pixfmt=0.
VDec: запрос vo config - 1920 x 1088 (предпочтимое цветовое пространство: MPEG1/2 Motion Compensation and IDCT)
VDec: использую MPEG1/2 Motion Compensation and IDCT в качестве выходного csp (не 0)
Movie-Aspect - 1.78:1 - премасштабирую для коррекции соотношения сторон фильма.
VO: [xvmc] 1920x1088 => 1934x1088 MPEG1/2 Motion Compensation and IDCT  [fs] [zoom]
[ASPECT] Предупреждение: Не найдено подходящего разрешения!
vo_xvmc: Port 355 grabed
vo_xvmc: Found matching surface with id=54434449 on 355 port at 0 adapter
vo_xvmc: Allocated Direct Context
vo_xvmc: data_blocks allocated
vo_xvmc: mv_blocks allocated
vo_xvmc: Motion Compensation context allocated - 8 surfaces
vo_xvmc: idct=1 unsigned_intra=0
vo_xvmc: looking for OSD support
    Subpicture id 0x34344149
vo_xvmc: OSD support by additional frontend rendering
[ASPECT] Предупреждение: Не найдено подходящего разрешения!

anonymous
()
Ответ на: комментарий от anonymous

интересно... а что xine скажет? У него есть видеодрайвер xxmc.

И как себя окна ведут? Какая версия дров? Может, mplayer как-то по-другому поступает? Например, поток раскодирует карта, а в видеопамять уже он льёт?

adarovsky ★★★★
() автор топика
Ответ на: комментарий от adarovsky

Окна при проигрывании в мплеере нормально ведут себя, как обычно, никаких дерганий и пр.

дрова Нвидии 169.07

ксин при выводе ругается или виснет:

xine: xcb_io.c:285: _XAllocID: Проверочное утверждение `!(dpy->flags & (1L << 3))' не выполнено. Аварийный останов

Кстати, тут читал про всякие НД - поддержки в разных картах. Оказывается на некоторых картах Виа с драйверами опенхром есть поддержка НД (МПЕГ АВЦ).

На http://www.mythtv.org/wiki/index.php/XvMC есть таблица, где уазаны примеры ускорения НД с помощью xvmс на разных картах, в т.ч. и на Нвидиа, что очень странно, поскольку в xvmc реализовано только MC, а для НД необходимы iDCT, VLD и пр.

Решение некоторых проблем с xvmc там же: http://www.mythtv.org/wiki/index.php/XvMC#Tips_and_Tricks

anonymous
()
Ответ на: комментарий от anonymous

Мне mplayer сказал вот так:

VIDEO:  MPEG2  720x576  (aspect 3)  25.000 fps  7500.0 kbps (937.5 kbyte/s)
vo_xvmc: X-Video extension 2.2
vo_xvmc: X-Video MotionCompensation Extension version 1.1
==========================================================================
Форсирован видеокодек: ffmpeg12mc
Открываю декодер видео: [ffmpeg] FFmpeg's libavcodec codec family
[VD_FFMPEG] XVMC ускоренный кодек.
Выбран видеокодек: [ffmpeg12mc] vfm: ffmpeg (FFmpeg MPEG-1/2 (XvMC))
==========================================================================
==========================================================================
Открываю декодер аудио: [liba52] AC3 decoding with liba52
Using SSE optimized IMDCT transform
Using MMX optimized resampler
AUDIO: 48000 Hz, 2 ch, s16le, 448.0 kbit/29.17% (ratio: 56000->192000)
Выбран аудиокодек: [a52] afm: liba52 (AC3-liba52)
==========================================================================
AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)
Начало воcпроизведения...
[VD_FFMPEG] XVMC-ускоренный MPEG-2.
[VD_FFMPEG] Пробую pixfmt=0.
VDec: запрос vo config - 720 x 576 (предпочтимое цветовое пространство: MPEG1/2 Motion Compensation and IDCT)
VDec: использую MPEG1/2 Motion Compensation and IDCT в качестве выходного csp (не 0)
Movie-Aspect - 1.78:1 - премасштабирую для коррекции соотношения сторон фильма.
VO: [xvmc] 720x576 => 1024x576 MPEG1/2 Motion Compensation and IDCT
vo_xvmc: Port 356 grabed
vo_xvmc: Found matching surface with id=54434449 on 356 port at 0 adapter
vo_xvmc: Allocated Direct Context
vo_xvmc: data_blocks allocated
vo_xvmc: mv_blocks allocated
vo_xvmc: Motion Compensation context allocated - 8 surfaces
vo_xvmc: idct=1 unsigned_intra=0
vo_xvmc: looking for OSD support
    Subpicture id 0x34344149
vo_xvmc: OSD support by additional frontend rendering
[mpegvideo_xvmc @ 0x87d9250]ac-tex damaged at 15 7
[mpegvideo_xvmc @ 0x87d9250]Warning MVs not available
[mpegvideo_xvmc @ 0x87d9250]concealing 1305 DC, 1305 AC, 1305 MV errors

mplayer показывает кадр, затем показывает то, что находится под
окном, потом показывает новый кадр.

Просто на xv играет без ошибок. xine тоже играет, 
но мигает, когда рисует сабтитры или ещё какую on-screen информацию.

Есть мнение, что на XvMC имеет смысл забить...

adarovsky ★★★★
() автор топика
Ответ на: комментарий от adarovsky

Наверно так, жаль, что под лин нет поддержки НД, не используется мощь граф.процессора. Кстати, для АТИ и не только, как временное (постоянное) решение использовать пикс.шейдеры, но это на словах, а на деле никто еще и не начинал. Для Нвидиа в проекте нуво (nouveau), какой-то перец чего-то мутит, надеюсь что у него получится. В виндовс тоже не гладко, всякие рипы в .мкв не ускоряются, по крайней мере у меня не получилось, может чего-то делаю не так :).

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.