videojs / video.js

Video.js - open source HTML5 video player
https://videojs.com
Other
37.98k stars 7.44k forks source link

HLS stream and chromecast test #6358

Closed DJ-PD closed 4 years ago

DJ-PD commented 4 years ago

Spent many hours on extremely many tests but I am stuck right now and need your expertise. I am not sure if I doing something wrong, videojs/plugins bugs or if web browser chrome getting more and more sensitive after version 75, maybe a mix of everything. Please help me to get back on track. - Chromecast hardware both old and new Ultra version - Videojs v7.x - Plugins: Silvermine Chromecast, videojs-youtube and videojs-http-source-selector - https://codepen.io/DJ-PD/pen/bGNwQYe

-Test and issues-

  1. HLS live stream is more sensitive over HTTPS (interrupts more). Without overrideNative: !videojs.browser.IS_SAFARI setting it works extremely bad especially via Andriod/Chrome Unencrypted Live stream i.e over HTTP works good.

  2. TextTracks seems to be cleared/reset between sources as long source techOrder is HTML5 or HLS (I haven’t test flash). As soon a YouTube techOrder/source is played TextTrack warnings appears (“VIDEOJS: WARN: Calling addRemoteTextTrack”) and next source player control bar include captions icon and subtitles appears from wrong source. Same warning appears with use of chromecast plugin techOrder/function. Example: Jump between “ADV BipBop” and “Test stream URL” ADV BipBop getting cleared and it looks good. Jump between “ADV BipBop” and “YT 2” and it fails, thereafter play “Test stream URL” and you will see captions icon + subtitles follow to next source.

  3. Chromecast plugin function doesn’t work on techOrder youtube it just presents a blue chromecast icon on TV. On a working HLS live stream source, connection interrupts every second minute even if it’s just a couple of ms (hiccup). Same stream works perfect via chrome built in cast function with videojs in fullscreen mode.

  4. Playing a YouTube video with use of Videojs and YouTube plugin via codepen platform playback often start one time and after a webpage refresh player get stuck?

  5. ADV Stream example raining WebVTT warnings?

  6. Can YouTube plugin errors be solved or at least cleaned up since it looks bad?

  7. videojs-http-source-selector plugin doesn’t reset on YouTube sources i.e http-source-selector plugin setting icon is active during YouTube playback without functionality.

badincite commented 4 years ago

You still having issues? Noticed mines working perfect today with https.

DJ-PD commented 4 years ago

Sorry for late reply but these tests takes hours so I need to find the right slot. Regarding issue 1 HTTP and HTTPS live stream interrupts it works better in Chrome v79 but not good enough. Old devices like Samsung Tab 4 (Android v5.0.2) (Chrome v79.0.3945.93) still interrupts with a HTTPS live stream, works perfect with a HTTP live stream. If I add VideoJS overrideNative this old device works perfect even in HTTPS live stream mode but instead VideoJS overrideNative totally crash the Chrome live stream in iPadOS.

Have you or someone else been able to check issue 2-7?

Please see below detailed test summary for issue 1... Test 2 summary 2020-01-04 (year-month-day). VideoJS v7.7.4 ---HW and SW version--- Android devices: Samsung Tab 4 (Android v5.0.2) (Chrome v79.0.3945.93) Sony Xperia Z3 (Android v6.0.1) (Chrome v79.0.3945.93) Huawei honor 8 (Android v7.0) (Chrome v79.0.3945.93) Samsung Galaxy A8 (Android v9.0) (Chrome v79.0.3945.93)

Apple devices: iPadOS 13.3 (Chrome v79.0.3945.73) Macbook Pro macOS Catalina

PC device: Windows 10 Pro v1909 (Chrome 79.0.3945.88)

--HTTPS live stream link-- Windows 10 Pro web browser Chrome and Edge = Works good. Macbook Pro macOS Catalina, web browser Safari = Works good. Ipad web browser Safari = Works good. Ipad web browser Chrome = Works good.
Samsung Tab 4 Android = Stream freeze repeatedly. Sony Xperia Z3 = Works good. Huawei honor 8 = Works good. Samsung Galaxy A8 = Works good.

