twilio/video-quickstart-android

Video Codec Problem - 53404 Exception

Closed this issue · 1 comments

Description

I am working on a communication app with video and I want to upgrade from 6.x to 7.x of the Twilio Video SDK.

When using 6.x everything works properly, but I want to upgrade for various reasons.

When bumping up to 7.x calls between devices that support h264 and those who don't, the video does not work. In particular devices that don't support the h264 codec don't show the incoming video from the devices that do support h264. I thought it could have been a problem in my code but I can reproduce this also with this sample app.

I am using Group Rooms. It does not happen using P2P Rooms.

Does mixing h264 and vp8 work only with p2p room?
Or should I stop allowing h264 altogether?

Steps to Reproduce

  1. Install video-quickstart-android on device1 with h264 support and set h264 as preferred video codec
  2. Install video-quickstart-android on device2 without h264 support
  3. Start call between the two devices
  4. Device1 shows its video and the video of device2

Code

No changes to this repository

Expected Behavior

  1. Device2 shows its video and the video of device1

Actual Behavior

  1. Device2 shows its video but not the video of device1

Reproduces how Often

100%

Logs

2023-09-12 15:32:20.458 10242-10242 VideoActivity           com.twilio.video.quickstart.kotlin   I  onVideoTrackSubscriptionFailed: [RemoteParticipant: identity=removed], [RemoteVideoTrackPublication: sid=removed, name=removed][TwilioException: code=53404, message=No supported codec. Codec video/H264/90000/1,fmtps:[(level-asymmetry-allowed, 1), (packetization-mode, 1), (profile-level-id, 42e01f)] is not supported. Supported codecs: [video/VP8/90000/1,fmtps:[]]]

Result of
curl -X GET "https://video.twilio.com/v1/Rooms/testroomtwilioseven" -u blabla:blabla:

{"unique_name": "testroomtwilioseven", "date_updated": "2023-09-12T13:32:21Z", "media_region": "us1", "max_participant_duration": 14400, "duration": null, "video_codecs": ["VP8", "H264"], "large_room": false, "enable_turn": true, "empty_room_timeout": 5, "sid": "blabla", "type": "group", "status_callback_method": "POST", "status": "in-progress", "audio_only": false, "unused_room_timeout": 5, "max_participants": 50, "max_concurrent_published_tracks": 170, "url": "https://video.twilio.com/v1/Rooms/blabla", "record_participants_on_connect": false, "account_sid": "blabla", "end_time": null, "date_created": "2023-09-12T13:30:23Z", "status_callback": null, "links": {"recordings": "blabla", "participants": "blabla", "recording_rules": "blabla"}}

Versions

Video Android SDK

7.6.3

Android API

Android Device

Pixel 6A physical device API 33
Emulator API 30

@AndreaLoddoWOWTech If device 2 doesn't support H.264, then it cant render video that is encoded with H.264.

Twilio video does not support transcoding live feeds. Both endpoints need to support h.264 to be able to use it.