Ace Stream Forum

Базовые продукты ACE Stream ( Torrent Stream ) => Анонсы и Релизы => Тема начата: j.cryton от 09 Июнь 2019, 23:49:40

Название: Ace Stream Player source code и бинарные билды
Отправлено: j.cryton от 09 Июнь 2019, 23:49:40
Решил покопаться в исходном коде Acestream плеера.
http://forum.torrentstream.org/index.php?topic=2970.0 (http://forum.torrentstream.org/index.php?topic=2970.0)

Вот что из этого получилось:
Spoiler: показать

(https://b9.icdn.ru/j/jcryton/9/64309749PrO.jpg)

(https://b9.icdn.ru/j/jcryton/0/64309750eSw.jpg)

(https://b9.icdn.ru/j/jcryton/1/64309751kCt.jpg)

вывод плера при запуске из консоли:

(https://b9.icdn.ru/j/jcryton/2/64309752YaH.jpg)

(https://b9.icdn.ru/j/jcryton/3/64309753WzK.jpg)

Сейчас у себя пользуюсь версий основанной на VLC-2.2-git (v2.2.8 от 2018-07-24)
Преймущество версии на более новом vlc очевидны.
Эот возможность линковки как с ffmpeg-2 так и с ffmpeg-3, а также
использование актуальной libgcrypt.so.20.

Пару слов об исходном коде на https://bitbucket.org/AceStream/acestreamplayer

Если использовать последнюю версию патчей (последний коммит), то
при сборке версий 2.1.5 2.1.6 наблюдается баг:
После запуска плеера, при попытке скормить ему acestreamID или открытии плейлиста - плеер крашиться с ошибкой 'std::bad_alloc'.
Природа этой ошибки точно подмечена здесь https://stackoverflow.com/questions/32666285/regarding-instance-of-stdbad-alloc (https://stackoverflow.com/questions/32666285/regarding-instance-of-stdbad-alloc)
Полность убирает эту ошибку откат на 4 коммита назад:

git clone https://bitbucket.org/AceStream/acestreamplayer.git
git checkout efae1b2c7383b202dc48a992d191119651be2414
или HEAD~4

После этого отката полученные патчи, можно наложить на версии 2.1.5 и 2.1.6
И все три версии: 2.1.4 2.1.5 2.1.6 начинают работать одинаково стабильно.

Но версии vlc-2.1.x имеют зависимости от старых библиотек ffmpeg и libgcrypt, поэтому
версии 2.2.x будут куда поинтересней.
Последняя версия VLC-2.2-git v2.2.8 от 2018-07-24 весьма еще актуальна.
Взяв патчи от коммита efae1b2c7383b202dc48a992d191119651be2414 - я переработал их для версии VLC-2.2
Дополнительно добавил патчи для VLC от gentoo.

Полученные исходные коды можно взять здесь:

https://github.com/Jcryton/acestreamplayer-2.1 (https://github.com/Jcryton/acestreamplayer-2.1)
https://github.com/Jcryton/acestreamplayer-2.2 (https://github.com/Jcryton/acestreamplayer-2.2)

Готовые бинарные пакеты здесь:
https://github.com/Jcryton/acestreamplayer-2.1 (https://github.com/Jcryton/acestreamplayer-2.1/releases)
https://github.com/Jcryton/acestreamplayer-2.2 (https://github.com/Jcryton/acestreamplayer-2.2/releases)

Версии 2.2.4-2.2.7 при сборке слинкованы с ffmpeg 2.8.10
Версия 2.2.8 и v2.2.8-git от 2018-07-24 при сборке слинкованы с ffmpeg 2.8.10 и с ffmpeg 3.3 на выбор
Нужную версию можно выбрать в разделе Release.

Так как я использую gentoo - deb пакеты делать не стал.
При желании вы можете их сделать из бинарных билдов используя зависимости взятые от ебилдов gentoo.
https://gitweb.gentoo.org/repo/gentoo.git/tree/media-video/vlc/vlc-2.2.8.ebuild?id=df3878d5f0c142965f05030c8e57ee4711b474d6 (https://gitweb.gentoo.org/repo/gentoo.git/tree/media-video/vlc/vlc-2.2.8.ebuild?id=df3878d5f0c142965f05030c8e57ee4711b474d6)

Пользуйтесь на здоровье.




Название: Re: Ace Stream Player source code и бинарные билды
Отправлено: Benny от 10 Июнь 2019, 01:10:08
j.cryton,
спасибо за проделанную работу.

Есть пару вопросов, а именно:
- закрывает ли эта сборка баг, описанный в (падения при навигации по плейлисту Вперёд-Назад) (http://forum.torrentstream.org/index.php?topic=12094.msg26296#msg26296)?
- поддерживается ли H265/HEVC кодек (HDR вроде как только с 3 версии сами VLC-тим поддерживают)?
- нет ли желания "заодно" собрать и под винду бинарник?
Название: Re: Ace Stream Player source code и бинарные билды
Отправлено: j.cryton от 11 Июнь 2019, 04:45:52
Да, поддержка  H.265/HEVC в ffmpeg 2.8.10 и в vlc v2.2.4-v2.2.8 есть.
Соответственно в  Acestrem Player v2.2.4 - v2.2.8 тоже есть.
https://trac.ffmpeg.org/wiki/Encode/H.265 (https://trac.ffmpeg.org/wiki/Encode/H.265)

Spoiler: показать

(https://o9.icdn.ru/j/jcryton/3/64329793CpX.jpg)
(https://o9.icdn.ru/j/jcryton/4/64329794PkO.jpg)
(https://o9.icdn.ru/j/jcryton/5/64329795mEa.jpg)


В версии 2.1.4-2.1.6 и в ffmpeg 1.2.10 поддержки H.265/HEVC нет.

Spoiler: показать

(https://o9.icdn.ru/j/jcryton/6/64329796zZw.jpg)
(https://o9.icdn.ru/j/jcryton/7/64329797GiP.jpg)


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

Баг профиксил. Исходники на гитхабе обновил.
Билды без этого бага тут:

https://github.com/Jcryton/acestreamplayer-2.2/releases/tag/v2.2.8-rc2 (https://github.com/Jcryton/acestreamplayer-2.2/releases/tag/v2.2.8-rc2)
https://github.com/Jcryton/acestreamplayer-2.2/releases/tag/v2.2.8.1-rc2 (https://github.com/Jcryton/acestreamplayer-2.2/releases/tag/v2.2.8.1-rc2)

Сделать версию под windows в ближайшее время нет возможности.
Название: Re: Ace Stream Player source code и бинарные билды
Отправлено: j.cryton от 11 Июнь 2019, 15:55:24
Природа этого бага оказалась очень простая.
В input_manager,cpp input_manager,hpp были добавлены новые события и сигнылы для p2p.
В vlc. в обработчике событий QEvent была отладочная функиция assert(0), которая реагировала на неопознанный сигнал.
В vlc этих сигналов и событий нет - поэтому он не останавливался в отличие от acestream player.
Aseert(0) ставят для отладки и обычно убирают макросом NDEBUG.
http://www.c-cpp.ru/content/assert (http://www.c-cpp.ru/content/assert)

Для acestream player отладочная функция Aseert(0) не нужна, событие отработается в другом месте,
А отладочный аварийный останов из-за дополнительного сигнала совершенно не нужен.
Название: Re: Ace Stream Player source code и бинарные билды
Отправлено: j.cryton от 14 Июнь 2019, 18:39:56
Сделал пакеты для Ubuntu 18.04 Bionic.

Spoiler: показать

(https://o9.icdn.ru/j/jcryton/6/64366266jSf.jpg)

(https://o9.icdn.ru/j/jcryton/9/64366349zXw.jpg)


UPD:

Добавил пакеты для последней версии Debian 9.9 Stretch

Spoiler: показать

(https://o9.icdn.ru/j/jcryton/0/64377680qLf.jpg)

(https://o9.icdn.ru/j/jcryton/1/64377681IlO.jpg)


Для запуска acestreamengine на Debian 9.9 Stretch нужно добавить две библиотеки libcrypto.so.1.0.0 и libssl.so.1.0.0 в  /usr/lib/x86_64-linux-gnu, а также установить пакет python-apsw. Для Ubuntu 18.04 потребуется только установка пакета  python-apsw

Пакеты тут:
https://github.com/Jcryton/acestreamplayer-2.2/releases (https://github.com/Jcryton/acestreamplayer-2.2/releases)
Название: Re: Ace Stream Player source code и бинарные билды
Отправлено: j.cryton от 14 Июль 2019, 13:34:20
На основе мануала: https://wiki.videolan.org/Win32Compile/ (https://wiki.videolan.org/Win32Compile/) - сделал acestreamplayer версий 2.1.4 и 2.1.6 для windows.
Хост - gentoo, гостевая система ubuntu.
contrib компилировался вручную несколько часов.

Spoiler: показать

(https://o9.icdn.ru/j/jcryton/6/64725366nEk.jpg)

(https://o9.icdn.ru/j/jcryton/7/64725367ZuL.jpg)

(https://o9.icdn.ru/j/jcryton/8/64725368CsB.jpg)

(https://o9.icdn.ru/j/jcryton/9/64725369aVf.jpg)

(https://b9.icdn.ru/j/jcryton/0/64725370fTh.jpg)


Запускаем, выбираем Direct3D в настройках: и пользуемся
Spoiler: показать

(https://o9.icdn.ru/j/jcryton/1/64725371AeV.jpg)


Тестировал на windows 7 32-bit.

Скачать можно отсюда:

https://github.com/Jcryton/acestreamplayer-2.1 (https://github.com/Jcryton/acestreamplayer-2.1)

https://github.com/Jcryton/acestreamplayer-2.1/releases (https://github.com/Jcryton/acestreamplayer-2.1/releases)


Название: Re: Ace Stream Player source code и бинарные билды
Отправлено: j.cryton от 20 Июль 2019, 14:02:53
Я кстати ошибался. Когда собирал contib - увидел наличие файлов для поддержки HEVC/H.265
Spoiler: показать

(https://o9.icdn.ru/j/jcryton/9/64790429RfM.jpg)

После сборки плеера открыл файл в формате hevc. Все прекрасно работает.
Так что в версиях 2.1.4 2.1.5 2.1.6 поддержка HEVC/H.265 есть.
Spoiler: показать

(https://o9.icdn.ru/j/jcryton/8/64790428OzL.jpg)

(https://o9.icdn.ru/j/jcryton/7/64790427UuS.jpg)


Сделал отдельный git для contib
https://github.com/Jcryton/ace-contrib/tree/master/2.1 (https://github.com/Jcryton/ace-contrib/tree/master/2.1)

Теперь сборка под windows сводится всего лишь к двум скриптам:
./win32prepare.sh
./win32build.sh

На выходе готовый архив с плеером для windows.

Подробнее тут:
https://github.com/Jcryton/acestreamplayer-2.1/blob/master/README.md (https://github.com/Jcryton/acestreamplayer-2.1/blob/master/README.md)
Название: Re: Ace Stream Player source code и бинарные билды
Отправлено: j.cryton от 24 Июль 2019, 17:18:17
Сделал версии 2.2.6, 2.2.8, 2.2.8.1 (vlc-2.2.git от 24-Jul-2018) для windows.

Spoiler: показать

(https://o9.icdn.ru/j/jcryton/6/64822986PyU.jpg)

(https://o9.icdn.ru/j/jcryton/8/64822988pEt.jpg)

(https://o9.icdn.ru/j/jcryton/9/64829579StV.jpg)

(https://o9.icdn.ru/j/jcryton/0/64829580GtN.jpg)

(https://b9.icdn.ru/j/jcryton/5/64822985pMf.jpg)


Поддержка Hevc естественно присутствует:
Spoiler: показать

(https://o9.icdn.ru/j/jcryton/7/64822987yQp.jpg)

(https://b9.icdn.ru/j/jcryton/4/64822984GiE.jpg)


Готовые билды:
https://github.com/Jcryton/acestreamplayer-2.2/releases/tag/v2.2.6-win32-rc1 (https://github.com/Jcryton/acestreamplayer-2.2/releases/tag/v2.2.6-win32-rc1)
https://github.com/Jcryton/acestreamplayer-2.2/releases/tag/v2.2.8-win32-rc1 (https://github.com/Jcryton/acestreamplayer-2.2/releases/tag/v2.2.8-win32-rc1)
https://github.com/Jcryton/acestreamplayer-2.2/releases/tag/v2.2.8.1-win32-rc1 (https://github.com/Jcryton/acestreamplayer-2.2/releases/tag/v2.2.8.1-win32-rc1)
Просто распаковываем архив в удобном месте и запускаем плеер. Движок запуститься автоматически, (если он установлен). С версиями 2.1.4 и 2.1.6 - аналогично.

Собрать плеер можно самому запустив по очереди два скрипта, по аналогии с версиями 2.1.4 и 2.1.6.
Более подробно тут:
https://github.com/Jcryton/acestreamplayer-2.2/blob/master/README.md (https://github.com/Jcryton/acestreamplayer-2.2/blob/master/README.md)

Первоначально, когда делал версию под линукс, даже не думал что буду делать версию для windows.
Ну раз попросили - сделал.
Приятного просмотра.
Название: Re: Ace Stream Player source code и бинарные билды
Отправлено: Constantin от 26 Июль 2019, 11:16:59
j.cryton, Спасибо вам за инициативу и сделанную работу!

Помимо "Спасибо" мы хотели бы вам еще выразить свою благодарность материальным поощрением.  ;)

Подробности, в личку...
Название: Re: Ace Stream Player source code и бинарные билды
Отправлено: j.cryton от 29 Июль 2019, 02:59:56
Спасибо. Написал в ЛС.