СoreAVC for Linux (Патчи для MPlayer, mythtv, xine)

  • Цитата

    Рекомендую выбросить SuSE на помойку и поставить Debian


    Ну уж нет :). И вообще, дело оказалось в том, что существующий FFMpeg, хоть он и не используется в этой теме, но включает в себя нужные для сборки ксайна элементы. А я его снёс.
    Обратили внимание, что опция --enable-pp в FFMpeg из SVN больше не работает?
    Если заменить её на --enable-postproc и заново собрать FFMpeg, то xine (!!!!) больше не ругается при сборке на postproc. Ей богу, странно, но факт.
    Таким образом я вышел из положения.

  • Несколько дополнений и вопросов.


    В данном случае, на xine-lib нужно ставить пять патчей. Это вам понятно, а нужно писать step by step, как говорится. В сырцах xine-0.8.2 лежит патч для xine-lib, без которого нельзя. Т.е., после сборки и инсталляции xine-lib и xine-ui в исходниках ведрового плагина xine появится недостающий файл .../xine/vdr.h.

    Xine-ui я поставил из CVS потому, что он локализован на русский. У него полезное OSD в дополнение к ведровому.


    Для чистоты эксперимента деинсталлировал все видеодекодеры. Вынужденно оставил только libMAD и SMPEG. Разумеется, встроенный в xine FFMpeg вцепился за право работать: Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу. От CoreAVC не слышно никаких попыток что-то вякнуть. Разбираюсь с тем, как можно отключить встроенный FFMpeg. У меня для виндозных декодеров предусмотрена папка /usr/lib/win32. Сейчас в ней только CoreAVC. Остальное выполнил по рекомендациям, но увы, пока тихо.

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

  • Цитата

    Со слов пользователя Goga777
    Проверьте только, чтобы в config было


    engine.decoder_priorities.win32v:1
    или другая цифра больше нуля.


    Этот файл находится в ~/.xine

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

  • Цитата

    Со слов пользователя 1455
    В данном случае, на xine-lib нужно ставить пять патчей. Это вам понятно, а нужно писать step by step, как говорится. В сырцах xine-0.8.2 лежит патч для xine-lib, без которого нельзя. Т.е., после сборки и инсталляции xine-lib и xine-ui в исходниках ведрового плагина xine появится недостающий файл .../xine/vdr.h.


    ну, я про это не писал ибо к кореавк это не имеет отношение. Да, для xine-1.1* нужно ставить этот вдр-xine патч, для xine-1.2 - уже не надо. Но кореавк пока не работает с xine-1.2.

    Цитата


    Для чистоты эксперимента деинсталлировал все видеодекодеры. Вынужденно оставил только libMAD и SMPEG. Разумеется, встроенный в xine FFMpeg вцепился за право работать От CoreAVC не Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу. никаких попыток что-то вякнуть. Разбираюсь с тем, как можно отключить встроенный FFMpeg. У меня для виндозных декодеров предусмотрена папка /usr/lib/win32. Сейчас в ней только CoreAVC. Остальное выполнил по рекомендациям, но увы, пока тихо.


    выше тебе warp напоминает про конфиг - сделай приоритетным виндузовые кодеки.

  • Именно так вчера и прописал в /root/./xine/config. Я же выше написал, что выполнил ВСЕ ваши рекомендации. Наверное, я ещё что-то упустил.
    Вопрос такой: где ты прочитал, что нужно прописать "engine.decoder_priorities.win32v:1" ? Ссылочку на первоисточник дай, плз.
    У меня такое ощущение, что этот конфиг просто отбивается в дефолт самим проигрывателем, который находится в режиме "для особо одарённых". Я настройки xine-ui почти не менял. Так, по мелочам...


    Что означает буква v в параметре win32v:1 и почему не просто win32?
    Я снимаю галочку в чекбоксе "GUI" - "Поведение для неопытных" - "smart_mode" и вообще нет никакого изображения и звука. Почему в секции "Engine" в OSD нет такой секции "priority for win32 decoder"?

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

  • Цитата

    Со слов пользователя 1455
    Именно так вчера и прописал в /root/./xine/config.


    а почему в root директории ? мы же домашнюю директорию имеем ввиду. Ты же ксайн от имени своего пользователя запускаешь.


    Цитата


    Я же выше написал, что выполнил ВСЕ ваши рекомендации. Наверное, я ещё что-то упустил.


    ВЫПОЛНИЛ, да не так :)


    Цитата


    Вопрос такой: где ты прочитал, что нужно прописать "engine.decoder_priorities.win32v:1" ? Ссылочку на первоисточник дай, плз.


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


    Цитата


    You shouldn't need any compile options.. just make sure your xine
    config has:


    engine.decoder_priorities.win32v:1


    or some number > 0

  • Цитата

    а почему в root директории ?


    А что, так не бывает? =) Папка ./xine образуется там, где я живу. Это очевидно.
    Я root всегда. Проще один раз шлёпнуть на Enter при загрузке, чем сто раз вводить пароль для действий с файлами и управлением. Меня это просто бесит, как в Висте. Вот потом, когда всё будет готово, можно перенести автозагрузку на юзера. Не вижу проблем.
    Вы бы хоть, братцы, свой конфиг ксайна показали... Ладно, я чувствую, что придётся долго разбираться где в Suse должны лежать те или иные файлы, почему этот ксайн тут же автоматически закомментирует открытые мной строчки своего конфига и т.д. и .т.п.

  • ты конфиг правишь, когда ксайн НЕ запущен ? попробуй под юзером то же самое сделать. Покажи что выводит ксайн с опцией --verbose=2 при запуске после того, как конфиг поправил. Запусти от юзера.

  • ORF HD. Вербозный вывод в консоль. Картинка есть, но это не CoreAVC. Жирным выделил проблемные места. Начало я пропускаю, там всё ожидаемо. Впрочем, можно и это, но там просто про систему и загрузку плагинов.


    <--------------init class succeeded


    WARNING: current display depth is 24. For better performance
    a depth of 16 bpp is recommended!


    video_out_xshm: video mode depth is 24 (32 bpp), TrueColor, not swapped,
    red: 00ff0000, green: 0000ff00, blue: 000000ff
    x11osd: unscaled overlay created (XShape mode).
    video_out: thread created
    main: пробуется плагин звукового сигнала <alsa>
    audio_alsa_out : supported modes are 8bit 16bit 24bit 32bit mono stereo (4-channel not enabled in xine config) (4.1-channel not enabled in xine config) (5-channel not enabled in xine config) (5.1-channel not enabled in xine config) (a/52 and DTS pass-through not enabled in xine config)
    audio_alsa_out: snd_mixer_selem_get_playback_volume(): Недопустимый аргумент
    audio_alsa_out: snd_mixer_selem_get_playback_volume(): Недопустимый аргумент
    audio_out: thread created
    xine_stream_new
    video_out: thread created
    audio_out: thread created
    xine_interface: unknown or deprecated stream param 10 set
    xine_stream_new
    xine_interface: unknown or deprecated stream param 10 set
    xine_stream_new
    xine_interface: unknown or deprecated stream param 10 set
    video_out_xshm: aspect ratio changed to auto
    video_out_xshm: tried to get unsupported property 2
    video_out_xshm: tried to set unsupported property 2
    video_out_xshm: tried to get unsupported property 2
    gui_xine_open_and_play():
    mrl: 'vdr:/tmp/vdr-xine/stream#demux:mpeg_pes',
    sub 'NONE',
    start_pos 0, start_time 0, av_offset 0, spu_offset 0.
    xine: found input plugin : VDR display device plugin
    xine: found demuxer plugin: mpeg pes demux plugin
    video discontinuity #1, type is 0, disc_off 0
    waiting for audio discontinuity #1
    audio discontinuity #1, type is 0, disc_off 0
    waiting for in_discontinuity update #1
    vpts adjusted with prebuffer to 49691
    av_offset=0 pts
    spu_offset=0 pts
    xine_play
    play_internal ...done
    ratio: 0
    video_out_xshm: tried to set unsupported property 8
    video_out_xshm: tried to set unsupported property 13

    prebuffer=0 pts
    +++ CLEAR(-1a): sync point: 01
    ao_flush (loop running: 1)
    === CLEAR(-1.1)
    video discontinuity #2, type is 0, disc_off 0
    waiting for audio discontinuity #2
    audio discontinuity #2, type is 0, disc_off 0
    waiting for in_discontinuity update #2
    vpts adjusted with prebuffer to 37810
    === CLEAR(-1.2)
    === CLEAR(-1.3)
    === CLEAR(-1.4)
    === CLEAR(-1.5)
    --- CLEAR(-1a)
    +++ CLEAR(-1b): sync point: 01
    ao_flush (loop running: 1)
    === CLEAR(-1.1)
    video discontinuity #3, type is 0, disc_off 0
    waiting for audio discontinuity #3
    audio discontinuity #3, type is 0, disc_off 0
    waiting for in_discontinuity update #3
    vpts adjusted with prebuffer to 37922
    ------------>


    Дальше лепит примерно одни и теже ошибки и то же и ни слова про CoreAVC.
    При воспроизведении видеофайлов честно поднимает встроенный FFMpeg плагин. Поверь наслово.
    Конфиг, естественно, все нормальные редактируют в оффлайне.
    Хм-м... Ты думаешь, имеет значение юзер я или рут? Ладно, пойду запускать под юзером, хотя, если это только так и возможно, то очень и очень фигово.

  • Цитата

    Со слов пользователя 1455
    ORF HD. Вербозный вывод в консоль. Картинка есть, но это не CoreAVC.


    в логах должно быть указание на то, что используется ффмпег - что-то я не вижу этого. Не стесняйся, выложи полный лог на Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.



    Цитата


    Начало я пропускаю, там всё ожидаемо. Впрочем, можно и это, но там просто про систему и загрузку плагинов.


    все показывай :)


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

  • <- Вот лог: Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу. Там видно, что включается FFmpeg плагин, но это и так ясно. Tочная фраза:

    Исходный код
    load_plugins: plugin ffmpegvideo will be used for video streamtype 4d


    По-моему, там ничего проясняющего ситуй нет.

  • по-моему, проблема в AMD Athlon(tm) 64 X2 Dual Core Processor 6000+ - писали, что для 64битных платформ надо особые методы использовать. Я особо не вникал.
    у тебя есть комп с 36битным CPU, чтобы на нем попробовать ?

  • Есть, но там нужно ещё и драйвер переустанавливать. Возни много. Мне по факту нужно на новом железе, а не просто знать, что работает. Бог даст, научусь дистр делать, хоть для себя.
    Поковыряю ещё потом. Может, срастётся.

  • Кажется, всё-таки что-то не то у меня с ксайном и его либом. Сейчас сунулся на 36E, а mpeg2 и не работает. Поставил пакеты mpeg2 - всё равно не работает!
    Разбираю всё и по новой...

  • Цитата

    Со слов пользователя 1455
    Разбираю всё и по новой...


    И........, соберай 32-х битную систему! Накой фиг тебе 64 бита, если у тебя оперативки меньше 4-х ГБ.

    Исходный код
    Asus M2NE-SLI, AMD Athlon(tm) 64 X2 6000+, 2GB, Palit X2600 Pro Super (HDMI onboard)

    Процессор тут абсолютно нипричём. Не веришь мне, поищи инфу в интернете сам.

  • Согласен, что пока нет смысла в 64 битной. Да я и не хотел 64-ю, но пришлось - не ставился дистр. А x86_64 поставился. Что касается Debian, то мне ещё рано. Он для продвинутых пользователей. Я раз попробовал, так даже интернет не мог настроить.
    Там для меня пока сложновато всё.
    Будем надеяться, что через нек. время и на x86_64 Core заработает.

  • Первый этап установки Core для 64-х битной системы.


    Установка директшоу сервера (по материалам из первоисточника).
    Dshowserver является рекомендуемым звеном для использования CoreAVC со всеми плейерами. Имеет простой метод установки, а также работает в обоих 64-х и 32-х битных операционных системах.
    1) Загрузка кода из svn:

    Исходный код
    svn checkout http://coreavc-for-linux.googlecode.com/svn/trunk/ coreavc-for-linux


    2) Установка dshowserver возможна в двух вариантах:
    Сборка из исходников (только в ia32)

    Исходный код
    make -C dshowserver


    ИЛИ загрузка последней версии готовых бинарников (для x86_64) с распаковкой:

    Исходный код
    tar -xjf <path to dshowserver-ia32-rxxx.tar.bz2


    Далее, копирование 2-х полученных файлов:

    Исходный код
    cp dshowserver /usr/local/bin 
    cp registercodec /usr/local/bin


    3) Копирование самого декодера в /usr/lib/win32/CoreAVCDecoder.ax
    4) Установка CoreAVC лицензии в RegisterCoreAVC
    Тут немного от себя:
    Goga777 уже выложил файл лицензии с параметрами по умолчанию, но в OpenSuse вновь созданный регистрационный файл имеет другое имя - registry32 ! Вот тут "Собака порылась" капитально. Поэтому я просто переименовал Гогин файл.
    Файл регистрации при соблюдении действий, описанных в вики автора, должен лежать в папке /имя пользователя (или root)./mplayer.
    Не понял, почему именно в ./mplayer и поэтому кинул этот файл ещё и в папку ./xine (для пущей якости :))

    5) Проверка работоспособности dshowserver

    Исходный код
    dshowserver -c CoreAVCDecoder.ax -s 1280x720 -g 09571a4b-f1fe-4c60-9760de6d310c7c31 -b 12 -f 0x34363248 -o 0x30323449


    Должно возвратиться:

    Исходный код
    No id specified, assuming test mode
    Opening device
    len: 992
    ProductVersion: 1.7.0
    Decoder supports the following YUV formats: YUY2 UYVY YV12 I420 
    Decoder is capable of YUV output (flags 0x2b)
    Setting fmt
    Starting
    Initialization is complete


    Это всё работает, едем дальше...

  • недостаток метода dschowserver в том, что автор не включил поддержку ts/pes h264 формата (автор про это ограничение писал в рассылке), патченный таким образом кореавк у меня на вдр не работал. Может тебе повезет.

  • Вот, мне не понятно, зачем огород городить, если этот директшоу сервер вовсе не работает на этих каналах? А на других он, как рыбе зонтик. Где логика?
    Вот и я пропатчил xin-lib дополнительным патчем для этого сервера и всё вроде собралось, но при запуске:


    У кого же работает тогда, если результат и на x86 и на x86_64 одинаковый? Должно же быть решение...