Hello,
For those who don't know @samsamsam created excellent IPTVPlayer plugin, he also managed to create players for this plugin which run in separate process, so it's possible to have entire control over playback. One of these players also uses ffmpeg which was not used for playback in mipsel receivers yet.
Comparison of exteplayer3 (ffmpeg) to gstplayer (gstreamer1.0):
pros:
- uses much less memory
- needs much less cpu power -> immediate seeking, AV sync after seeking
- doesn't have problem with TS streams
- doesn't have problem with secure HLS streams
cons:
- framedrops in playback of packed mpeg4-part2
- HLS streams with variant playlists are pixelated
I really like the idea of separating player from enigma2 and running it as external process. We don't have to move quite big enigma2 binary to receiver in order to test. We can test player from command line without enigma2 running and AFAIK this should also mean that there are no memory leaks created by player process after it exits.
So I've created service 'serviceapp' for enigma2 which allows us to use these players.
serviceapp:
- adds service 5001: uses gstplayer
* possibility to change sink, buffer size, buffer duration
* possibility to enable/disable embedded subtitles support
- adds service 5002: uses exteplayer3
* TODO add exteplayer3 settings
- adds possibility to replace default servicemp3 service(4097)
- adds support for custom plugins settings
Thought there are still some thing things missing when compared to servicemp3:
- external subtitles support
- tags support
- cuesheet support
- epg support
- fast forward/backward
ServiceApp enigma2 plugin:
- possibity to replace enigma2 playback system, so you can use these players not only from bouquet but for example from MoviePlayer, MediaPlayer(restart enigma2 necessary)
* switch players gstplayer/exteplayer3 at enigma2 runtime
* change gstplayer settings at enigma2 runtime
- change gstplayer(5001) settings at enigma2 runtime
* sink, buffer size, buffer duration, enable/disable subtitles
Installation:
1. unpack recipes in serviceapp.tar.gz in $openpli-oe-core/meta-local/recipes-local
tar xzf serviceapp_recipes.tgz -C $openpli-oe-core_dir/meta-local/recipes-local
2. build serviceapp service + plugin
MACHINE=machinename bitbake enigma2-plugin-extensions-serviceapp
3. build @samsamsam's gstplayer + patches of mine
MACHINE=machinename bitbake gstplayer
4. (optional) You can build also experimental sink, which you can then select in ServiceApp menu, it's basically openpli dvbmediasink + mpeg4part2 unpacking + oldgen xtrend improvements mentioned in Gstreamer-1.0 topic.
MACHINE=machinename bitbake gstreamer1.0-plugin-dvbmediasink-experimental
Note, I've added this experimental sink with no intention of replacing original one. It's there so you know how can we have more sinks and make comparisons on the fly. For example this can be useful to have one sink stable and introduce new changes in experimental one, so users can freely switch between them if they want to try experimental one and report back if there are any problems, and if there are they can switch back to stable, etc..
5. ipk's are located in $openpli_oe_core_dir/build/tmp/deploy/mips32el and $openpli_oe_core_dir/build/tmp/deploy/machinename
6. For exteplayer3 there is no recipe yet, since source is not public. @samsamsam mentioned that once he cleans it up, he will make it public. For now you have to build or download pre-built ffmpeg and exteplayer3 binary.
Using pre-built ffmpeg by @samsamsam:
1. download pre-built ffmpeg archive
wget http://iptvplayer.pl/resources/ffmpeg2.8.5_mipsel_fpu.tar.gz
2. unpack in root directory
tar xzf ffmpeg2.8.5_mipsel_fpu.tar.gz -C /
Install exteplayer3 binary:
1. download binary to /usr/bin/exteplayer3
wget http://iptvplayer.pl/resources/bin/mipsel/exteplayer3_ffmpeg2.8 -O /usr/bin/exteplayer3
2. give extplayer3 execution permissions:
chmod +x /usr/bin/exteplayer3
Note there are also other versions for ffmpeg and exteplayer3:
ffmpeg2.8.5 - http://iptvplayer.pl...psel_fpu.tar.gz
ffmpeg2.8.5 (openssl1.0.2) - http://iptvplayer.pl...ssl1.0.2.tar.gz
exteplayer3 for ffmpeg2.8 - http://iptvplayer.pl...ayer3_ffmpeg2.8
exteplayer3 for ffmpeg3.0 - http://iptvplayer.pl...ayer3_ffmpeg3.0
Source:
https://github.com/mx3L/serviceapp
Example of bouquet with serviceapp services:
#SERVICE 4097:0:0:0:0:0:0:0:0:0:http%3a//movietrailers.apple.com/movies/sony_pictures/hoteltransylvania2/hoteltransylvania2-tlr2_h480p.mov?#User-Agent=iTunes:MOV_TRAILER_USER_AGENT #SERVICE 5001:0:0:0:0:0:0:0:0:0:http%3a//movietrailers.apple.com/movies/sony_pictures/hoteltransylvania2/hoteltransylvania2-tlr2_h480p.mov?#User-Agent=iTunes:MOV_TRAILER_USER_AGENT_GST #SERVICE 5002:0:0:0:0:0:0:0:0:0:http%3a//movietrailers.apple.com/movies/sony_pictures/hoteltransylvania2/hoteltransylvania2-tlr2_h480p.mov?#User-Agent=iTunes:MOV_TRAILER_USER_AGENT_EXT3
Certainly there are mistakes but hopefully not many , any input is welcome.
Attached Files
Edited by mx3L, 13 April 2016 - 16:25.