openatv / enigma2

openatv-gui
GNU General Public License v2.0
200 stars 317 forks source link

Wrapper plugins are not working with OpenATV 7.3 and 7.4. - FF_ERROR: "Protocol not found." #3320

Closed odziom91 closed 5 months ago

odziom91 commented 6 months ago

Hello, I'm really confused with "wrapper" plugins in OpenATV which are definitely not working at all. Please check info below for details. It is "similar" to bug here: https://github.com/openatv/enigma2/issues/3238 But for me - it doesn't work at all.

Describe the bug / Actual behaviour: I noticed that IPTV that any wrapper plugin (streamlink, yt-dlp, yt-download) do not work at all.

Expected behaviour: The channels using the wrappers should work.

Has this issue started to happen just recently? The problem persists on tested stable (7.3) and beta (7.4) versions of OpenATV.

To reproduce:

  1. I tested this problem with AZMAN IPTV playlist which is available here: https://raw.githubusercontent.com/azman26/azmanIPTVsettings/main/userbouquet.iptv-pl-regionalne-yt-radio-azman.tv

  2. On fresh instance of OpenATV it is required to install few things:

    opkg install enigma2-plugin-systemplugins-serviceapp
    opkg install python3-youtube-dl
    opkg install python3-yt-dlp
    opkg install enigma2-plugin-extensions-ytdlpwrapper
    opkg install enigma2-plugin-extensions-ytdlwrapper
    opkg install enigma2-plugin-extensions-streamlinkwrapper
    opkg install streamlinksrv
  3. Examples of channels from the playlist, which are available 24/7:

Streamlink:

#SERVICE 4097:0:1:64:1:48:0:0:0:0:streamlink%3a//http%3a//tvtoya.pl/player/live:Toya
#DESCRIPTION Toya

YT-DLP:

#SERVICE 4097:0:1:58:1:48:0:0:0:0:YT-DLP%3a//https%3a//www.youtube.com/@TelewizjaDamiRadom/live:TV DAMI  (YT)
#DESCRIPTION TV DAMI  (YT)
  1. Just run them on created playlist with.

Note: For links which are using streamlink service replacing streamlink%3a// with http://127.0.0.1:8088/ is a workaround for this problem. So it looks like it is not a problem with service. YT-DL and YT-DLP streams are not possible to fix with workaround.

Screenshots None. Channel won't start with black screen.

Image/Box Model (please complete the following information):

Additional context Error which I've got when the channels starts:

10:24:44.8256 [Navigation] playref 4097:0:1:58:1:48:0:0:0:0:YT-DLP%3a//https%3a//www.youtube.com/@TelewizjaDamiRadom/live:TV DAMI  (YT)
10:24:44.8259 ExtEplayer3::ExtEplayer3 initializing with options:
10:24:44.8259  aac_swdec                      = 0
10:24:44.8259  ac3_swdec                      = 0
10:24:44.8260  audio_id                       = not set
10:24:44.8260  audio_uri                      = not set
10:24:44.8260  dash_audio_id                  = not set
10:24:44.8260  dash_video_id                  = not set
10:24:44.8260  downmix                        = 0
10:24:44.8261  dts_swdec                      = 0
10:24:44.8261  eac3_swdec                     = 0
10:24:44.8261  ffmpeg_option                  = not set
10:24:44.8261  flv2mpeg4                      = not set
10:24:44.8261  live_ts                        = not set
10:24:44.8262  loop                           = not set
10:24:44.8262  lpcm_injection                 = 0
10:24:44.8262  mp3_swdec                      = 0
10:24:44.8262  mpegts_program_id              = not set
10:24:44.8262  nice                           = not set
10:24:44.8263  no_pcm_resampling              = not set
10:24:44.8263  progressive                    = not set
10:24:44.8263  rtmpproto                      = 0
10:24:44.8263  subtitle_id                    = not set
10:24:44.8263  wma_swdec                      = 0
10:24:44.8369 eServiceApp::isCurrentlySeekable
10:24:44.8370 eServiceApp::unpause
10:24:44.8371 [Pixmap] setPixmapNum(0) failed!  Defined pixmaps: [].
10:24:44.8372 eServiceApp::isCurrentlySeekable
10:24:44.8375 eServiceApp::isCurrentlySeekable
10:24:44.8381 eServiceApp::isCurrentlySeekable
10:24:44.8382 eServiceApp::unpause
10:24:44.8383 [Pixmap] setPixmapNum(0) failed!  Defined pixmaps: [].
10:24:44.8383 eServiceApp::isCurrentlySeekable
10:24:44.8387 [Notifications] RemovePopup id = ZapError
10:24:44.8388 eServiceApp::fillSubservices - failed to retrieve subservices, not supported url
10:24:44.8436 PlayerBackend::gotMessage - tStart
PlayerApp::processStart: exteplayer3 "YT-DLP://https://www.youtube.com/@TelewizjaDamiRadom/live" -h "User-Agent: Mozilla/5.0 (Linux; Tizen 2.3; SmartHub; SMART-TV; SmartTV; U; Maple2012) AppleWebKit/538.1+ (KHTML, like Gecko) TV Safari/538.1+" -a 0 -n 0 
10:24:44.8468 [eRCDeviceInputDev] 0 160 1
10:24:44.8471 [InfoBarGenerics] Key 'KEY_OK' (352) Break.
10:24:44.8552 ExtEPlayer3::handleJsonOutput - unhandled key "EPLAYER3_EXTENDED"
10:24:44.8564 ExtEPlayer3::handleJsonOutput - unhandled key "FF_ERROR"
10:24:44.8565 ExtEPlayer3::handleJsonOutput - unhandled key "PLAYBACK_OPEN"
10:24:44.8601 PlayerBackend::recvStopped - retval = 0
10:24:44.8602 PlayerBackend::thread_finished
10:24:44.8690 eServiceApp::isCurrentlySeekable
10:24:44.8747 eServiceApp::getNumberOfTracks
10:24:44.8748 WaitThread - waiting for 500ms
10:24:44.8748 WaitThread - in time

10:24:44.8832 PlayerBackend::gotMessage - stop
10:24:44.8833 eServiceApp::gotExtPlayerMessage - stop
10:24:44.8834 eServiceApp::isCurrentlySeekable
10:24:44.8835 eServiceApp::unpause
10:24:44.8836 [Pixmap] setPixmapNum(0) failed!  Defined pixmaps: [].
10:24:44.8837 eServiceApp::isCurrentlySeekable

When I put command directly via ssh I received "Protocol not found":

root@pulse4k:~# exteplayer3 "YT-DLP://https://www.youtube.com/@TelewizjaDamiRadom/live" -h "User-Agent: Mozilla/5.0 (Linux; Tizen 2.3; SmartHub; SMART-TV; SmartTV; U; Maple2012) AppleWebKit/538.1+ (KHTML, like Gecko) TV Safari/538.1+" -a 0 -n 0 
{"EPLAYER3_EXTENDED":{"version":68}}
Software decoder will be used for AAC codec
Force rtmp protocol implementation
file: [YT-DLP://https://www.youtube.com/@TelewizjaDamiRadom/live]
{"FF_ERROR":{"msg":"Protocol not found","code":-1330794744}}
{"PLAYBACK_OPEN":{"OutputName":"Output", "file":"YT-DLP://https://www.youtube.com/@TelewizjaDamiRadom/live", "sts":-1}}
4l3x2k commented 6 months ago

It looks like you are installing the ServiceApp. What did you set the media playback system to? Original, Exteplayer3, gstplayer? I assume it's on Exteplayer3. And that will be exactly the error.

The bouquet you linked looks okay so far. However, it uses different playback systems identified by "4097, 5002, 5003". In my opinion, this can only work if the media playback system in the ServiceApp is set to original.

The wrapper is chosen by using the keywords “streamlink, YT-DL, YT-DLP” and are not part of the actual URL. The keywords only signal to enigma which wrapper should be used.

This means that your last example via the console naturally outputs “Protocol not found”. You would have to remove the "YT-DLP://". However, you can't get to the URL that works for playback. This is exactly the task that streamlink or yt-dlp takes on.

I also just see that your box uses servicehisilicon. That would be another media playback system and the reason you installed the ServiceApp in the first place.

My tip: Set up a clean 7.4 image in multiboot. Uninstall the system plugin “servicehisilicon”. Then install the packages as you mentioned above and please leave out the ServiceApp for now. Afterwards you can import and test the bouquet from azman again.

4l3x2k commented 6 months ago

@odziom91 An attempt was made to fix the problem with a media playback system other than the original in the ServiceApp.

https://github.com/oe-mirrors/serviceapp/commit/44eae7772569d48e0955a8fc819ae543e66a1223

It should be available with an image after May 11, 2024.

Please give us feedback.

odziom91 commented 5 months ago

@4l3x2k Thank you for answers. I apologize for the lack of response...

What did you set the media playback system to? Original, Exteplayer3, gstplayer? I assume it's on Exteplayer3.

Yes. Exteplayer3.

The wrapper is chosen by using the keywords “streamlink, YT-DL, YT-DLP” and are not part of the actual URL. The keywords only signal to enigma which wrapper should be used.

I understand that and agree, but I thought that it "should" works with all playback systems. If it is not - it is not a problem to leave it as "original".

I also just see that your box uses servicehisilicon. That would be another media playback system and the reason you installed the ServiceApp in the first place.

That's right. Unfortunately when I changed in ServiceApp to "original" it used "servicehisilicon" to playback DLP, streamlink, etc.. Unfortunately it is completly broken (streams were non stop buffering), so I've uninstalled it - without issues so far.

I've installed clean stable (7.3) image and checked all scenarios.

  1. ServiceApp installed - option with exteplayer3: broken at all
  2. ServiceApp installed - option with "original", servicehisillicon in use: streaming starts but hangs
  3. ServiceApp installed - option with "original", servicehisillicon uninstalled: it works without problems

I don't know if the patch was applied in 7.3 image (27.05.2024), but if it is available here, unfortunately it is not helpful for me.

edit: btw. Is there any reason why "servicehisillicon" is applied for Pulse4K image, but in image for SF8008 doesn't?

jbleyel commented 5 months ago

You need 7.4 if you use ServiceApp and StreamlinkWrapper. There is no fix for 7.3

odziom91 commented 5 months ago

Okay. I've installed 7.4 beta image (26.05.2024) and it works on both setups - original and serviceapp with exteplayer3. Tested with YT-DLP and Streamlink wrappers. Thank you for support! :)