Iptvplayer

From OpenPLi Wiki
Revision as of 20:21, 8 July 2017 by Rick Hunter (talk | contribs)
Jump to: navigation, search

FFMPEG INSTALLATION FOR MIPSEL PLATFORMS

Before everything else, check if your image already has an ffmepg package installed by sending this telnet command (using PuTTy (See: https://wiki.openpli.org/Tips_and_Tweaks#Telnet_usage), for instance):

ffmpeg -version

If you see "Command not recognised" or so - you need to install it.

Preparation:
Before installation make sure that you have enough space in your rootfs. You need at least 15MB free space.
To check free space in your rootfs you can use following command:

df -h /
 Sample output:
Filesystem                Size      Used Available Use% Mounted on
ubi0:rootfs             440.3M    183.2M    257.0M  42% /

If you do not have enough flash memory for all of the plugins etc. that you want to install, then another way of installing it all is to either use:

A) Flash Expander for which you need a USB memory stick, with 2 partitions (best in EXT4 format): -at least 1/2 GB for /usr folder, i.e. the Flash Expander itself and -the rest for SWAP, picons, subtitle folder, EPG etc. etc.

I would recommend Mini Tool Partition Wizard 10, under Windows OS, to partition and format the USB stick.

B ) MultiBoot, also on a large USB memory stick (various plugins are available for it, Open MultiBoot, Mini Multi Boot etc.)

Once you prepare the image properly, you can proceed with ffmpeg and the IPTV Player installation...
To choose the correct ffmpeg package for your image you need to find out the following:

1) OpenSSL version 2) glibc version 3) hard/soft float

1) How to check your OpenSSL version:

One has to connect with your STB and then give this telnet command, for example, using a programme called PuTTy:

openssl version

One may get something like this:

OpenSSL 1.0.2d 9 Jul 2015

So, in that case we know that we have version 1.0.2
One may also get the following output to this command:

-sh: openssl: not found

In this case, one should check OpenSSL version as follows:

ls -la /usr/lib/libssl*
 Example output:
-rwxr-xr-x    1 root     root        383624 Aug 19  2015 /usr/lib/libssl.so.0.9.8

So, in this case the OpenSSL version is 0.9.8.
In case one gets:

/usr/lib/libssl.so.1.0.0

one must make an additional check:

grep OPENSSL /usr/lib/libssl.so.1.0.0
 Sample output:
OPENSSL_cleanse
OPENSSL_DIR_read
OPENSSL_DIR_end
OPENSSL_1.0.0
OPENSSL_1.0.1
OPENSSL_1.0.1d
OPENSSL_1.0.2
OPENSSL_DIR_read(&ctx, '
OPENSSL_malloc Error

So, in this case one knows one has version 1.0.2.

2) How to check glibc version:

Checking glibc version is very easy:

ls -la /lib/libc-*
 Example output:
-rwxr-xr-x    1 root     root       1541476 Aug 19  2015 /lib/libc-2.21.so

I.e. this indicates version 2.21.

3) Checking for hard/soft float:

One must give the following telnet commands:

cd /tmp
wget http://iptvplayer.pl/tools/mipsel/readelf
chmod 777 readelf
./readelf -a /lib/libc-*.so | grep FP:
rm readelf

Sample output: Tag_GNU_MIPS_ABI_FP: Soft float

or

Tag_GNU_MIPS_ABI_FP: Hard float (double precision)

When you already know versions of OpenSSL, glibc used in your image and used FPU mode you are ready to choose ffmpeg package.
If you have glibc version lower than 2.20 you need to use package for _old_
All packages are available here: http://iptvplayer.pl/resources/ (one can find SH4 and ARM platforms covered there, as well)


Packages for MIPSEL platforms:

ffmpeg3.2.2_mipsel_fpu_hard_openssl0.9.8_dash_librtmp_native_rtmp.tar.gz ffmpeg3.2.2_mipsel_fpu_hard_openssl1.0.0_dash_librtmp_native_rtmp.tar.gz ffmpeg3.2.2_mipsel_fpu_hard_openssl1.0.2_dash_librtmp_native_rtmp.tar.gz ffmpeg3.2.2_mipsel_old_fpu_hard_openssl0.9.8_dash_librtmp_native_rtmp.tar.gz ffmpeg3.2.2_mipsel_old_fpu_hard_openssl1.0.0_dash_librtmp_native_rtmp.tar.gz ffmpeg3.2.2_mipsel_old_fpu_hard_openssl1.0.2_dash_librtmp_native_rtmp.tar.gz ffmpeg3.2.2_mipsel_fpu_soft_openssl0.9.8_dash_librtmp_native_rtmp.tar.gz ffmpeg3.2.2_mipsel_fpu_soft_openssl1.0.0_dash_librtmp_native_rtmp.tar.gz ffmpeg3.2.2_mipsel_fpu_soft_openssl1.0.2_dash_librtmp_native_rtmp.tar.gz ffmpeg3.2.2_mipsel_old_fpu_soft_openssl0.9.8_dash_librtmp_native_rtmp.tar.gz ffmpeg3.2.2_mipsel_old_fpu_soft_openssl1.0.0_dash_librtmp_native_rtmp.tar.gz ffmpeg3.2.2_mipsel_old_fpu_soft_openssl1.0.2_dash_librtmp_native_rtmp.tar.gz

