AirenSoft / OvenPlayer

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

ll-hls does not working with native player IOS/Safari #357

Closed driwn closed 5 months ago

driwn commented 1 year ago

ll-hls does not working with native player IOS/Safari (trying IPhone 13 pro max, IOS 16.4.1)

Working well with ovenplayer on windows, but getting error on iphone,

through ovenplayer or video tag the same result

segments request cancelled immediately or after first chunk image

Server.xml:

<Application>
        <Name>live</Name>
        <Type>live</Type>
        <OutputProfiles>
                <HardwareAcceleration>false</HardwareAcceleration>
                <OutputProfile>
                        <Name>1920:1080</Name>
                        <OutputStreamName>${OriginStreamName}</OutputStreamName>
                        <Playlist>
                                <Name>For LLHLS</Name>
                                <FileName>abr</FileName>

                                <Rendition>
                                        <Name>UHD</Name>
                                        <Video>video_1080</Video>
                                        <Audio>bypass_audio</Audio>
                                </Rendition>
                                <Rendition>
                                        <Name>FHD</Name>
                                        <Video>video_720</Video>
                                        <Audio>bypass_audio</Audio>
                                        </Rendition>
                                <Rendition>
                                        <Name>HD</Name>
                                        <Video>video_360</Video>
                                        <Audio>bypass_audio</Audio>
                                </Rendition>
                                <Rendition>
                                        <Name>SD</Name>
                                        <Video>video_240</Video>
                                        <Audio>bypass_audio</Audio>
                                </Rendition>
                        </Playlist>
                        <Encodes>
                                <Audio>
                                        <Name>bypass_audio</Name>
                                        <Bypass>true</Bypass>
                                </Audio>
                                <Video>
                                        <Name>video_1080</Name>
                                        <Codec>h264</Codec>
                                        <Width>1920</Width>
                                        <Bitrate>3000000</Bitrate>
                                        <Framerate>30.0</Framerate>
                                </Video>
                                <Video>
                                        <Name>video_720</Name>
                                        <Codec>h264</Codec>
                                        <Width>1280</Width>
                                        <Bitrate>1000000</Bitrate>
                                        <Framerate>30.0</Framerate>
                                </Video>
                                <Video>
                                        <Name>video_360</Name>
                                        <Codec>h264</Codec>
                                        <Width>640</Width>
                                        <Bitrate>500000</Bitrate>
                                        <Framerate>30.0</Framerate>
                                </Video>
                                <Video>
                                        <Name>video_240</Name>
                                        <Codec>h264</Codec>
                                        <Width>426</Width>
                                        <Bitrate>200000</Bitrate>
                                        <Framerate>30.0</Framerate>
                                </Video>
                        </Encodes>
                </OutputProfile>
        </OutputProfiles>
        <Providers>
                <RTMP />
        </Providers>
        <Publishers>
                <AppWorkerCount>1</AppWorkerCount>
                <StreamWorkerCount>8</StreamWorkerCount>
                <LLHLS>
                        <ChunkDuration>0.2</ChunkDuration>
                        <SegmentDuration>6</SegmentDuration>
                        <SegmentCount>4</SegmentCount>
                        <CrossDomains>
                                <Url>*</Url>
                        </CrossDomains>
                </LLHLS>
                <RTMPPush>
                </RTMPPush>
        </Publishers>
</Application>

any solutions?

driwn commented 1 year ago

https://stackoverflow.com/questions/68277570/playback-fails-on-ios-and-mac-safari-for-hls-url-that-has-colon also found this, but I can't remove CODECS from m3u8 file

SangwonOh commented 1 year ago

@driwn Hi. First of all I want to know what audio codec are you broadcasting? How do you input stream to OvenMediaEngine?

driwn commented 1 year ago

@driwn Hi. First of all I want to know what audio codec are you broadcasting? How do you input stream to OvenMediaEngine?

(h264, aac) as far as I know I don't know more details

the screenshot shows codecs (avc1.42c01f mp4a.40.2)

but the base hls with other engines worked well

cameras => ATEM mini pro => ATEM software => rtmp => OME => ll-hls

getroot commented 1 year ago

It would be good to discuss this issue in the OvenMediaEngine discussion.

https://github.com/AirenSoft/OvenMediaEngine/discussions

SangwonOh commented 5 months ago

We are closing the issue due to a long period of inactivity.