4 posts tagged

Kodi

Скрипты для запуска внешнего плеера Smplayer и mpv в Kodi

SMPlayer — кроссплатформенный медиаплеер с открытым исходным кодом, распространяемый по лицензии GNU GPL. Программа написана на C++ с использованием библиотеки Qt и представляет собой графическую оболочку для MPV и MPlayer.

Для Kodi использую Smplayer и MPV как внешние плеера, работают с плагином IPTV Simple Client, YouTube, ну и остальное проигрывают.
Ставим пакет Kodi 18 alpha, с поста Kodi 18 alpha and mpv with Hardware Decoding

создаём файл /root/.kodi/userdata/playercorefactory.xml:

<playercorefactory>
 <players>
  <player name="pvr_mpv" type="ExternalPlayer" audio="false" video="true">
  <filename>/root/pvr_mpv.sh</filename> 
     <args>"{1}"</args>	 
     <hidexbmc>false</hidexbmc>
     <hideconsole>false</hideconsole>
 </player>

  <player name="smplayer" type="ExternalPlayer" audio="false" video="true">
  <filename>/root/smplayer.sh</filename> 
     <args>"{1}"</args>	 
     <hidexbmc>false</hidexbmc>
     <hideconsole>false</hideconsole>
 </player>
</players>

 <rules action="prepend">
   <rule protocols="pvr" player="pvr_mpv" />
   <rule internetstream="true" player="smplayer" />
   <rule video="true"  player="smplayer"/>
  
 </rules>
</playercorefactory>

при воспроизведении video и YouTube запускается скрипт smplayer.sh
Smplayer помнит где окончился просмотр видео.
файл /root/smplayer.sh :

#!/bin/sh
DISPLAY=:0 smplayer -mpcgui -ontop $1;

при воспроизведении IPTV запускается скрипт pvr_mpv.sh
Для IPTV использую mpv плеер, без оболочки Smplayer, переключение программ быстрее, зависание при переключечении с использованиием acestream минимальна, по клавише F5 моментально выходит в оболочку kodi, при проподании интернета не тянет на себя одеяло.
файл /root/pvr_mpv.sh :

#!/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
DB_FILE=~/.kodi/userdata/Database/TV30.db
IPTV_CACHE=~/.kodi/userdata/addon_data/pvr.iptvsimple/iptv.m3u.cache

UNIQID_PVR=$(echo "$1" | grep -o '[0-9]*');
# UNIQID_PVR соответствует записи iUniqueId в таблице channels базы TV30.db


NSTR_PVR=$(grep -n "$(echo "SELECT sChannelName FROM channels WHERE iUniqueId = $UNIQID_PVR;" | sqlite3 $DB_FILE)" $IPTV_CACHE | cut -d: -f1);
# NSTR_PVR это номер строки в файле iptv.m3u.cache, соответствует имени канала (sChannelName) в таблице channels базы TV30.db


UPDATE_PVR=$(echo "UPDATE channels SET iLastWatched =  `date +%s` WHERE iUniqueId = $UNIQID_PVR;" | sqlite3 $DB_FILE);
echo $UPDATE_PVR # Пишем в базу (TV30.db) время начала просмотра  канала (iLastWatched)

#DISPLAY=:0 smplayer -mpcgui -ontop $(awk "NR==$NSTR_PVR+1 { print}" $IPTV_CACHE);
DISPLAY=:0 mpv --vo=vdpau --hwdec=vdpau --hwdec-codecs=all --fs $(awk "NR==$NSTR_PVR+1 { print}" $IPTV_CACHE);

права

chmod +x /root/smplayer.sh
chmod +x /root/pvr_mpv.sh

kodi при запуске Smplayer и MPV не отдаёт фокус. Решение вешаем на клавишу F5, killall player
файл /root/.kodi/userdata/keymaps/keyboard.xml