--HTTPS live stream link + overrideNative: !videojs.browser.IS_SAFARI-- Samsung Tab 4 Android = Works good. Samsung Galaxy A8 = Works good. Ipad Chrome = Stream freeze extremely repeatedly, turns off after a while. Ipad Safari = Works good.

--HTTP live stream link -- All good, no freezing so far on any of above mention devices.

gkatsev commented 4 years ago

We recommend setting overrideNative everywhere except ios/safari. I wonder if IS_ANY_SAFARI will return true for ipad chrome. If not, IS_IOS might still be set to true, so you could do something like IS_ANY_SAFARI || IS_IOS.

DJ-PD commented 4 years ago

overrideNative: !videojs.browser.IS_ANY_SAFARI = Still the same, works on Samsung TAB 4 but not iPad/Chrome combination. overrideNative: !videojs.browser.IS_ANY_SAFARI || IS_IOS = Not sure if I typed in something wrong since Samsung TAB 4 interrupts, iPad/Chrome freeze and iPad/Safari doesn't present the player at all?

DJ-PD commented 4 years ago

Made a new test today with 9 different devices , Windows 10, iOS, macOS, and Linux Ubuntu (Chrome, Safari, Edge, IE and Firefox). overrideNative: !videojs.browser.IS_SAFARI = iOS chrome stream freeze. overrideNative: !videojs.browser.IS_ANY_SAFARI || IS_IOS = crash VideoJS player in iOS Safari. overrideNative: !videojs.browser.IS_IOS = best overall support so far.

Found a new strange thing today with use of Firefox/Windows 10 = If a second browser as IE11 or Edge start the same stream VideoJS video freeze in Firefox but continue to play audio. Chrome and Firefox in use at same time seems to work. In reality this might not be so important but I just summaries what I found out.

DJ-PD commented 4 years ago

Anyone who have the time to check issue task 2 and 3?

carloscarnero commented 4 years ago

overrideNative: !videojs.browser.IS_ANY_SAFARI = Still the same, works on Samsung TAB 4 but not iPad/Chrome combination. overrideNative: !videojs.browser.IS_ANY_SAFARI || IS_IOS = Not sure if I typed in something wrong since Samsung TAB 4 interrupts, iPad/Chrome freeze and iPad/Safari doesn't present the player at all?

Shouldn't that be overrideNative: !videojs.browser.IS_ANY_SAFARI && !videojs.browser.IS_IOS?

DJ-PD commented 4 years ago

overrideNative: !(videojs.browser.IS_ANY_SAFARI || IS_IOS) result in a error as IS_IOS is not defined. overrideNative: !videojs.browser.IS_ANY_SAFARI && !videojs.browser.IS_IOS works as a charm. All devices as mentioned above are verified again + new for today is a Lenovo Chromebook, all good.

DJ-PD commented 4 years ago

Anyone who have been or are able to take a look into above mentioned issue 2 (YouTube issues) also mentioned into #6398. Am I doing something wrong, if so please correct me or do we face compatibility issues?

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

DJ-PD commented 4 years ago

Anyone who have been or are able to take a look into above mentioned issue 2 (YouTube issues) also mentioned into #6398. Am I doing something wrong, if so please correct me or do we face compatibility issues?

Swap between sources ending up with a YouTube link as a last chosen source via VideoJS and both text tracks, http-source-selector source qualities and PiP function are perfect present into VideoJS player controlbar without any functionality, text tracks from another source shouldn't be present at all. WARNINGS:... video.min.js:12 VIDEOJS: WARN: Calling addRemoteTextTrack without explicitly setting the "manualCleanup" parameter to true is deprecated and default to false in future version of video.js (anonymous) @ video.min.js:12 n.warn @ video.min.js:12 e.addRemoteTextTrack @ video.min.js:19 (anonymous) @ video.min.js:12 wt @ video.min.js:12 e.loadTech @ video.min.js:19 e.src @ video.min.js:19 (anonymous) @ video.min.js:19 i @ video.min.js:19 (anonymous) @ video.min.js:19 setSource @ video.min.js:28 i @ video.min.js:19 i @ video.min.js:19 (anonymous) @ video.min.js:19 (anonymous) @ video.min.js:12 setTimeout (async) e.setTimeout @ video.min.js:12 Gi @ video.min.js:19 e.src @ video.min.js:19 ytnStream @ 14.html:236 onclick @ 14.html:132

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.