safari can not play H264 video

Hi ,

I’m now using mediaSoup-demo and got an “Strange” thing.

I set Server side H264 codec parameter " level-asymmetry-allowed=1;packetization-mode=1;profile-level-id = 42e01f " , i think it will help Server has maximum compatibility .

Everything seems ok ,except mobile safari browser version 12 (not version 12.1).
There’s 3 type device in the H264 room, Desktop Chrome 75 , Android Mobile Chrome , Mobile Safari 12 , all is browser.

Chrome client will see all the video streams ,include from safari. But ,safari client Can’t see streams published by chrome.

Any advise will be appreciate .

Raymond

Check this:

Thank you , Castillo.slowly , Google make money With evil …

In My case , i had set the profile-level-id to OpenH264 (profile-level-id = 42e01f ) . And i also forced “useSimulcast = true;” in app/lib/RoomClient.js , So , we can expect :

  1. OpenH264 encoder (profile-level-id=42e01f selected):
  • If simulcast is enabled, Chrome sends N streams and adds frame-marking to packets (with s=1 and i=1 for key frames).

I tested again , But my IOS safari 12 still Can’t see streams published by chrome. Is that because of safari start Simulcast support from 12.1 ??

Anyway , What is your suggestion for now , for “H264 only” Room?

I don’t know if your issue happens due to any of the Chrome issues I referenced. Try without simulcast just to see what happens.

Regarding iOS, honestly I don’t know which exact iOS Safari versions do properly support H264 negotiation. Anyway, the receivers do not receive H264 simulcast but a single H264 stream, so simulcast support in Safari XX is not the problem here.

Anyway , What is your suggestion for now , for “H264 only” Room?

I don’t have a magic response, sorry. I know that H264 interop between WebRTC endpoints is a pain.

Thank you , Big boss ,

From the view of Safari , it seems there’s no “I frame” send to safari client, even i tried “request key(??) frame” .

Anyway , I will try deeper ,maybe ,i miss something or make wrong config. Thank you , from my heart.

I really referenced somes issue for a reason :slight_smile:

Hello,

Thank @ibc for link about issue on Chrome but why Safari Mac OS (or Firefox) a also the issue, they use same webrtc lib as Chrome ?

But I think it’s a specific Safari iOS issue : with Safari / Mac OS, no issue like that : Safari Mac OS play well video.

Tested mediasoup-demo v3, mediasoup v2 with stable iOS and iOS beta. With other client : Chrome, Firefox, Safari Mac OS. Always same issue on iOS : video freezing.

On Safari iOS, even with last iOS beta, video is freezing with H264 and also with VP8. So seems a iOS specific issue (and issue seems to be not specific to H264).

Only working mediasoup-demo with iOS (video + sound) is old mediasoup-demo v2 with 2.0.9 mediasoup-server (but unable to make a new installation working … dont know why maybe a node dependency or something related to planB). Removing track.stop() to get sound working.

Available to make test on iOS beta or stable as usually.

Honestly no idea. But I expect that, by enabling full debug and tags in mediasoup, something should show up. I cannot check that right now.

I can send you logs if it can help.

What is the best option to get full debug from client ?

I have read the doc but I’m not sure if it’s good :

window.localStorage.setItem('debug', '* -engine* -socket* -RIE* *WARN* *ERROR* *DEBUG*');

or :

window.localStorage.setItem('debug', 'mediasoup-client:WARN* mediasoup-client:ERROR* mediasoup-client:DEBUG*');

server side log is pretty verbose :slight_smile: there a some error but I’m not sure that they are specific to iOS client. Will continue to search the error log specific to iOS.

I mean logs in server side. But honestly I don’t want to read them without being able to test the environment. What I meant is that mediasoup is supposed to provide details logs to figure out what the issue is (and not that just us can figure out it) :slight_smile:

Hello,

Chrome76+ have the fix for 10585 and it seems to solve issue.

Mediasoup demo v2 works with H264 between iOS and Chrome (not tested v3 for the moment)

Thanks for confirming it!