<?xml version="1.0" encoding="UTF-8"?>
<keymap><global><keyboard><f5>XBMC.RunScript(special://envhome/killall_player.py)</f5></keyboard></global></keymap>

файл /root/killall_player.py

import os
os.system('killall smplayer')
os.system('killall mpv')

сборка smplayer:

apt install libqtdbus4 libqtscript4-gui  qt4-qmake libqt4-dev
sudo apt-get update
sudo apt-get install smplayer
sudo apt-get build-dep smplayer
wget http://downloads.sourceforge.net/smplayer/smplayer-17.5.0.tar.bz2
tar jxvf smplayer-17.5.0.tar.bz2
cd smplayer-17.5.0/
./create_deb.sh

пока не работает CEC , пульт тоже не использовал.

При воспроизведении каналов HD IPTV Simple Client с acestream Loadaverage примерно 0.7-1.9

root@orangepipc:~# echo '%CPU %MEM   PID COMMAND' && ps hgaxo %cpu,%mem,pid,comm | sort -nrk1 | head -n 10
%CPU %MEM   PID COMMAND
45.5 10.6  1137 kodi.bin
34.7  8.5   998 python
25.1  5.1  5142 mpv
 2.9  0.0    69 cfinteractive
 2.7  1.4   775 Xorg
 2.2  0.1  4431 htop
 0.4  0.0    73 kworker/0:2
 0.3  0.3     1 systemd
 0.3  0.0    75 mmcqd/0
 0.2  0.0  2836 kworker/u:1

CPU temp: 47°C-53°C (с миниатюрным наклееным радиатором)

2017   armbian   Kodi   Smplayer

Kodi 18 alpha на OrangePI PC

Без особых проблем собрал пакет «Kodi 18 Leia» на orange pi pc с поддержкой OpenGL ES 2.0.
ffmpeg поддерживает h.265 и h.265 video codec, но для коди это фиалетово, правда можно подключить внешние плеера , у меня работали mplayer и mpv. На Raspberry Pi, тоже используют с kodi внешний плеер, правда все плеера используют исходники ffmpeg.

По сравнению с Kodi 17.1-Krypton, интерфейс у альфы «Kodi 18 Leia» показался полегче . Ну ещё был интерес вставить “ simple PVR tv addon” , ну и звук поправить. после установки аудио идет с HDMI разъёма. CPU temp показывает корректно и т. д. патч от jernej для сборки kodi17 сработал.

Устанавливаем Armbian Ubuntu Server OrangePI PC Armbian_5.25_Orangepipc_Ubuntu_xenial_default_3.4.113.img

Обращаю ваше внимание, все команды я выполняю от root’а на терминале PuTTY .
Если вставили карту, первый раз после записи имиджа,
создайте пароль и нового пользователя, перезагрузитесь и подождите несколько минут для снятия lock.
Немного упростил установку, можно поставить на карту 2Gb:

install required libraries :

apt-get update 
apt -y install mesa-utils libx11-dev libxext-dev xutils-dev libdrm-dev x11proto-xf86dri-dev libxfixes-dev libpcrecpp0v5 libtinyxml2.6.2v5 libpython2.7 libyajl2 libtag1v5-vanilla liblcms2-2 libmicrohttpd10 libssh-4 libxslt1.1 libsmbclient libpulse0 libvdpau1 libva1 libva-drm1 libva-x11-1 libump libdri2-1 libcurl3 x11proto-dri2-dev libfreetype6  xorg-dev xutils-dev libltdl-dev libtool libcdio13

install mali driver и Kodi 18 alfa

mkdir /tmp/kodi_install && cd /tmp/kodi_install
wget http://ua3nbw.ru/files/deb/libmali_f.tar.gz
tar -xzvf libmali_f.tar.gz -C /
wget http://ua3nbw.ru/files/deb/libk_201704072156-git-1_armhf.deb
wget http://ua3nbw.ru/files/deb/kodi_201704072156-git-1_armhf.deb
dpkg -i *.deb

если монитор или телевизор с поддержкой 1080, можно:

h3disp -m 1080p60

и reboot

reboot

ну и запуск:

echo 0 > /sys/class/graphics/fbcon/cursor_blink
kodi
Собирал с опциями:
cmake ..  -DENABLE_OPENGL=OFF -DENABLE_X11=OFF -DENABLE_OPENGLES=ON -DENABLE_VAAPI=OFF -DENABLE_VDPAU=OFF -DENABLE_CEC=OFF -DCPU=cortex-a7 -DWITH_ARCH=arm -DCORE_SYSTEM_NAME=linux  -DLIRC_DEVICE=/run/lirc/lircd

переключить аудио с HDMI на AV можно с помощью файла .asoundrc в директории root.
внешний плеер подключается так : http://kodi.wiki/view/external%20players
пример файла playercorefactory.xml для mpv

<playercorefactory>
<players>
<player name="mpv" type="ExternalPlayer" video="true">
<filename>mpv</filename>
<args>--vo=vdpau --hwdec=vdpau --hwdec-codecs=all --fs --sub-auto=all</args>
<hidexbmc>false</hidexbmc>
<hideconsole>false</hideconsole>
<warpcursor>none</warpcursor>
</player>
</players>
<rules action="prepend">
<rule video="true" player="mpv"/>
</rules>
</playercorefactory>

Ложка дегтя к внешним плеерам, mpv с fbdev не работает (с X неплохо работает), но есть патч для mpv на гите последнее обновление 15 года, для новых версий этот патч не поддерживается. ffmpay тоже в сторонке, mplayer работает, но внутренний плеер kodi, не хуже.
Попробую mpv c simple directMedia layer. Склоняюсь использовать софт, не применяя крайне необходимых патчей. У jernej, ну очень много патчей под определенную версию. Естественно при выходе , допустим свежей и обновленной версии kodi, снова тема на примерно 200 страниц http://www.orangepi.org/orangepibbsen/forum.php?mod=viewthread&tid=648&extra=page%3D1.

Да в пост добавлю: имидж alfa( как есть, так и есть ) Kodi 18 alfa на OrangePI PC
https://drive.google.com/file/d/0B3COWn8ZF1MBN05lZ28wX1dnWW8/view?usp=sharing
pass:orangepi

2017   armbian   Kodi   OrangePI PC

Kodi 17.1-Krypton с OpenGL ES 2.0 на Orange Pi

Продолжение поста Компиляция KODI на OrangePi пакет был собран 31 марта 17 года. 1 апреля повторить собрать kodi не удалось: сайт kodi.tv не работал ну и репо тоже, были плановые работы. У админов сайта своеобразное чувство юмора. kodi не пираты, просто есть пиратские плагины. Это сутки красовалось на сайте kodi.tv :

Делюсь первым пакетом Kodi 17.1-Krypton с OpenGL ES 2.0 для Allwinner H3
Это всё тестировал на дату публикации поста, на OrangePiPC с картой на 4 Gb.

Устанавливаем Armbian Ubuntu Server Armbian_5.25_Orangepipc_Ubuntu_xenial_default_3.4.113.img
и кучку необходимых пакетов
Обращаю ваше внимание, все команды я выполняю от root’а на терминале PuTTY . install required libraries :

apt-get update && apt-get upgrade -y
apt -y install mesa-utils libx11-dev libxext-dev xutils-dev libdrm-dev x11proto-xf86dri-dev libxfixes-dev libpcrecpp0v5 libtinyxml2.6.2v5 libpython2.7 libyajl2 libtag1v5-vanilla liblcms2-2 libmicrohttpd10 libssh-4 libxslt1.1 libsmbclient libpulse0 libvdpau1 libva1 libva-drm1 libva-x11-1 libump libdri2-1 libcurl3 x11proto-dri2-dev libfreetype6  xorg-dev xutils-dev libltdl-dev libtool

install mali driver

mkdir /tmp/kodi_install && cd /tmp/kodi_install
wget http://ua3nbw.ru/files/deb/libmali.tar.gz
tar -xzvf libmali.tar.gz -C /

Cобираем драйвер mali с EGL_TYPE=framebuffer :

git clone https://github.com/linux-sunxi/sunxi-mali 
cd sunxi-mali                                                                   
git submodule init                                                              
git submodule update                                                            
git pull                                                                        
wget http://pastebin.com/raw.php?i=hHKVQfrh -O ./include/GLES2/gl2.h            
wget http://pastebin.com/raw.php?i=ShQXc6jy -O ./include/GLES2/gl2ext.h   
make config VERSION=r3p0 ABI=armhf EGL_TYPE=framebuffer                                             
mkdir /usr/lib/mali                                                             
echo "/usr/lib/mali" > /etc/ld.so.conf.d/1-mali.conf                            
make -C include install                                                         
make -C lib/mali prefix=/usr libdir='$(prefix)/lib/mali/' install

install helper libraries + Kodi 17.1 :

wget http://ua3nbw.ru/files/deb/libdri2_201703240300-git-1_armhf.deb
wget http://ua3nbw.ru/files/deb/libump_201703240301-git-1_armhf.deb
wget http://ua3nbw.ru/files/deb/xf86-video-fbturbo_201703240302-git-1_armhf.deb
wget http://ua3nbw.ru/files/deb/kodi_201703311126-git-1_armhf.deb
dpkg -i *.deb
reboot

ну и запуск:

echo 0 > /sys/class/graphics/fbcon/cursor_blink
kodi

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

Скриншот вебморды:

2017   armbian   Kodi   Ubuntu

Компиляция KODI на OrangePi

Были предприняты попытки сборки Kodi на OrangePi H3 из исходников. Цель была собрать kodi, естественно на первом этапе без установки драйверов и патчей. На “Legacy 3.4.113 Ubuntu Xenial Desktop” удалось собрать и поглазеть на интерфейс “Kodi 18 Leia” – ветка мастер. Также собирается “Kodi 17 Krypton”. На “Legacy 3.4.113 Debian Jessie” пока только смог собрать “Kodi 16.1 Jarvis”.
“Leia” собирается, как и “Krypton” c помощью cmake, ну часов 5-8, все ядра загружаются под завязку, пришлось колхозить вентилятор. Ну и при запуске только интерфейс kodi без драйверов грузит H3 на 100%.
Логичен вопрос, а зачем это надо? Отвечаю – хобби такое.
На “Ubuntu Xenial Desktop” установить kodi можно из репозитария

apt install kodi

.
Kodi 17.1-Krypton с OpenGL ES 2.0 на Orange Pi

2017   armbian   Kodi