Intel® Collaboration Suite for WebRTC
Community support and discussions on the Intel® Collaboration Suite for WebRTC (Intel® CS for WebRTC).
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
For the latest information on Intel’s response to the Log4j/Log4Shell vulnerability, please see Intel-SA-00646

Safari remote stream subscription failed

Nikhil_kumar__Doosar
1,347 Views

Hello Team,

Sample web application is working fine in Chrome, while coming to safari we are getting error messages with remote mixed stream in MCU.

Please find below attached screenshot of console log .

 

Thanks, 

Nikhil

0 Kudos
23 Replies
YanbinZ_Intel
Employee
1,203 Views

Hi, Nikhil

 Could you provide more information, e.g  reproduce steps and  Safari version  etc

Thanks

Yanbin

Nikhil_kumar__Doosar
1,203 Views

Hi Yanbin,

Simply we download the framework, and started MCU server in AWS(GPU is not enabled) with self signed certificates.

Opened index.html from node server with port number 80 in safari browser (v12.0.2).  We got issue as "Receive remote stream without subscription". 
Our local stream is published successfully, and visible at other end.But at safari user end remote mixed stream is not subscribed.

While compare to chrome browser, its working fine.

Please find below attachment for console log screenshot. 

Thanks,

Nikhil

Nikhil_kumar__Doosar
1,203 Views

Hello,

Any help would be appreciated.

Thank you.

Best Regards,
Nikhil.

YanbinZ_Intel
Employee
1,203 Views

Hi, Nikhil

 We also found this issue on our release testing cycle.  It seems the safari issue and related to machine hardware. It works fine on some of machines while works abnormally on others during our testing.  We will monitor safari related fix closely . 

 

Thanks

Yanbin

Nikhil_kumar__Doosar
1,203 Views

Hi Yanbin,

Thanks for your reply.when  we will expect release patch for this issue. 

Thanks,

Nikhil.

Nikhil_kumar__Doosar
1,203 Views

Hi Yanbin,

when  we will expect release patch for this safari browser  issue. not even working in ios,ipad devices also please fix it as soon as possible .

Thanks,

Nikhil

Mark_d_10
Beginner
1,203 Views

Hi,

We are also facing this issue, is there any update on this?

Thanks.

Nikhil_kumar__Doosar
1,203 Views

Hi Yanbin,

Any update would be appreciated.

Thanks,

Nikhil.

Nikhil_kumar__Doosar
1,203 Views

Hello,

Any update would be appreciated.

Thanks,

Nikhil.

Jinpeng_Z_Intel
Employee
1,203 Views
Hi Nikhil When the problem arises in January, the MCU version is 4.1. The problem has been solved in 4.2. I tested that Safari can subscribe to mix streams. Please try again. If there is a problem, please send out the specific replication steps. I will follow up. Thank you.
Nikhil_kumar__Doosar
1,203 Views

Hi Zhao,

Simply we download the framework(4.2), started MCU server in AWS(GPU is not enabled) with ssl.

