Xineliboutput - VDR xine-lib output device

  • free-x настойчиво рекомендовал xineliboutput, я не менее настойчиво отказывался это делать, полагая что лучше детища Нислла- vdr-xine не может быть ничего. Как оказалось - зря.
    Впечатления от cvs версии xineliboutput - самый лучшие. Не понимаю почему, но загрузка моего Р4-3ГГц упала по сравнению с vdr-xine. К примеру, при просмотре hdtv с vdr-xine у меня были реальные тормоза в системе. С xineliboutput такого нет. Понятно дело, что моего проца недостаточно для комфортного просмотра hdtv, но кажется что xineliboutpiut - очень достойный выбор. Тем более он активно (судя по логам в cvs) развивается - на днях к примеру, там автор что-то сломал :)
    Будем надеяться, что починит.


    Written by: Petri Hintukainen <phintuka@users.sourceforge.net>


    Project's homepage: Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.


    Latest version available at: Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.


    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.

  • автор xine-lib рекомендует обновить xine-lib


    Цитата


    <_ds_> Some of the patches which have gone in today should help, though, but we still need improved content type detection in the TS demuxer

  • Заинтриговал, надо покопать. Эта тема движется, в то время, как Xine-Ui застрял на месте.
    Я заметил, что с ним загрузка CPU сильно зависит от невыясненных обстоятельств. Иногда получается лихо, а иногда не очень на одних и тех же исходниках и при всех прочих равных условиях.
    Может, тоже случайно совпало у тебя с xinliboutput?

  • Цитата

    Со слов пользователя 1455


    Извиняюсь за темноту.
    Я с xineliboutput вплотную не занимался (так, один раз...), но предполагаю, что плагин для ведра вообще не имеет собственного OSD. Я не прав ?


    не прав, конечно. У xineliboutput масса настроек работает через осд меню. И масса горячих клавиш на клаве и на пульте.


    Цитата


    Если же говорить о Xine-Ui, то это полноценный проигрыватель со своим собственным OSD.


    будем точнее - полноценный проигрыватель - это xine-lib + xine-ui. Все вместе - проигрываетель xine. И вот эту связку можно внедрить в вдр с помощью двух плагинов - vdr-xine, xineliboutput.



    все, что ты процитировал выше, это фича xine, а не vdr-xine. Соответственноб xineliboutput тоже использует все эти возможности проигрывателя xine (xine=xine-lib+xine-ui)
    кучу горячих клавиш для xineliboutput найдешь в доке на него
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.

  • Цитата

    Со слов пользователя 1455
    Заинтриговал, надо покопать. Эта тема движется, в то время, как Xine-Ui застрял на месте.


    ты хотел сказать - vdr-xine застрял на месте ?


    Цитата


    Я заметил, что с ним загрузка CPU сильно зависит от невыясненных обстоятельств. Иногда получается лихо, а иногда не очень на одних и тех же исходниках и при всех прочих равных условиях.
    Может, тоже случайно совпало у тебя с xinliboutput?


    нет, я специально проверял - загружал vdr-xine и с ним начинало тормозить на тех же самых hdtv каналах. Гружу вдр с сабжем - тормозов меньше.

  • Ясно, просветил хоть. Значит, буду копать в этом направлении.


    Но мне кажется, что с точи зрения загрузки CPU всё-таки дело не в том, что используется в качестве выхода, а как это собралось и работает.
    Представляешь, сколько я не бился ни в 32-х битной системе, ни новом релизе openSUSE, ничего подобного с FFMPEG-ом мне получить не удалось:


    Пожалуйста зарегистрируйся для просмотра данного изображения.


    Средний простой составляет 30% ! Никак не могу поймать за хвост, как это у меня получилось...
    Тупо ставлю начисто openSUSE 10.3, запускаюсь с лайв CD, подмонтирую диски, переписываю поверх свой архив наработок и получаю загрузку CPU, как на скриншоте. Идёт очень гладко, звук не пропадает. Причём, это на xshm. А это ведь самый "тяжёлый" канал !
    Видимо, придётся взять для экспериментов ещё один HDD, т.к. откат на "удачную" сборку занимает очень много времени.

  • Цитата

    Со слов пользователя 1455
    Ясно, просветил хоть. Значит, буду копать в этом направлении.
    Но мне кажется, что с точи зрения загрузки CPU всё-таки дело не в том, что используется в качестве выхода, а как это собралось и работает.


    я использую вот такие опции при сборке


    ffmpeg from SVN
    ./configure --arch=i686 --cpu=pentium4 --enable-pthreads --enable-shared --enable-gpl --enable-postproc --disable-stripping --enable-liba52 --enable-libvorbis


    xine-lib
    CFLAGS='-g3 -O3 -pipe -march=pentium4' ./autogen.sh --with-external-ffmpeg --disable-dxr3 --without-caca


    xine-ui
    CFLAGS='-g3 -O3 -pipe -march=pentium4' ./autogen.sh --enable-vdr-keys --without-caca


    Цитата


    Представляешь, сколько я не бился ни в 32-х битной системе, ни новом релизе openSUSE, ничего подобного с FFMPEG-ом мне получить не удалось:


    а на чем получил этот результат ?


    Цитата


    Средний простой составляет 30% ! Никак не могу поймать за хвост, как это у меня получилось...
    Тупо ставлю начисто openSUSE 10.3, запускаюсь с лайв CD, подмонтирую диски, переписываю поверх свой архив наработок и получаю загрузку CPU, как на скриншоте. Идёт очень гладко, звук не пропадает. Причём, это на xshm. А это ведь самый "тяжёлый" канал !
    Видимо, придётся взять для экспериментов ещё один HDD, т.к. откат на "удачную" сборку занимает очень много времени.


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

  • Цитата

    на чем получил этот результат ?


    Suse 10.3 x86_64, FFMpeg (дата не имеет значения), Xinelib 1.12, Xine-Ui 0.96svc,

    Цитата

    если ты получил хороший результат , то зачем куда-то откатываться ?


    Ты не понял. Откатываюсь, как раз, на рабочий вариант. =) Хочется сделать, чтобы на любом 2-х ядернике работало, но иногда настолько загоняю систему с этими экспериментами, что проще форматнуть всё и разбэкапиться.

  • подтверждаю - автор плагина - Petri Hintukainen пофиксил баг, который вызывал краш xine-lib при переключении с 1080i канала на канал со стандартным разрешением и наоборот.

  • Поставьте меня к тёплой стенке, но...


    Как я и думал, при использовании xineliboutput никакой разницы в загрузке CPU у меня не произошло.
    Чтобы не грузить систему плагинами, измерял загрузку с помощью KSysGuard, быстро перезапуская ведро либо с xine-ui, либо с xineliboutput.
    В обоих случаях загрузка CPU одинакова. Без плагинов, которые (естественно) тоже жрут немало, было где-то 33% на данном битрейте в данный короткий отрезок времени. Разница была только в том, что в KSysGuard с xine-ui график синего цвета, а с xineliboutput - жёлтого. =)


    Делал так:
    1. Изменил Makefile xineliboutput-а:
    XINELIBOUTPUT_FB = 1
    XINELIBOUTPUT_X11 = 1


    2. Собрал и кинул в папку с плагинами.


    3. В папке с исходниками xineliboutput сделал make install:
    Installing ///usr/local/lib/xine/plugins/1.21/xineplug_inp_xvdr.so
    Installing ///usr/local/lib/xine/plugins/1.21/post/xineplug_post_autocrop.so
    Installing ///usr/local/lib/xine/plugins/1.21/post/xineplug_post_swscale.so
    Installing ///usr/local/lib/xine/plugins/1.21/post/xineplug_post_audiochannel.so
    Installing ///usr/local/bin/vdr-fbfe
    Installing ///usr/local/bin/vdr-sxfe


    4. Использовал ту же папку video, на которую у меня уже имеется симлинк в корне.


    5. Запускал:
    cd /мой маршрут
    ./vdr -c /мой маршрут/vdr -v /мой маршрут/video -L /мой маршрут/vdr/plugins/lib -P'chanman' -P'text2skin' -P'xineliboutput --local=sxfe --video=xshm --audio=alsa --remote=none --post tvtime:method=Linear,cheap_mode=1,pulldown=0,use_progressive_frame_flag=1'
    (xv у меня через задницу работает, потому сижу на xshm).

  • сам этот плагин не пробовал - xine tvtime


  • Выяснил для себя, что xineliboutput таки может выводить нормально 16:9. Всё дело во фронтенде. Т.е. одна задача как-бы решена. Нужно идти в: настройки-модули расширения-xineliboutput-локальный фронтенд-соотношение сторон-16:9.


    Однако, возникла масса проблем. Собрать-то не проблема, только вот, что из этого получится...
    В 64-х битной Suse 10.3 невозможно собрать, как советует автор, библиотеку из hg clone Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу. потому, что для этой новейшей библиотеки ужЕ нужен gcc 4.3х. Но если даже его и поставить и репов Suse 11.0, то это повлечёт массу конфликтов зависимостей, да и некоторые старые плагины перестанут собираться.
    На новой 32( или 64)-х битной Suse 11.0 собирается только всё самое новейшее в силу новизны пакетов automake, autoconf, gettext, gcc и пр.


    Но дело в том, что в обоих случаях, у меня при равной нагрузке на CPU по сравнению с xine-ui, у меня xineliboutput дико тормозит. Ни чёрта не пойму, почему. В этой связи, возникло неск. вопросов:
    Как же тогда многие используют именно xineliboutput для просмотра h2.64 ?
    Поделитесь как его собираете, раз он на ваш взгляд более плавно воспроизводит картинку ?
    Почему ведро юзает два конфига, из которых один это секция в setup.conf самого ведра, а другой (в моём случае), в /root/.xine/config_xineliboutput ?
    Может быть, xineliboutput работает нормально только с Xv ? Попробуйте у себя включить xshm - будет ли тормозить намного заметнее, при той же загрузке CPU ?


    Короче, очень нужна помощь, т.к. xineliboutput позволяет чётко вписывать изображение в размер моего экрана и даже делает оверскан (то самое масштабирование, которого мне так не хватало) в пределах 0...10%.

  • Я использую. Давеча собрал все на Suse 11.0. Правда плагинов у меня - раз-два и обчелся, так что собралось все без особых проблем. Конфиг используется один - из root. Да, использую естественно Xv. Что-то мне помнится что xshm не использует аппаратное масштабирование и преобразование цветов, поэтому тормозить по сравнению с xv он будет по определению..

  • Цитата


    Однако, возникла масса проблем. Собрать-то не проблема, только вот, что из этого получится...
    В 64-х битной Suse 10.3 невозможно собрать, как советует автор, библиотеку из hg clone Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу. потому, что для этой новейшей библиотеки ужЕ нужен gcc 4.3х.


    я обычно пользуюсь тоже самыми последними версиями xine-lib-1.2, но ничего страшного не будет, если ты установишь hg версию xine-lib-1.1 или стабильную xine-lib 1.1.15


    Цитата


    Но если даже его и поставить и репов Suse 11.0, то это повлечёт массу конфликтов зависимостей, да и некоторые старые плагины перестанут собираться.
    На новой 32( или 64)-х битной Suse 11.0 собирается только всё самое новейшее в силу новизны пакетов automake, autoconf, gettext, gcc и пр.


    вот у меня на дебиане-unstable тоже многое что нового, все собирается.


    Цитата


    Но дело в том, что в обоих случаях, у меня при равной нагрузке на CPU по сравнению с xine-ui, у меня xineliboutput дико тормозит. Ни чёрта не пойму, почему.


    ты сравниваешь с vdr-xine ? xine-ui тут ни при чем.
    в отличие от винды, линукс тебе предоставляет кучу логов, из которых можно что-нибудь понять. Покажи логи вдр, xineliboutput, xine, ffmpeg в моменты торможения.


    Цитата


    Как же тогда многие используют именно xineliboutput для просмотра h2.64 ?


    ты хотел сказать - h.264 ?
    я использую cvs версию xineliboutput и тебе его рекомендую.


    Цитата


    Поделитесь как его собираете, раз он на ваш взгляд более плавно воспроизводит картинку ?


    make clean-plugins
    make plugins
    make install в каталоге xineliboutput


    при сборке плагина смотри на что он ругается.


    ffmpeg, xine-lib-1.2, xine-ui использую свежие
    вот как компилю их


    Цитата


    ffmpeg
    ./configure --arch=i686 --cpu=pentium4 --enable-pthreads --enable-shared --enable-gpl --enable-postproc --disable-stripping --enable-liba52 --enable-libvorbis


    Цитата


    xine-lib-1.2
    CFLAGS='-g3 -O3 -pipe -march=pentium4' ./autogen.sh --with-external-ffmpeg --disable-dxr3 --without-caca


    Цитата


    xine-ui
    CFLAGS='-g3 -O3 -pipe -march=pentium4' ./autogen.sh --enable-vdr-keys --without-caca


    Цитата


    Почему ведро юзает два конфига, из которых один это секция в setup.conf самого ведра, а другой (в моём случае), в /root/.xine/config_xineliboutput ?


    так это разные настройки для разных программ - вдр и xineliboutput


    Цитата


    Может быть, xineliboutput работает нормально только с Xv ? Попробуйте у себя включить xshm - будет ли тормозить намного заметнее, при той же загрузке CPU ?


    проверил на xshm - разницы с xv не заметил. Нало будет еще внимательнее потестить.


    ЗЫ кстати, а в строну фреймбуфера не глядел ?

  • Дело точно не в Xv. Я поставил nVIDIA 8600 GT, где с Xv нет проблем и получил в точности такой же результат, когда в среднем
    получено 200 фреймов, пропущено 30...50%, отвергнуто около 5.
    На связке vdr-xine у меня бывет пропущено или отвергнуто всего несколько фреймов.
    Запускаю просто [команда запуска vdr] -P'xineliboutput'. Основной конфиг плагина лежит в виде секции setup.conf самого ведра. Наличие второго конфига люди объясняют тем, что файл используется для пользователя, который запускает сервер X, если выполняется просто init-Script при старте компьютера, как "root", но не как пользователь "vdr".


    К слову сказать, разобрался, как грамотно подключать любую цифровую панель к любой видеокарте и как масштабировать изображение и OSD с помощью не только xineliboutput, но и связки vdr-xine (помнится, тема не заржавела, но для неё нет соотв. топика) в соответствии с конкретными задачами. Пишу обширный материал по этой теме, т.к. на самом деле инструкций на сей счёт практически нет.

  • Цитата

    Со слов пользователя 1455
    Дело точно не в Xv. Я поставил nVIDIA 8600 GT, где с Xv нет проблем и получил в точности такой же результат, когда в среднем
    получено 200 фреймов, пропущено 30...50%, отвергнуто около 5.


    А, это было тоже! Проверь в /root/.xine/config_xineliboutput секцию
    video.processing.ffmpeg_thread_count:2 - должна быть раскоментированна.
    можешь попробовать поставить :1 и сравнить

  • Молодец, навёл меня на идею. Теперь всё пучком !
    Правда, дело не только в той строчке, о которой ты говоришь.
    Во-первых xineliboutput, читая сразу два конфига (в секции setup.conf и в ./root), которые могут вступить в противоречие, путается в своих настройках. Нужно обязательно это как-то исключить, ибо утонешь подбирая. setup.conf не изменяю.


    В прицепке два конфига. Условно "хороший" это просто переименованный, из-под гуишной оболочки xine-ui. С ним всё почти идеально. Потеря нескольких фреймов не заметна:


    Второй, условно "оригинальный", подглючивает:


    Видно, что существенно хуже.

    Файлы

    • .tar.bz2

      (10.81 kB, скачали 32 раз, последнее скачивание: )

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем 1455 ().

  • Цитата

    Со слов пользователя 1455
    Правда, дело не только в той строчке, о которой ты говоришь.
    Во-первых xineliboutput, читая сразу два конфига (в секции setup.conf и в ./root), которые могут вступить в противоречие, путается в своих настройках. Нужно обязательно это как-то исключить, ибо утонешь подбирая. setup.conf не изменяю.


    Я честно говоря не копал.. поковырялся в root-овом конфиге - оно и тормозить перестало.. Ставил не себе, товарищу ;)

  • Цитата

    Со слов пользователя 1455
    Правда, дело не только в той строчке, о которой ты говоришь.
    Во-первых xineliboutput, читая сразу два конфига (в секции setup.conf и в ./root), которые могут вступить в противоречие, путается в своих настройках. Нужно обязательно это как-то исключить, ибо утонешь подбирая. setup.conf не изменяю.


    обоснуй плиз, почему эти 2 конфига конфликтуют между собой ?
    ты заметил, что в config.xineliboutput практически все закомментировано ?