One can see the full name of a package as follows:

http://iptvplayer.pl/FAQ/screens/ffmpeg_packages.png


FFMPEG INSTALLATION PROCEDURE Give a series of following telnet commands...

General example:

cd /tmp
wget http://iptvplayer.pl/resources/ffmpeg3.2.2_mipsel_XXX_YYY_YYY_opensslZ.Z.Z_dash_librtmp_native_rtmp.tar.gz
tar -xvf ffmpeg3.2.2_mipsel_XXX_YYY_YYY_opensslZ.Z.Z_dash_librtmp_native_rtmp.tar.gz -C /
rm ffmpeg3.2.2_mipsel_XXX_YYY_YYY_opensslZ.Z.Z_dash_librtmp_native_rtmp.tar.gz

For latest stuff installed, for instance, these commands should follow, as a concrete example:

cd /tmp
wget http://iptvplayer.pl/resources/ffmpeg3.2.2_mipsel_fpu_hard_openssl1.0.2_dash_librtmp_native_rtmp.tar.gz
tar -xvf ffmpeg3.2.2_mipsel_fpu_hard_openssl1.0.2_dash_librtmp_native_rtmp.tar.gz -C /
rm ffmpeg3.2.2_mipsel_fpu_hard_openssl1.0.2_dash_librtmp_native_rtmp.tar.gz

You should always collect output returned by install command, it will be useful when installation failed.

After installation you should check if ffmpeg is working correctly:

ffmpeg -version

Sample output:

ffmpeg version 3.2.2 Copyright © 2000-2016 the FFmpeg developers
built with gcc 4.9.2 (GCC)
configuration: --sysroot=/mnt/new2/xspeedlx1/build-enviroment/builds/openatv/release/et4x00/tmp/sysroots/et4x00 --cross-prefix=mipsel-oe-linux- --prefix=/mnt/new2/_BRCM_/exteplayer3/tmp/ffmpeg/tmp/mipsel/ffmpeg-3.2.2/usr/ --enable-cross-compile --target-os=linux --arch=mipsel --disable-mipsdsp --disable-mipsdspr2 --disable-mipsfpu --enable-pic --enable-shared --disable-static --disable-debug --disable-ffplay --disable-ffprobe --disable-ffserver --disable-outdevs --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-lzma --enable-openssl --enable-zlib --enable-cross-compile --enable-small --disable-sdl --disable-xlib --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --enable-nonfree --disable-muxers --disable-encoders --disable-devices --enable-librtmp --extra-cflags=' -mel -mabi=32 -march=mips32 -I/mnt/new2/xspeedlx1/build-enviroment/builds/openatv/release/et4x00/tmp/sysroots/et4x00/usr/include/libxml2/ -I/mnt/new2/new_openssl_mipsel/openssl-1.0.2g/include/ -L/mnt/new2/new_openssl_mipsel/openssl-1.0.2g/ -L/mnt/new2/new_openssl_mipsel/rtmpdump/librtmp/ ' --extra-ldflags=' -L/mnt/new2/new_openssl_mipsel/openssl-1.0.2g/ -L/mnt/new2/new_openssl_mipsel/rtmpdump/librtmp/ -lssl -lcrypto -lrtmp -lxml2 '

libavutil      55. 34.100 / 55. 34.100
libavcodec     57. 64.101 / 57. 64.101
libavformat    57. 56.100 / 57. 56.100
libavdevice    57.  1.100 / 57.  1.100
libavfilter     6. 65.100 /  6. 65.100
libswscale      4.  2.100 /  4.  2.100
libswresample   2.  3.100 /  2.  3.100

IPTV PLAYER INSTALLATION

rm  -rf  /usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer
cd /tmp
wget http://iptvplayer.vline.pl/download/update/latest.pythonX.X.tar.gz
tar -xzf latest.pythonX.X.tar.gz -C /tmp
rm latest.pythonX.X.tar.gz
cp -r iptvplayer-for-e2.git/IPTVPlayer /usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer
rm -rf iptvplayer-for-e2.git/IPTVPlayer
sync
reboot

CONFIGURE IPTV Player After reboot, go to Menu > Plugins > IPTV Player and configure it carefully according to your needs, HW, internet connection etc.

Do it carefully!!! Everything, from:

- which players to enable/disable, - where to place buffering, - eplayer3 options, - which players have priority by default (with or without buffering) - which player to start automatically with or without buffering - proxies, if needed to overcome geoblocking (one can also set a proxy in Enigma2 settings > Network device > Primary and Secondary DNS addresses) - ...and onwards...

Just go into each option and try various settings, to see what works best for you and your HW etc.
Make sure you have USB or HDD mounted/accessible and IPTV Player directed to those devices, so everything can function as intended!

Before choosing a channel/file use the blue button to choose the default player, with or without buffering, according to your situation/HW/internet speed etc.


For developers, to include the latest in your images

Repo: https://gitlab.com/iptvplayer-for-e2/iptvplayer-for-e2

Last version with source code: http://iptvplayer.vline.pl/download/update/latest.pythonX.X.tar.gz

Good luck! gorski

P.S. Once in a list of videos to play, "Press "8" on your remote to play all videos. You can also play in random order: press blue -> randomize..."
P.P.S. For subtitles one must use extplayer3 and via blue button choose the correct subs to download. Use the same button to sync the subs, if they aren't at the correct speed/spot.