-
Notifications
You must be signed in to change notification settings - Fork 218
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
isStarted on RemoteVideoTrack is intermittently false #2064
Comments
This is the value when the problem does not occur. The {
"sid": "MT42da65465848686dc9713084c4ff4784",
"priority": null,
"isSwitchedOff": false,
"isEnabled": true,
"processor": null,
"dimensions": {
"height": 640,
"width": 480
},
"processedTrack": null,
"mediaStreamTrack": {},
"isStarted": true,
"name": "169493c5-38a3-4ae6-81b0-2e5818c76fd1",
"kind": "video"
} |
I noticed some related logic on the Android SDK side that might be relevant to this issue. Regarding the PREDICTED mode in TrackSwitchOffMode, the following is mentioned: Could this have any impact on the issue? https://twilio.github.io/twilio-video-android/docs/latest/com/twilio/video/TrackSwitchOffMode.html |
Hi @funayamateppei. Twilo-video could be turning off the video track based on network conditions. For more details, see https://www.twilio.com/docs/video/tutorials/using-bandwidth-profile-api. This behavior generally improves the quality of your calls. However, as the guide mentions, you can adjust the behavior to your application's needs depending on the use cases. Please let me know if that helped you. Here is also a resource about turning on the logs for troubleshooting https://www.twilio.com/docs/video/troubleshooting/javascript-logger. |
Hi @luisrivas, Thank you for your response. I’ll check if the suggested approach resolves the issue and get back to you once I’ve confirmed it. (Try changing clientTrackSwitchOffControl and trackSwitchOffMode) Regarding the network instability mentioned, could you clarify whether it refers to the network conditions on the publishing side or the receiving side? I also have an additional question: Is there a listener to detect when a VideoTrack I’ve published is turned off? The reason I’m asking is that while the video appears to be streaming on my device, the recipient doesn’t receive the video, and nothing is displayed on their end. If there’s a listener to detect this, I could detach my VideoTrack to prevent it from being shown. Additionally, I could inform users with a message like, “The network is unstable, and the video cannot be shared.” Looking forward to your advice. Best regards, |
You are welcome!
Regarding the bandwidth profile api, when you use it, you configure how your available downlink will be distributed among your subscribed
That's a great question! Since the media server's estimation algorithm considers your downlink bandwidth, only I see your point about providing feedback to users regarding their connections, so I recommend you look at the quality API, too: https://www.twilio.com/docs/video/using-network-quality-api. Also, here is a set of good practices that would be helpful to get the most out of the Twilio video services: https://www.twilio.com/docs/video/tutorials/developing-high-quality-video-applications. |
Thank you for your response, @luisrivas ! I tried the suggested approach and here’s what I tested: Additionally, I registered a listener to detect the Could this possibly be a bug? I would greatly appreciate it if you could kindly look into this. await connect(token, {
tracks: [new LocalDataTrack()],
networkQuality: {local: 1, remote: 1},
bandwidthProfile: {
video: {
trackSwitchOffMode: "disabled",
clientTrackSwitchOffControl: "manual",
},
},
} // participant: RemoteParticipant
participant.on("trackSwitchedOff", (t) => {
console.dir(t, {depth: null})
}) |
I just assigned this issue to myself to investigate if that is a bug. Could you confirm if this is the environment where you are experiencing the problem:
Also, can you reproduce this with the react demo app? |
Thank you for looking into this issue. Yes, the described environment matches where I am experiencing the problem. Specifically:
I will test this with the React demo app and will follow up with you once I have the results.
|
I tried to run the react-demo-app locally, but I couldn't get it started. It seems the demo app is broken. Even after pulling the master branch, the result was the same. Therefore, I wasn't able to test it with the demo app. node: v22.1.0 |
Hi @funayamateppei! Are you receiving a specific error while running the demo app locally? I just tested it using |
or sensitive account information (API keys, credentials, etc.) when reporting this issue.
Code to reproduce the issue:
About one out of every twenty times the RemoteVideoTrack.isStarted is false and no video is displayed.
On the other occasions when it works, isStarted = true
When the bug reoccurs
When the RemoteParticipant publishes a video, the
trackSubscribed
event is detected, but the RemoteVideoTrack.isStarted returned at that time is false.In such cases, the
trackUnpublished
event is immediately detected.On the publishing side, unpublish is not being called.
→ no video is displayed because there is no video to attach.
Under what conditions does isStarted return false?
Additionally, why does the trackUnpublished event fire in such cases, immediately after the trackSubscribed event is detected?
(It has also been confirmed that the trackUnsubscribed event fires.)
The isStarted value of the track on the publishing side was true at the time of reproduction, and it was published without any issues.
I also subscribed to the trackPublicationFailed event, but it did not fire.
Log
The
RemoteTrack
output fromtrackSubscribed
The
RemoteTrackPublication
output fromtrackUnpublished
Expected behavior:
Actual behavior:
Software versions:
The text was updated successfully, but these errors were encountered: