Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The "Web TV" section does not work - at all. #10

Open
original-birdman opened this issue Feb 4, 2023 · 14 comments
Open

The "Web TV" section does not work - at all. #10

original-birdman opened this issue Feb 4, 2023 · 14 comments
Labels
BUG 🐞 Not working as expected

Comments

@original-birdman
Copy link

If I click on the "Web TV" entry under main the Player frame opens.

This "allows" me to select Channels (to play) and Movies (to Play using VLC or HTML).

Neither of these does anything.

A Firefox Network trace shows no network traffic being sent at all.

In fact, I can't see any evidence of the Play button doing anything.

The Firefox debugger has Click on it bound to this, from jquery-2.2.4.min.js:137:

function() {
    self.play();
    $(this).blur();
}

but also has Click bound to this from jquery-2.2.4.min.js:3 (at offset 5542):

function(b) {
  return "undefined" != typeof n && n.event.triggered !== b.type ? n.event.dispatch.apply(a, arguments) : void 0
}

I'd expect a video to play after clicking "Play".

@original-birdman original-birdman added the BUG 🐞 Not working as expected label Feb 4, 2023
@jbleyel
Copy link
Contributor

jbleyel commented Feb 4, 2023

The WebTV has some limitations.
Vgx is chrome only and the htlm5 player is only working with transcoding and not really stable.

I’m not sure what we should do.
My first idea was: Make a setting to hide the menu item.

@original-birdman
Copy link
Author

original-birdman commented Feb 4, 2023

OK. Not a problem.

I (obviously) don't use it but felt that since it was there it should work, or at least say that it doesn't in places where it doesn't.

@wedebe
Copy link

wedebe commented Apr 27, 2023

We should remove the link and binaries for WebTV entirely, but allow the plugin to be installed manually, and upon doing so, add a sidebar link.

I spent a lot of time researching this last year and couldn't figure out any way without some command-line flags to enable deprecated functionality in the most popular browsers. And even then, I don't think it worked reliably. Anyone who wants to continue (or try) to use WebTV through VGX can put the effort in to hacking around settings so will be well-able to install a plugin on the understanding that the functionality has been deprecated by major browser makers for quite some time.

The future-proof and sensible approach to this would be to serve HTML5-capable stream formats.

@wedebe
Copy link

wedebe commented Apr 27, 2023

For reference:

Remove VXGplayer
E2OpenPlugins/e2openplugin-OpenWebif#1211

Q: Remove VXG completely
E2OpenPlugins/e2openplugin-OpenWebif#1423

Future of WebTV
E2OpenPlugins/e2openplugin-OpenWebif#723

HTML5 video streaming format
E2OpenPlugins/e2openplugin-OpenWebif#1063

Problem Webif-Web-TV
E2OpenPlugins/e2openplugin-OpenWebif#968

WebTV not working anymore?
E2OpenPlugins/e2openplugin-OpenWebif#984

@wedebe
Copy link

wedebe commented Apr 27, 2023

https://en.wikipedia.org/wiki/Google_Native_Client

On 12 October 2016, a comment on the Chromium issue tracker indicated that Google's Pepper and Native Client teams had been destaffed.[7] On 30 May 2017, Google announced deprecation of PNaCl in favor of WebAssembly.[8] Although initially Google planned to remove PNaCl in first quarter of 2018,[8] and later in the second quarter of 2019,[9] it has been removed in June 2022 (together with Chrome Apps).[10][11]

Seems the browser code that WebTV/VXG relies on has been removed from Chrome as of June 2022, so it might not even be worth providing the WebTV/VXG plugins anymore.

@wedebe
Copy link

wedebe commented Apr 28, 2023

Screenshot 2023-04-28 at 11 40 02

I've tried the --enable-nacl hack myself, but the "Click here for install plugin" links to
https://www.videoexpertsgroup.com/player_start/ ,with no link to a plugin.*

(*this should have linked to https://chrome.google.com/webstore/detail/vxg-media-player/hncknjnnbahamgpjoafdebabmoamcnni )

@wedebe
Copy link

wedebe commented Apr 28, 2023

This is particularly frustrating, given that we've been shipping 2.3MB of an unusable binary with every single download of every single image that includes OpenWebif. Extra space on users' boxes, but more worryingly, someone, somewhere/multiple people in multiple places are paying for a shit-tonne of bandwidth that they don't need to!

Screenshot 2023-04-28 at 11 46 55

Screenshot 2023-04-28 at 11 54 38

Screenshot 2023-04-28 at 11 55 10

I want to make the executive decision here - let's get rid of all code related to WebTV (no need for user notification 'cos it hasn't worked for such a long time) and VXG, including the plugins feed. It hasn't been supported by Chrome for 4 months now (even with the --enable-nacl hack). Anyone who wants to keep using it (if indeed they even can), should have a setup frozen in time for that purpose.

@jbleyel did a chunk of work quite a while back on a branch to remove related code, I've gotten myself tangled up in links at the moment but will post when I find it again.

EDIT:
E2OpenPlugins/e2openplugin-OpenWebif@a7bf756
Extra binary build was removed but this shows some of what would be involved.

@wedebe
Copy link

wedebe commented May 3, 2023

[Ignore this post, I'm just using this bug report as a whiteboard to note my thoughts and findings!]

A preliminary search shows that someone put a lot of work into a php transcoding proxy implementation a long (long!) time ago - https://github.com/andrisdru/E2Transcoder

FFMPEG is already available as an e2 plugin. It may be possible to refer to the php code to get an idea of how to implement transcoding directly in Enigma2. For the record, weak boxes WILL NOT be supported!! Anyone who expects to stream to mobile browsers instead of other methods (Android/iOS apps, IINA/VLC etc.) should expect to invest in a capable box!

@wedebe
Copy link

wedebe commented May 4, 2023

A proof of concept:
Running on Brave/Chrome on my laptop:

ffmpeg \
-i http://192.168.43.216:8001/1:0:19:1B1F:802:2:11A0000:0:0:0: \
-f mp4 \
-vcodec h264 \
-acodec aac \
-strict experimental \
-preset ultrafast \
-movflags frag_keyframe+empty_moov+faststart \
-listen 1 http://localhost:8800

HTML served (must be same origin):

<video controls autoplay style="width: 100vw; height: 100vh; max-width: 100vw; max-height: 100vh;">
    <source src="http://localhost:8800">
</video>

Some points to note:

  • This works in a very roundabout way (ffmpeg input is a network stream; ffmpeg* should read the data from enigma2 directly and serve through a new port to avoid breaking existing consumer setups or - better yet - (RTMP)[https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol]
  • Port 8001 doesn't require OpenWebif
  • A/V sync is out of whack
  • There's a lot of packet and keyframe errors until ffmpeg can make sense of data it's receiving -
    https://stackoverflow.com/q/15005436/15941923
  • I haven't looked into recordings, which should be a lot easier to process

*ffmpeg is available as an Enigma2 plugin, I haven't tried it on-box
I've never worked with ffmpeg before so I'm sure there's quite a bit of optimisation and further options that could be implemented.

Could someone create a plugin that installs ffmpeg plugin and has an action to call ffmpeg with params, please? (ideally reading config file per execution so I don't have to restart constantly)

@wedebe
Copy link

wedebe commented May 4, 2023

BTW, we shouldn't wait for a solution before removing WebTV and VXG, that code should be removed right away.

@original-birdman
Copy link
Author

FYI: The DresamDroid app on Android can stream live TV and recordings from my Xtrend et8000 (running OoenVix)

@wedebe
Copy link

wedebe commented May 4, 2023

FYI: The DresamDroid app on Android can stream live TV and recordings from my Xtrend et8000 (running OoenVix)

Yep, DreamDroid (and other apps such as VLC, IINA et al) are able to handle a whole sleuth of video formats. Unfortunately, html5 video format support is limited, and can vary per browser vendor.

This is a great summary of the state of html5 video codecs:
https://en.wikipedia.org/wiki/HTML5_video#Supported_video_and_audio_formats

@jbleyel
Copy link
Contributor

jbleyel commented May 4, 2023

Please stop here. Because we start this issue again and again and again.
Take a look on the old github for OWI.

There is no solution right now but maybe later.
VXG is working in special chrome versions.
HTML5 is working for transcoding streams in some browser.
VLC.js is not finally finished.

Transcoding via extra pc/server is not a solution.
iOS/Android Apps are full UI and not involved here.

@wedebe
Copy link

wedebe commented May 4, 2023

  • "VXG is working in special chrome versions."
    Per my posts above, no browser supports this from Decembber 2022 as of official browser announcements. There previously was a sole proponent of VXG who outlined an awkward hack which would also have stopped working as of that date.

  • "HTML5 is working for transcoding streams in some browser."
    If this is the case, WebTV should be hidden if transcoding is not available on the box (add to isVxgEnabled condition on webtv.tmpl)

Either way, VXG no longer works on any browser and should be removed from OWIF and the plugins repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BUG 🐞 Not working as expected
Projects
None yet
Development

No branches or pull requests

3 participants