Opened index.html(https://abc.com:3004)  in safari browser (v12.0.2).  We got issue as "Receive remote stream without subscription". 
Our local stream is published successfully, and visible at other end.But at safari user end remote mixed stream is not subscribed.

Can you help me on this.

Thanks,

Nikhil

Nikhil_kumar__Doosar
1,203 Views

Hello,

Any help would be appreciated.

Thank you.

Best Regards,
Nikhil.

Nikhil_kumar__Doosar
1,203 Views

Hello,

Any help would be appreciated.

Thank you.

Best Regards,
Nikhil.

Li_C_Intel
Employee
1,203 Views

Hi,

We have some questions about your case:

1. Did the subscription fail on safari every time or sometimes?

2. How about subscribing forward streams? (add /?forward=true)

3. Did you subscribe the stream published from safari or from chrome?

Nikhil_kumar__Doosar
1,203 Views

Hi,

1  subscription fail on safari every time (forward=false)

2 working fine on forward=true

3 we tested for safari to safari and chrome to safari both are not working for forward=false

Thanks,

Nikhil kumar

Li_C_Intel
Employee
1,203 Views
Hi, According to your description, the settings of mixed stream may not be suitable for safari. Please check the format of your mixed stream configuration. If the codec is H264, make sure h264 is enabled through ./video_agent/install_deps.sh
Li__Zunlong
New Contributor I
1,203 Views

I came across the same issue as Nikhil described.

I have installed h264 deps. I set the view's video format to { "profile" : "CB", "codec" : "h264" }.

Installing OpenH264 Video Codec Library provided by Cisco Systems, Inc? [Yes/no]Yes
OpenH264 Video Codec provided by Cisco Systems, Inc.
Download OpenH264...
--2019-05-24 09:13:39--  https://github.com/cisco/openh264/releases/download/v1.7.0/libopenh264-1.7.0-linux64.4.so.bz2
Resolving github.com (github.com)... 13.250.177.223
Connecting to github.com (github.com)|13.250.177.223|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/13909573/f2fd4882-5295-11e7-8207-5ec... [following]
--2019-05-24 09:13:40--  https://github-production-release-asset-2e65be.s3.amazonaws.com/13909573/f2fd4882-5295-11e7-8207-5ec...
Resolving github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)... 52.216.238.83
Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.216.238.83|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 518124 (506K) [application/octet-stream]
Saving to: 'libopenh264-1.7.0-linux64.4.so.bz2'

100%[=====================================================================================================================================================================================================>] 518,124      101KB/s   in 5.0s   

2019-05-24 09:13:46 (101 KB/s) - 'libopenh264-1.7.0-linux64.4.so.bz2' saved [518124/518124]

Download libopenh264-1.7.0-linux64.4.so success.
OpenH264 install finished.

And the document of sampleRoom is:

{
    "_id" : ObjectId("5cdbb5f62b1a7612c1ad6b6d"),
    "name" : "sampleRoom",
    "notifying" : {
        "streamChange" : true,
        "participantActivities" : true
    },
    "transcoding" : {
        "video" : {
            "parameters" : {
                "keyFrameInterval" : true,
                "bitrate" : true,
                "framerate" : true,
                "resolution" : true
            },
            "format" : true
        },
        "audio" : true
    },
    "mediaOut" : {
        "video" : {
            "parameters" : {
                "keyFrameInterval" : [ 
                    100, 
                    30, 
                    5, 
                    2, 
                    1
                ],
                "bitrate" : [ 
                    "x0.8", 
                    "x0.6", 
                    "x0.4", 
                    "x0.2"
                ],
                "framerate" : [ 
                    6, 
                    12, 
                    15, 
                    24, 
                    30, 
                    48, 
                    60
                ],
                "resolution" : [ 
                    "x3/4", 
                    "x2/3", 
                    "x1/2", 
                    "x1/3", 
                    "x1/4", 
                    "hd1080p", 
                    "hd720p", 
                    "svga", 
                    "vga", 
                    "qvga", 
                    "cif"
                ]
            },
            "format" : [ 
                {
                    "codec" : "vp8"
                }, 
                {
                    "profile" : "CB",
                    "codec" : "h264"
                }, 
                {
                    "codec" : "vp9"
                }
            ]
        },
        "audio" : [ 
            {
                "channelNum" : 2,
                "sampleRate" : 48000,
                "codec" : "opus"
            }, 
            {
                "sampleRate" : 16000,
                "codec" : "isac"
            }, 
            {
                "sampleRate" : 32000,
                "codec" : "isac"
            }, 
            {
                "channelNum" : 1,
                "sampleRate" : 16000,
                "codec" : "g722"
            }, 
            {
                "codec" : "pcma"
            }, 
            {
                "codec" : "pcmu"
            }, 
            {
                "channelNum" : 2,
                "sampleRate" : 48000,
                "codec" : "aac"
            }, 
            {
                "codec" : "ac3"
            }, 
            {
                "codec" : "nellymoser"
            }, 
            {
                "codec" : "ilbc"
            }
        ]
    },
    "mediaIn" : {
        "video" : [ 
            {
                "codec" : "h264"
            }, 
            {
                "codec" : "vp8"
            }, 
            {
                "codec" : "vp9"
            }
        ],
        "audio" : [ 
            {
                "channelNum" : 2,
                "sampleRate" : 48000,
                "codec" : "opus"
            }, 
            {
                "sampleRate" : 16000,
                "codec" : "isac"
            }, 
            {
                "sampleRate" : 32000,
                "codec" : "isac"
            }, 
            {
                "channelNum" : 1,
                "sampleRate" : 16000,
                "codec" : "g722"
            }, 
            {
                "codec" : "pcma"
            }, 
            {
                "codec" : "pcmu"
            }, 
            {
                "codec" : "aac"
            }, 
            {
                "codec" : "ac3"
            }, 
            {
                "codec" : "nellymoser"
            }, 
            {
                "codec" : "ilbc"
            }
        ]
    },
    "views" : [ 
        {
            "video" : {
                "layout" : {
                    "templates" : {
                        "custom" : [],
                        "base" : "fluid"
                    },
                    "fitPolicy" : "letterbox"
                },
                "keepActiveInputPrimary" : false,
                "bgColor" : {
                    "b" : 0,
                    "g" : 0,
                    "r" : 0
                },
                "motionFactor" : 0.8,
                "maxInput" : 16,
                "parameters" : {
                    "keyFrameInterval" : 100,
                    "framerate" : 24,
                    "resolution" : {
                        "height" : 480,
                        "width" : 640
                    }
                },
                "format" : {
                    "profile" : "CB",
                    "codec" : "h264"
                }
            },
            "audio" : {
                "vad" : true,
                "format" : {
                    "codec" : "opus",
                    "sampleRate" : 48000,
                    "channelNum" : 2
                }
            },
            "label" : "common"
        }
    ],
    "roles" : [ 
        {
            "subscribe" : {
                "video" : true,
                "audio" : true
            },
            "publish" : {
                "video" : true,
                "audio" : true
            },
            "role" : "presenter"
        }, 
        {
            "subscribe" : {
                "video" : true,
                "audio" : true
            },
            "publish" : {
                "video" : false,
                "audio" : false
            },
            "role" : "viewer"
        }, 
        {
            "subscribe" : {
                "video" : false,
                "audio" : true
            },
            "publish" : {
                "video" : false,
                "audio" : true
            },
            "role" : "audio_only_presenter"
        }, 
        {
            "subscribe" : {
                "video" : true,
                "audio" : false
            },
            "publish" : {
                "video" : false,
                "audio" : false
            },
            "role" : "video_only_viewer"
        }, 
        {
            "subscribe" : {
                "video" : true,
                "audio" : true
            },
            "publish" : {
                "video" : true,
                "audio" : true
            },
            "role" : "sip"
        }
    ],
    "participantLimit" : -1,
    "inputLimit" : -1,
    "__v" : 0
}

Any suggestion?

Li__Zunlong
New Contributor I
1,203 Views

The file attached is error info from console when subscribe the mix stream at Safari.

Nikhil_kumar__Doosar
1,203 Views

Hello,

Any update would be appreciated.

Thanks,

Nikhil.

Jincheng_S_Intel
Employee
695 Views

Hi,

We are trying to resolve this issue, but it may be need some time to find the root cause.

Now we find a workaround for this issue.

you can put conference.subscribe operation into a setTimeout scope, and timeout set to 1000 such as follow:

                       setTimeout(function (){
                            conference.subscribe(stream, {
                                audio: {codecs:[{name:'opus'}]},
                                video: true
                            }).then((subscription) => {
                                subscriptionForMixedStream = subscription;
                                
                                let $video = $(`<video controls autoplay id=${stream.id} style='display:block'>this browser does not supported video tag</video>`);
                                $video.get(0).srcObject = stream.mediaStream;
                                $('body').append($video);
                                subscription.addEventListener('error', (err) => {
                                    console.log('Subscription error: ' + err.error.message);
                                })
                            });
                            for (const resolution of stream.capabilities.video.resolutions) {
                                const button = $('<button/>', {
                                    text: resolution.width + 'x' +
                                        resolution.height,
                                    click: () => {
                                        subscribeDifferentResolution(stream, resolution);
                                    }
                                });
                                button.appendTo($('body'));
                            };},1000);

Would you please help to try this workaround and give feedback for us.

Hope it can works for you.

Reply