LINUX.ORG.RU

FreshPlayerPlugin — PepperFlash в Firefox

 , , , , ppapi


55

41

Flash плеер всё заменяют и заменяют, но никак не заменят полностью. Новые и сверхновые фичи браузеров это замечательно, но Flash бывает всё ещё нужен. К сожалению, доступная NPAPI браузерам версия застыла на 11.2, а новые версии выходят только в составе Chrome. Поэтому я делаю адаптер, который сможет быть посредником между PPAPI плагином и NPAPI браузером. Это такая штука, которая позволит использовать свежий Flash в Firefox, Opera и других браузерах, в которых работают плагины.

https://github.com/i-rinat/freshplayerplugin

★★★★★

Последнее исправление: i-rinat (всего исправлений: 6)

Вот, у меня тоже зависал флеш вместе с браузером, но достаточно прибить plugin-container чтобы отпустило. Вечером попробую фикс. Ринат, мне собирать dev или обычную ветку?

Gonzo ★★★★★
()
Ответ на: комментарий от i-rinat

Отлично, спасибо. Попробую вечером - отпишусь сразу.

Gonzo ★★★★★
()
Ответ на: комментарий от i-rinat

Пока полет нормальный, благодарствую!

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

Кстати, без «enable_3d = 0» нет контролов на видео ютуба

В консоль при этом никаких ошибок не вываливается? Что-нибудь связанного с «Xlib error».

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

Ничего вообще. Только это (я уже постил):

NOT SANDBOXED
[fresh 8184] not implemented: PPB_OpenGLES2DrawBuffers(Dev);1.0
[fresh] [error] pulse_available, can't connect to an audio server
[fresh] [error] pulse_available, can't connect to an audio server

Кстати, можно клацнуть правой кнопкой мыши - выпадет меню, в котором можно выбрать Settings флеша, но ничего не отображается. Но данное окошко все таки там «есть» ибо перекрывает какие-либо клики чтобы поставить видео на паузу...

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

Но данное окошко все таки там «есть» ибо перекрывает какие-либо клики чтобы поставить видео на паузу...

Видимо, какие-то особенности реализации GLES2 в драйверах.

[fresh] [error] pulse_available, can't connect to an audio server

Убрал сообщение в bcd5c29b, ведь это, в общем-то, не ошибка. Просто запущенного PulseAudio не оказалось.

i-rinat ★★★★★
() автор топика
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Можно было и не убирать. Все таки сообщение, да и видно, что функция работает :)

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

Ага, по идее, это предупреждение. Но лично меня бы это предупреждение раздражало, от него вообще никакой пользы нет.

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

нужно настройку, которая позволяет отключить показ предупреждений.

mvitamin
()

я поставил 64-битное ядро, обновил часть 32-битных библиотек, поставил часть 64-битных библиотек. и теперь FreshPlayerPlugin с зависаниями отображает видео в плеере vk.com , оно идет рывками с пропуском кадров, будто процессор не справляется ужасно и firefox подвисает. куча других плееров работает нормально. я не уверен что виноваты мои обновления, потому что давно не включал плеер vk.com . firefox и FreshPlayerPlugin 32-битные. FreshPlayerPlugin последний из git. ОС Ubuntu, мутант в плане 32 и 64 бит и репозиториев 12.04 и 14.04 совместно.

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

Ubuntu
мутант в плане 32 и 64 бит и репозиториев 12.04 и 14.04 совместно

жесть :)

Gonzo ★★★★★
()

так что, проблема с флеш плеером вконтакте (vk), указанная выше, у тебя подтверждается или нет, i-rinat? а у тебя, Gonzo?

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

проблема с флеш плеером вконтакте (vk), указанная выше, у тебя подтверждается или нет

У vk плееры бывают разные. Я пробовал варианты rutube и ВКонтакте, оба работают нормально. Но я проверял только у себя на x86-64, в 32-битном варианте не пробовал.

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

я именно про плеер ВКонтакте, а не про сторонние плееры. стрононние-то работают нормально. возможно все-таки у меня проблема с библиотеками. или можно в логе freshplayerplugin чего-то нарыть?

есть еще один момент. плеер ВКонтакте нынче подменяет контекстное меню флеша, а freshplayerplugin этого похоже не умеет.

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

возможно все-таки у меня проблема с библиотеками. или можно в логе freshplayerplugin чего-то нарыть?

А CPU при этом загружен? Вообще лаги сложно чинить, для этого мне надо воспроизвести их у себя. Готового алгоритма действий нет, так что я даже не знаю, с чего начать.

подменяет контекстное меню флеша

Это как? Так?

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

подменяет контекстное меню флеша

Это как? Так?

ошибочка вышла. не подменяет. это я html5-версию плеера увидел. вот: http://postimg.org/image/qdpnstfr5/ .

возможно все-таки у меня проблема с библиотеками. или можно в логе freshplayerplugin чего-то нарыть?

А CPU при этом загружен? Вообще лаги сложно чинить, для этого мне надо воспроизвести их у себя. Готового алгоритма действий нет, так что я даже не знаю, с чего начать.

