AirenSoft / OvenPlayer

OvenPlayer is JavaScript-based LLHLS and WebRTC Player for OvenMediaEngine.
https://OvenMediaEngine.com/ovenplayer
MIT License
499 stars 123 forks source link

Ovenplayer 0.10.23 freezes/crashes chrome #286

Closed naanlizard closed 1 year ago

naanlizard commented 2 years ago

Hello

Using OP 0.10.23 connecting to OME 0.14.3 via either ll-hls or webrtc (tcp)

Viewers get horrible lag and eventual crashes on their chrome page, with errors like this in the console

https://i.imgur.com/thgzm7q.png

Apologies I don't have an actual copy/paste but it appears to be having trouble with the new ABR feature.

Am I doing something obviously wrong?

SangwonOh commented 2 years ago

@naanlizard Hi. It's hard to understand the problem with that picture alone.(Our source code doesn't have anything like shouldSwitchToMedia or checkABR) Can I reproduce it?

naanlizard commented 2 years ago

Hmm, interesting. We have both Videojs and OP loaded but the problem only appeared with the updated OP.

I must sleep now but I'll figure out a way to reproduce it for you tomorrow

SangwonOh commented 1 year ago

@naanlizard Hi. Is there any progress?

The unit tests below are working correctly. If you want to know the details of the above error, set a breakpoint on that line of code and examine the call stack.

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link href="https://unpkg.com/video.js/dist/video-js.css" rel="stylesheet">
    <link
        href="https://videojs-http-streaming.netlify.app/node_modules/videojs-http-source-selector/dist/videojs-http-source-selector.css"
        rel="stylesheet">
</head>

<body>
    <div style="width: 600px;height:300px;">
        <div id="op"></div>
    </div>

    <video class="video-js" id=vjs width=600 height=300 controls></video>
    <script src="https://unpkg.com/video.js/dist/video.js"></script>
    <script
        src="https://videojs-http-streaming.netlify.app/node_modules/videojs-contrib-eme/dist/videojs-contrib-eme.js"></script>
    <script
        src="https://videojs-http-streaming.netlify.app/node_modules/videojs-contrib-quality-levels/dist/videojs-contrib-quality-levels.js"></script>
    <script
        src="https://videojs-http-streaming.netlify.app/node_modules/videojs-http-source-selector/dist/videojs-http-source-selector.js"></script>
    <script src="https://unpkg.com/@videojs/http-streaming/dist/videojs-http-streaming.js"></script>

    <script src="https://cdn.jsdelivr.net/npm/hls.js@latest/dist/hls.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/ovenplayer@0.10.23/dist/ovenplayer.js"></script>
    <script>
        const op = OvenPlayer.create('op', {
            sources: [
                {
                    type: 'hls',
                    file: 'http://localhost:3333/app/stream/llhls.m3u8'

                }
            ],
        });

        const vjs = videojs('vjs', {
            enableSourceset: true,
            liveui: true,
            html5: {
                vhs: {
                    experimentalLLHLS: true
                }
            }
        });
        vjs.src({
            src: 'http://localhost:3333/app/stream/llhls.m3u8',
            type: 'application/x-mpegURL'
        });

    </script>
</body>

</html>
naanlizard commented 1 year ago

I apologize, I was unable to reproduce it - I think it was due to our implementation mixing with other players. I think we can close this and I will comment with more info if we find it out