playback very slow on android 6

Gabriel T

Member
Hello

just updated to latest version, and it appears that vp9 have been removed. is this the reason why now playback on android devices is very slow, looks like a very slow motion of the broadcast. as far as i remember it was ok in previous versions.
also, on safari ios, it seems that if there are more than 1 video playing, (for example a video is playing, then new user join and open second video, the first one)
globally, its very unstable on safari ios (ipad 2), did other people noticed the same behavior ?

thank you
 

Max

Administrator
Staff member
also, on safari ios, it seems that if there are more than 1 video playing, (for example a video is playing, then new user join and open second video, the first one)
globally, its very unstable on safari ios (ipad 2), did other people noticed the same behavior ?
By Apple, on iOS Safari 11 you can't play two video simultaneously on the same page.
If you can, it is considered like a bug.
did other people noticed the same behavior ?
We found a workaround. If you play audio only, you can play more than 1 stream in iOS Safari 11.
Code:
stream.play({name:'stream1',constraints:{audio:false,video:true}});
So if you play 2 video streams you have to mix audio content using another stream. This is a hack and it works in new unstable branch only.
just updated to latest version, and it appears that vp9 have been removed
We didn't support VP9.
is this the reason why now playback on android devices is very slow, looks like a very slow motion of the broadcast. as far as i remember it was ok in previous versions.
What is Android version? Chrome version? How do you publish stream?
Please provide more details. We will check.
 

Gabriel T

Member
hello
about vp9 its strange, i had it in my configuration file...ok maybe a confusion with wowza...about playback speed looks like it was related to my 4g connection, on normal dsl connection its working as it should
thank you for the tip about audio and ios, will give it a try...
 

Gabriel T

Member
what would be the correct synthax for this ios hack. so far my play command is issued this way:

participant.getStreams()[0].play(document.getElementById(targetDiv)).on(STREAM_STATUS.PLAYING, function (playingStream) {
}).on(STREAM_STATUS.STOPPED, function(playingStream) {
removeParticipant(participant)
});

thx for your help
 

Max

Administrator
Staff member
On iOS, video from all other conference participants can be played without audio. For that, constraints for video-only should be passed when stream for playback is created here.
E.g.,
Code:
var constraints = {
    video: true,
    audio: false
};
var stream = session.createStream({name: streamName, display: display, constraints: constraints, custom: {name: name_}});
For playing audio from other participants, another stream - audio mixer stream, to which the participants' streams are added when they join, - can be played in addition to the video streams.
Please see below the list of REST methods for audio mixer.

Stream audio mixing is available in this branch: latest build 2593.
In case of server update, database files have to be removed. If there were any changes in the database (e.g., REST apps and methods), they would have to be restored manually after the update.

Update procedure
1. Stop the server and remove database files
Code:
service webcallserver stop
cd /usr/local/FlashphonerWebCallServer/database
rm -rf *
2. Download build 2593 from the new branch
3. Install
Code:
cd FlashphonerWebCallServer-5.0.2593
./install.sh
4. Start the server
Code:
service webcallserver start
REST methods for audio mixer
1. Create mixer
Code:
https://host:8888/rest-api/mixer/startup
{
    "uri": "mixer://mixer1",
    "localStreamName": "mixerStream"
}
Here,
- mixer://mixer1 - mixer object ID
- mixerStream - stream published on server for the mixer
As the result, empty mixer is created, to which available streams can be added. Stream published for the mixer (e.g., mixerStream) will contain mixed audio of the added streams.
By default, empty mixer is terminated after one minute timeout.
2. Add a stream to mixer
Code:
https://host:8888/rest-api/mixer/add
{
    "uri": "mixer://mixer1",
    "remoteStreamName": "stream1"
}
Here "stream1" is name of a stream available on the server.
3. Remove stream from mixer
Code:
https://host:8888/rest-api/mixer/remove
{
    "uri": "mixer://mixer1",
    "remoteStreamName": "stream1"
}
4. Find active mixers
Code:
https://host:8888/rest-api/mixer/find_all
{}
5. Terminate mixer
Code:
https://host:8888/rest-api/mixer/terminate
{
    "uri": "mixer://mixer1"
}
 

Gabriel T

Member
thanks for reply

found out that when adding a new stream (situation:there is already a video+audio stream playing on ios safari, then a new stream is added, screen sharing for example, and set video only for this new stream) its working properly...ok not totally properlly as after a few seconds, the audio+video stream freeze...:/ i hate apple :(
 

Gabriel T

Member
ok, only the video crash, but audio still playing...this bring me to another question: is it possible to change the playback constraint on the fly (for example disable video when a new video stream is incoming) or do we have to close the stream then reopen it with new constraints ?

thanks !
 

Max

Administrator
Staff member
there is already a video+audio stream playing on ios safari, then a new stream is added ... the audio+video stream freeze
Tried this with iOS 11.2, WCS 2616, 2 players example with video-only for 2nd player – no video freeze. Could the freeze be unrelated to playing 2nd stream?

have to close the stream then reopen it with new constraints
Yes, stream has to be recreated to use different constraints.
 
Top