CPU загружается сильно при этом. Алгоритм простой: включить любое видео в плеере ВКонтакте, не html5. Может мне лог прислать который при этом пишет? Я туда еще не глядел.

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

CPU съедается в i915_dri.so. Попробуй ещё раз perf top в варианте с vk плеером, установив перед этим пакет libgl1-mesa-dri-dbg. В этом пакете лежат отладочные символы, с ними perf top сможет показать имена функций, в которых тратится больше всего процессорного времени.

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от mvitamin

проблема с флеш плеером вконтакте

Сорри, не пользуюсь. Если надо что-то проверить - мне нужна ссылка, не требущая регистрации.

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

проблема с флеш плеером вконтакте

Сорри, не пользуюсь. Если надо что-то проверить - мне нужна ссылка, не требущая регистрации.

например вот тут первая серия в плеере ВКонтакте: http://amovies.tv/serials/1917-chernyy-spisok.html . но тут зависания небольшие. есть видео на которых страшнее. ну либо прямая ссылка: https://vk.com/video_ext.php?oid=-86843919&id=171077611&hash=383eda67... .

mvitamin
()
Ответ на: комментарий от i-rinat

Попробуй ещё раз perf top в варианте с vk плеером, установив перед этим пакет libgl1-mesa-dri-dbg.

пакет поставил но название функции не появилось. вот.

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

Нет зависаний. Пока грузится флеш, оба проца по 50%, но это нормально для флеша.

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

пакет поставил но название функции не появилось.

Битность (32/64) пакетов совпадает? Какие выводы у

file /usr/lib/i386-linux-gnu/dri/i915_dri.so
и
dpkg -L libgl1-mesa-dri-dbg:i386
?

(Первая выведет build-id бинарника, вторая — список файлов в пакете).

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

$ file /usr/lib/i386-linux-gnu/dri/i915_dri.so /usr/lib/i386-linux-gnu/dri/i915_dri.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=0x17e35b6ca47370e9696dfe7aee182cdccbab986d, stripped

битность та. 64-битного и не стояло, правда теперь поставил и его.

$ dpkg -L libgl1-mesa-dri-dbg:i386

mvitamin
()
Ответ на: комментарий от i-rinat

ой, не могу: проверил ту же версию pepperflash в Google Chrome. Плеер ВКонтакте подвисает-рывками точно так же как с твоим PreshPlayerPlugin. похоже виноват плеер ВКонтакте. в крайнем случае виноват i915_dri.so .

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

Я таки откопал нетбук, у которого i915_dri.so видео заведует, даже осилил отладочную информацию, которую perf top, как оказалось, не в тех директориях ищет. CPU там съедается в пиксельных шейдерах. Видеоадаптер не поддерживает нужные пиксельные шейдеры в GLES2, и они эмулируются на CPU.

Попробуй в ~/.config/freshwrapper.conf вставить строку enable_3d = 0.

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

Попробуй в ~/.config/freshwrapper.conf вставить строку enable_3d = 0.

вставил строку. зависания/рывки пропали. а в Google Chrome они до сих пор =) вывод: твоя программа гениальна =)

кстати где ты там нашел отладочную инфу эту?

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

твоя программа гениальна =)

Да я вообще молодец :)

а в Google Chrome они до сих пор

Можно выключить аппаратное ускорение во Flash во внутреннем диалоге, вызываемом из контекстного меню.

кстати где ты там нашел отладочную инфу эту?

У меня там Debian testing, там более новый пакет с Mesa 10.3.2, в котором есть отладочная информация от i915_dri.so. Но так как эта библиотека лежит не в /usr/lib/i386-linux-gnu, а в /usr/lib/i386-linux-gnu/dri, perf не загружает отладочные символы, пока не положишь файл d5c12c7eb57a2ef62c20567f17ad33d3df2386.debug рядом с i915_dri.so.

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

а вот кстати почему в mplayer и vlc vdpau стабильно работает чёрт знает сколько лет, а в браузерах и флэшах недописано/отключено/падает, и даже тупой xv вывод ускоренный тоже отключен

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

а в браузерах и флэшах недописано/отключено/падает

Думаю, решили не заморачиваться, как в Chromium с чёрным списком, а просто отключить везде. VDPAU на nVidia, бывает, подглючивает при работе с поверхностями. Немалую роль в падениях играет отсутствие потокобезопасности в Xlib. В рамках одной нити в MPlayer проблем нет, зато с браузерными плагинами грабли буквально на каждом шагу разложены.

xv вывод ускоренный тоже отключен

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

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

меня вот мучает вопрос как полноценно заменить flash на html5. в смысле есть canvas, есть svg. но в canvas нужно рисовать «ручками», возможности загрузить готовую интерактивную анимацию нет. в svg можно задать анимацию, svg можно подгрузить отдельным файлом (не только напрямую в html его писать код), причем можно даже сжатым. но svg поддерживает только 2D и полноценного редактора удобного для создания svg анимации я не нашел.

mvitamin
()

скажу очевидные факты:

флеш под виндовс практически на 100% рендерится в directx,что несравнимо выше делает производительности

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

желающие есть?

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

