Скрипты для запуска внешнего плеера 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
6 комментариев
Oleg Pitsenko

root@orangepipc:/root/smplayer-17.5.0# ./create_deb.sh
rm: невозможно удалить ’build-stamp’: Нет такого файла или каталога
rm: невозможно удалить ’src/smplayer’: Нет такого файла или каталога
./create_deb.sh: 14: ./create_deb.sh: fakeroot: not found
./create_deb.sh: 15: ./create_deb.sh: fakeroot: not found

Oleg Pitsenko

разобрался.....

Oleg Pitsenko

/root/pvr_mpv.sh: 11: /root/pvr_mpv.sh: sqlite3: not found
grep: /root/.kodi/userdata/addon_data/pvr.iptvsimple/iptv.m3u.cache: Нет такого файла или каталога
/root/pvr_mpv.sh: 15: /root/pvr_mpv.sh: sqlite3: not found
sh: echo: I/O error

что может быть?

ua3nbw

надо установить acestream и apt install sqlite3
покажите uname -a и cat ~/.kodi/temp/kodi.log

John Edwards

I have put this in but the keyboard seems to be ignored.

ua3nbw

The pause does not work. Only output works.

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

can u help me? how to display subtitle,when we using normal command via terminal, work normally,but when play in kodi mpv/smplayer not showing subtitle

ua3nbw

If you have ever had the subtitles hidden or used a custom subtitle settings
Try pressing v If it didn’t show
Un-check the custom subtitle in the right click menu.

https://askubuntu.com/questions/666202/smplayer-subtitled-stopped-showing

hostkit

Subtile showing when using vo=x11 but new problem, sometimes playback showing kodi interface when play video. But when using vo=vdpau work normally without subtitle

Ваш комментарий
адрес не будет опубликован

ХТМЛ не работает

Ctrl + Enter
Популярное