Quantcast
Channel: [EN] OpenPLi Third-Party Development
Viewing all 1689 articles
Browse latest View live

EBroadLink


serviceapp - gstplayer and exteplayer3

$
0
0

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/resources/ffmpeg2.8.5_mipsel_fpu.tar.gz
ffmpeg2.8.5 (openssl1.0.2) - http://iptvplayer.pl/resources/ffmpeg2.8.5_mipsel_fpu_openssl1.0.2.tar.gz
exteplayer3 for ffmpeg2.8 - http://iptvplayer.pl/resources/bin/mipsel/exteplayer3_ffmpeg2.8
exteplayer3 for ffmpeg3.0 - http://iptvplayer.pl/resources/bin/mipsel/exteplayer3_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

Q: Pin to start plugin

$
0
0

Hello
a question, if possible
Is it possible to set a pin when opening a plugin?

 

I'm not very experienced, unfortunately ..
Thank you

 

 

Ex..

def fofofofo(???, result):
    if result:
        if ???? == 1234:
            session.open(MySession)
 
 
def main(session, **kwargs):
        pin = 1234
        session.openWithCallback(fofofofo????, InputBox, title=_("Input Pin Please: "), text="4", maxSize=False, type=Input.NUMBER
    else:
        mes = session.open(MessageBox, _('Sorry Pin Incorrect!'), MessageBox.TYPE_INFO)
        return

 
 

Frage zu InCron-Jobs: Filmabspielen, neuer Film vorhanden, Ordnerzugriff löst Aktion

$
0
0
Es gibt in Linux Distributionen eine Alternative zu den Zeitbasierten Cron-Jobs.
Dateibasierte InCron-Jobs.
Ein Event wird ausgelöst sobald sich am Dateisystem etwas bestimmtes ereignet.

Zum Beispiel wird man per EMail benachrichtigt sobald der Autotimer eine neue Aufnahme in einem bestimmten Ordner abgelegt hat.
Oder man schiebt Filme in einen Ordner auf die Festplatte und etwas bestimmtes passiert.
Oder eines der Kinder startet unberechtigt eine Aufnahme und man erhält eine Email.
Was einem auch immer einfällt... 

Meine Frage: lässt sich Incron auf Enigma2 Receivern installieren?

Gesendet von meinem SM-G935F mit Tapatalk

VCS

$
0
0
VCS-video clipping switcher(autor vlamo,idea Dima73)
-Aspect ratio all hardware
-Clipping switcher only ЕT
With VCS plugin possible:
-adjust the size and aspect ratio to fit your needs
-save these settings in profiles
-and to the extent necessary to switch between these profiles while watching TV on a "hot button"

It is worth noting that the "hot key" is assigned by setting the plugin up and running only in the context infobara.
Long press (~ 2 sec) of this button causes the plugin if you want to quickly edit, add, delete, or simply block a particular profile.
Press OK -Video Left,Video Width,Video Top,Video Height=Set slider step (1 - 20)

Kodi 15.2 for vusolose, vusolo2 and vuduo2

$
0
0

Hello,

 

As you probably already know there exists Kodi (XBMC) 13.2 plugin for other images like OpenATV, OpenBH, BH.. but this version is outdated. As a consequence many addons are not supported anymore.

 

Since XBMC modified by vuplus is mostly open-source(aside gles initialization), I ported/modified all neccessary changes to make update to latest stable version of Kodi possible.

 

Changes:

 

Kodi:

- updated to latest stable release 15.2

- ContextMenu is bind to mute button, Escape is bind to exit button (idea taken from http://www.vuplus-community.net/)

- remote mount used hdd can be used as storage

- added Enigma2Player based on ExternalPlayer

 * gathers subtitles links from addons and passes it to clients

- Enigma2Player is set as default player for every video/audio

 

Kodi E2 plugin(kodiext):

- subtitles support by subssupport plugin

- correctly handles xbmc urls with added http headers

 

Known Issues:

 

- audioengine in kodi is disabled since it doesn't work correctly(choppy sound), however it looks to be solvable since alsa is working on vuplus when tested with aplay

- internal video player is working but without sound as said above. It will have only limited use if sound is fixed, since only low quality video is fluent, because of software decoding.

- when kodi exits, it always crashes. I debug it with gdb and find out that problem lies in vu gles drivers:

Program received signal SIGSEGV, Segmentation fault.
0x777b5238 in ?? ()
   from /home/marko/Projects/Sdk/openpli-mipsel32-kodi-image/sysroots/mips32el-oe-linux/usr/lib/libGLESv2.so

....

 

How to build:

 

1. clone openpli-oe-core master-next branch

git clone https://github.com/OpenPLi/openpli-oe-core -b master-next

2. enter to openpli-oe-core directory and setup your build environment

cd openpli-oe-core;make

3. enter meta-vuplus directory, add my remote fork of meta-vuplus layer, checkout kodi_15_2 branch

cd meta-vuplus;git remote add vukodi https://github.com/mx3L/meta-vuplus.git;git fetch vukodi;git checkout kodi_15_2

4. enter meta-local directory, clone kodi recipes

cd ../meta-local/;git clone https://github.com/mx3L/recipes-kodi.git

5. enter build directory, set build environment variables, build kodi-image for your machine(vusolose,vusolo2,vuduo2), I set vusolose.

cd ../build/;source env.source;MACHINE=vusolose bitbake kodi-image

6. If everything goes as it should, your kodi image is in your build directory:

openpli-oe-core/build/tmp/deploy/images/$(MACHINE)/

Note:

If you already built master-next, you have to clean vuplus-dvb-modules from rootfs, otherwise there will be collision with vuplus-dvb-proxy.

MACHINE=yourmachine bitbake vuplus-dvb-modules -f -c clean

Testing images:

 

- these images are built on master-next branch of openpli-oe-core and are only ment for testing(no feeds available, you've to build them or include your packages in kodi-image.bb), only vusolose image is tested, since I don't have other receivers.

Please try vusolo2 and vuduo2 images and let me know if Kodi is working.

 

vusolose:

https://dl.dropboxusercontent.com/u/38760017/openpli-enigma2-5-vusolose_kodi_usb.zip

 

vusolo2:

https://dl.dropboxusercontent.com/u/38760017/openpli-enigma2-5-vusolo2_kodi_usb.zip

 

vuduo2:

https://dl.dropboxusercontent.com/u/38760017/openpli-enigma2-5-vuduo2_kodi_usb.zip

 

 

PS:

Thank you to @samsamsam, who send me his ffmpeg configure options

Gstreamer update question

$
0
0

Good morning, having a version 4 image installed on my dm800, you can only update the gstreamer (maybe with an ipk) or you should also upgrade the image, thank you.

Restore factory splash screens

$
0
0

Attached a file for restoring the factory splash screen for several brands/models.

Just extract the file to an USB stick and flash as you would flash an image. The actual image & data will not be overwritten.

 

If more boxes/brands can be supported please let me know (and please including a link to the factory image).

 

Attached File  Restore_Splash_VU_Xtrend_Mutant_GoldenInterstar_Miraclebox.zip   2.24MB   3 downloads


12437 , Thor7

$
0
0

I have vu+duo2 with 4 sat tuner. 120 cm motorized dish with inverto black ultra LNB. I live in Sweden. I have strange problem. I receive all KU transponders on 0.8 W satellite  with excellent signal, with exception of 12437 H 3000 2/3. I use only tuner A , i tested other tuners , but same problem. I have played with transponders parameter , but still no signal. i have tested different images , including original image. The dish , cable and LNB is ok , as i can receive most of channels from 12W to 47 E. Any help and suggestions is appreciated. Thanks in advance.

OpenWebif suggestion: create a .M3U files for a whole bouquet

$
0
0
Hi,

I have just created a script to convert userbouquet files into .M3U file so we can zap directly from within VLC playlist.

Would be nice to have this .m3u file generation directly from OpenWebif instead of creating .m3u individually for each channel that we want to stream.
My idea is to have it include close to each bouquet name, so in one click we can generate a full playlist.

I have attached the script so people interested can have a look at it.

Regards,

Pr2

Attached Files

Send internet videos to enigma2 receivers

$
0
0

Hi to all.

An interesting option, not so known for enigma2 decoders, but that I use often, is the possibility of send videos from internet to the decoder.

e.g.: on this website there are HD films that I can send on my decoder using the apps WebVideoCast and Dreamdroid. Dreamdroid is recognized like a video player on an android devices, so simply when web video cast extract the video, you can choose dreamdroid like video player on your android device to see it, in this way the video is sent to decoder instead to see it on the smartphone!

This method works with almost all video platforms!

The problem is that the latest dreamdroid versions don't work well, I can't send videos to all my decoders in my house and above all dreamdroid doesn't support openwebif!

 

Now I say: is possible that there aren't alternative methods to send videos from internet to the enigma2 decoders? Is possible that there aren't other apps that can send internet videos to enigma2 machines?

Anyone develope a specific app to do this?

Crossepg

$
0
0

The Crossepg provided in OpenPLi does not import XMLTV files anymore.

I am not sure where it is taken from (probably OE-Alliance)

This version has not been updated for a long time.

 

The version on E2OpenPlugins:  https://github.com/E2OpenPlugins/e2openplugin-CrossEPG

has been adapted for reading xz files.  However I am unable to make an ipk from it, or otherwise install it on a receiver.

 

I am getting several questions about importing EPG with the ais of CrossEPG.  And I am unable to answer them, by the lack of a working version.

One of the problems is that Updating the Rytec sources doe not seem to work anymore. In python file which is suppose to do this, some files are being read which holds the data.

These files are still present and up-to-date  (although they contain the .gz references at the moment)

 

My questions:

 

1. Update crossepg_rytec_update.py so it works again.

2. Provide a bitbake recipe which I can run in the OpenPLi building environment, so I can build a working version of Crossepg.

3. Maybe updating also the version on OE-Alliance

 

Lack of answers, will results in me complete abandoning Crossepg.

 

Willy

 

Enigma2 channels list to VLC playlist Converter - php

$
0
0
Enigma2 Channels List Converter

This PHP script will download the channels list from your Enigma2 box at the configured IP address and convert them to an XSPF playlist for VLC player.
The stream URLs inside the playlist will point to the address separately configured. Useful in case you only want to port forward to the internet only the streaming port of the box, not the entire web interface.
To modify the box IP and the URL addresses, please edit this PHP script on your server.
Please note that if the channels list on the box is big (eg. rotor list), it may take a couple of seconds to process the conversion.

 

<?php

// the IP address of the Enigma2 box on the network, with access to the web interface
$dreamboxip = "192.168.1.90";

// the entire http address and port of the streaming proxy, usually the same as the box IP and port 8001
$streamaddress = "http://192.168.1.90:8001/";

// the name of the playlist file, extension will be added automatically
$playlistfilename = "yourbox_channels_for_vlc";

// based on openwebif api at http://e2devel.com/apidoc/webif/#getallservices
//------------------------------------------------------------------------------------------------------------------------------

if(isset($_GET["xspf"])) {

if($_GET["xspf"] === "save") {

	$urlallsvc = "http://" . $dreamboxip . "/web/getallservices";
	$allsvc = simplexml_load_file($urlallsvc);

	$xspf = '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL . '<playlist xmlns="http://xspf.org/ns/0/" xmlns:vlc="http://www.videolan.org/vlc/playlist/ns/0/" version="1">' . PHP_EOL . '	<title>TV Channels</title>' . PHP_EOL . '	<trackList>' . PHP_EOL;

	$i = 0;

	foreach ($allsvc->e2bouquet as $e2bouquet) {
	$e2bouquet_name=$e2bouquet->e2servicename;

	$xspf .= '		<track>' . PHP_EOL . '			<location></location>' . PHP_EOL . '			<title>' . $e2bouquet_name . '</title>' . PHP_EOL . '		</track>' . PHP_EOL;

	foreach ($allsvc->e2bouquet[$i]->e2servicelist->e2service as $e2service) {
		$e2service_refr=$e2service->e2servicereference;
		$e2service_name=$e2service->e2servicename;
		if (strstr($e2service_refr, "1:64") != false) {
                        $xspf .= '		<track>' . PHP_EOL . '			<location></location>' . PHP_EOL . '			<title>' . $e2service_name . '</title>' . PHP_EOL . '		</track>' . PHP_EOL;
		} else {
			$xspf .= '		<track>' . PHP_EOL . '			<location>' . $streamaddress . $e2service_refr . '</location>' . PHP_EOL . '			<title>' . $e2service_name . '</title>' . PHP_EOL . '		</track>' . PHP_EOL;
		}
	}
	$i = $i + 1;
	}

	$xspf .= '	</trackList>' . PHP_EOL . '</playlist>' . PHP_EOL;

	header('Content-Type: plain/text');
	header('Content-disposition: attachment; filename=' . $playlistfilename . '.xspf');
	print $xspf;

}

} else {

	print '<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Enigma2 to VLC</title></head><body>';
	print '<h1><b>Enigma2 Channels List Converter</b></h1>';
	print 'This PHP script will download the channels list from your Enigma2 box at <b><i>' . $dreamboxip . '</i></b> and convert them to an XSPF playlist for VLC player.<br>';
	print 'The stream URLs will point to the address <b><i>' . $streamaddress . '</i></b> inside the playlist.<br>To modify the box and the URL addresses, please edit this PHP script on your server.<br>';
	print 'Please note that if the channels list on the box is big (eg. rotor list), it may take a couple of seconds to process the conversion.<br><br>';
	print '<a href="' . $_SERVER['REQUEST_URI'] . '?xspf=save">Click here to save the XSPF playlist on your PC</a><br>';

	print '</body>';

}

?>

Tested with OpenPLi 3.0 box webinterface OWIF 0.1.7, php script running on Ubuntu 12.04 in the same network.

 

traduccion español

$
0
0

Hello I leave the Spanish po translated everything for the git

trage video streams in openpl 6

$
0
0

Wanneer ik een youtube video wil bekijken wordt deze traag en hortend weergegeven. Kan iemand mij vertellen wat ik moet instellen om dit weer vloeiend te laten verlopen zoals dat bij eerdere versies van openpli ook gewoon goed ging?

En hoe kan ik de applicatie youtubeTV weer downloaden?


ChannelSelectionNavigator

$
0
0

-open Channel Selection list -->press buttons playlist/filelist to change events

-setup-->menu system

Compiling linux kernel dvb-usb driver

$
0
0
Hello. My question is how to compile bm750 linux kernel dvb-usb drivers? they are not included in the openpli image obtened with the Makefile for the new head 2.1. The recipes v4ll-dvb and firmwares contains the information, but i am unable to use the related bb file! (I am interested by af9035 driver). Curiously the compilation of softcam oscam is easy! Thanks for this great work and a solution for this problem.

Mgcamd for ARM cpu (Zero 4k)

$
0
0

Any help please how to make mgcamd work on new VU+ ARM cpu?

assign choice s1-s2 in configlist

$
0
0

a small question for you experts.
I can not assign the configured server configured to config

es.

 

 

In configlist

.............
sessions = []
config.plugins.MYPLUGIN = ConfigSubsection()

config.plugins.MYPLUGIN.server = ConfigSelection(default='SERVER1', choices=[('SERVER', _('SERVER1')), ('SERVER2', _('SERVER2'))])

 

............

global server

if config.plugins.MYPLUGIN.server.value == 'SERVER1' :
    server = 'http://forum.openpli.org'
if config.plugins.MYPLUGIN.server.value == 'SERVER2' :
    server = 'http://server.fake.fake'

myfile = ('%smyfile.txt' % server)

 

............................................

 

class Server(screen):

.............

.............

 

    def checkmyfile(self):
        url = myfilet
        getPage(url).addCallback(self.CheckOK).addErrback(self.CheckNOK)

 

    def CheckOK(self, data):
        try:
            self['text'].setText('ok')
        except:
            self['text'].setText('No OK')

    def CheckNOK(self, error):
        self['text'].setText_('Server Off')

 

 

########################

 

class Config(Screen, ConfigListScreen):

............

.........

....

 

    def createSetup(self):
        self.editListEntry = None
        self.list = []
        self.list.append(getConfigListEntry(_('Server:'), config.plugins.fReE_iPtV_pAnDa_SaT_tEaM.server))
        self['config'].list = self.list
        self["config"].setList(self.list)

 

 

    def save(self):
        if self['config'].isChanged():
            for x in self['config'].list:
                x[1].save()
            configfile.save()
            self.mbox = self.session.open(MessageBox, _('Settings saved'), MessageBox.TYPE_INFO, timeout=5)
            self.close()
        else:
            self.close()

 

 

 

######################

 

the problem is that if server1 or server2 (fake-no-connection) is always found with server1 and myfile is downloaded (in this case the message is always checkOk)
What escapes me ..

of course i checked in etc / enigma2 / setting is the selected Server is saved.
even leaving the plugin and coming back is the same.

 

sorry for my google english
thanks for the answer if it's not the right place as well, I'll see how to fix it

 

;) 
 

 

 

 

 

 

 

WebBrowser with video player

$
0
0

Hello for all users, sorry for my english, i'm from Uzbekistan :unsure: . I have one question, is it possible to view video from sites opened in openopera? Or maybe there are other ways to view videos from web sites?

Viewing all 1689 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>