Проверил еще раз на последней версии из мастера. Падает так же.

[fresh  3929]    calling callback={.func=0x7fffb4f529d0, .user_data=0x7fffbe39da30, .flags=1}, result=-2

Program received signal SIGBUS, Bus error.
[Switching to Thread 0x7fffb4d3b700 (LWP 3929)]
0x00007fffb4f529e9 in ?? () from /usr/lib64/libpepflashplayer.so
(gdb) bt full
#0  0x00007fffb4f529e9 in  () at /usr/lib64/libpepflashplayer.so
#1  0x00007fffb90ac89c in ppb_message_loop_run_int (message_loop=message_loop@entry=2, flags=flags@entry=2) at /tmp/fresh/freshplayerplugin-master/src/ppb_message_loop.c:320
        ccb = {func = 0x7fffb4f529d0, user_data = 0x7fffbe39da30, flags = 1}
        now = {tv_sec = 1427971756, tv_nsec = 958815764}
        task = 0x7fffbda8a900
        timeout = <optimized out>
        __func__ = «ppb_message_loop_run_int»
        ml = <optimized out>
        saved_state = {running = 0, teardown = 0}
        teardown = 0
        destroy_ml = 0
        depth = 1
        async_q = 0x7fffc41c3440
        int_q = 0x7fffdfb10b00
#2  0x00007fffb90ac99a in ppb_message_loop_run (message_loop=message_loop@entry=2) at /tmp/fresh/freshplayerplugin-master/src/ppb_message_loop.c:197
#3  0x00007fffb9098487 in fresh_wrapper_main_thread (p=0x7fffc6632080) at /tmp/fresh/freshplayerplugin-master/src/main_thread.c:58
        pp_i = 0x7fffc6632080
        message_loop = 2
        __func__ = «fresh_wrapper_main_thread»
#4  0x00007ffff7bc652a in start_thread () at /lib64/libpthread.so.0
#5  0x00007ffff6cc822d in clone () at /lib64/libc.so.6
vitalikp
()
Ответ на: комментарий от vitalikp

Судя по строчке

[fresh  3929]    calling callback={.func=0x7fffb4f529d0, .user_data=0x7fffbe39da30, .flags=1}, result=-2


у тебя остался довольно подробный лог. Можешь посмотреть, где там перед этим .func=0x7fffb4f529d0, .user_data=0x7fffbe39da30 встречается, в вызове какой функции?

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

Лучше я наверно скажу как воспроизвести, так будет ясно куда копать.

Есть одна игрушка. Когда-то игрался, сейчас было интересно потестировать плагин.
Написана на флеше. Можно играть через браузер, а можно через клиент(фактически локальный архив веб-версии). Открывается в браузере в виде file:///home/username/timezero/game.ru.html.
Сам архив с игрой(148M). Архив распаковывается в домашний каталог.
В настройках нужно добавить каталог file:///home/username/timezero/ (куда распаковался архив).
После этого можно запускать игру с браузера file:///home/username/timezero/game.ru.html и играть.
В версии 11.2.202.451 работает до сих пор. В хроме открывать файлы через протокол file: вроде нельзя и что бы запустить подобное в нем надо настроить что-то. Хотя страницу авторизации открывает успешно.
Ну решил естественно попробовать на твоем плагине.
Плагин падает на странице авторизации, то есть сразу после открытия странички file:///home/username/timezero/game.ru.html.

vitalikp
()

Интересно, как убрать смещение по вертикали при полном экране? Такое наблюдается в gnome 3. причём смещена вся картинка.

BeerSeller ★★★★
()
Ответ на: комментарий от i-rinat

Можно выключить аппаратное ускорение во Flash во внутреннем диалоге, вызываемом из контекстного меню.

кстати я попробовал в Google Chrome убрать эту галочку про аппратное ускорение. не помогает. подвисания браузера и видео продолжают точно так же быть. так что я теперь могу пользоваться нормально только Firefox с прослойкой FreshPlayerPlugin. правда странно что проблема исключительно с flash плеером ВКонтакте.

Ubuntu обновил до 14.04. А вот перейти с 32 бит на 64 не удалось: aptitude не умеет разруливать возникающие при этом проблемы с зависимостями (хотя могло бы тупо подменять архитектуру на другую у каждого проблемного пакета). Пришлось ставить с нуля 64 бит Ubuntu. как же я давно не ставил с нуля систему на своем основном компе. для истинных любителей помучиться есть статья о «обновлении» 32 бит до 64 без переустановки системы: http://blog.zugschlus.de/archives/972-How-to-amd64-an-i386-Debian-installatio... .

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

как убрать смещение по вертикали при полном экране?

Воспроизвелось в виртуалке с Fedora 21 и Gnome 3. По каким-то причинам Gnome не на полный экран окно разворачивает, оставляет полосы сверху и справа. Попробую выяснить, чего ему не хватает.

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от mvitamin

правда странно что проблема исключительно с flash плеером ВКонтакте.

Возможно, там задействуется какой-то шейдер, который аппаратно не может быть выполнен. А на других видео он не используется, например. Надо сдампить то и другое, а потом сравнить.

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