twillio视频质量(分辨率、视频的高/宽)在连接过程中会下降,并且永远不会改善。
测试条件
device: pc and mobile app
mobile send video and pc receive
connecting several minutes without idle mode.
sometimes move mobile
network condition: stable in office结果
video quality become worse by decreasing height and width of video

你可以看到,在我们的条件下,当帧率相同时,帧宽和帧高变小了,网络是稳定的,没有理由减少。如果情况变得更糟,我希望一旦情况变好,它就会改善。
此外,如果情况变得更糟,最好是降低视频的帧率,而不是分辨率。
如何以这种方式进行配置?
当前使用Flutter的实现
final connectOptions = ConnectOptions(
token,
roomName: _channelName,
preferredAudioCodecs: [OpusCodec()],
audioTracks: [LocalAudioTrack(true)],
dataTracks: [LocalDataTrack()],
videoTracks: [LocalVideoTrack(true, _cameraCapturer)],
enableNetworkQuality: true,
networkQualityConfiguration: NetworkQualityConfiguration(
remote: NetworkQualityVerbosity.NETWORK_QUALITY_VERBOSITY_MINIMAL,
),
enableDominantSpeaker: true,
);
_room = await TwilioProgrammableVideo.connect(connectOptions);发布于 2021-11-16 03:43:30
Twilio开发者的布道者在这里。
另外,如果情况变得更糟,最好是降低视频的帧率而不是分辨率。
这不一定是真的。从Twilio docs on developing high quality video applications
帧率和分辨率是影响视频保真度的两个主要捕获限制。当视频源是显示人或运动物体的摄像机时,通常在较高的帧率下感知质量更好。然而,对于屏幕共享,分辨率通常更相关。
据我所知,如果网络连接能够支持更高分辨率的视频,那么WebRTC和Twilio video将发送可以支持的分辨率。然而,当涉及到分辨率时,网络连接不是唯一的变量,CPU使用率也是一个因素,尤其是在移动设备上。从文档中继续:
您应该尝试将分辨率和帧速率设置为您的用例所需的最小值。过大的分辨率和帧速率将对CPU和网络消耗产生负面影响,并可能增加延迟。此外,请记住,您指定为捕获约束的分辨率和帧率只是对客户端视频引擎的提示。如果检测到CPU过度使用或网络容量不足以满足所需流量,则实际分辨率和帧速率可能会降低。
我看到您在代码中包含了网络质量API。我建议从那里获取读数,同时调查应用程序中的CPU profiling,看看是否可以在设备上获得稳定的分辨率。
https://stackoverflow.com/questions/69971151
复制相似问题