我正在Android应用程序中使用WebRTC,以一种将视频流传输到浏览器的方式。录制的视频必须具有(现在)640x360的准确分辨率。
问题在于,VideoCapturer似乎仅以摄像机实际支持的分辨率捕获视频,并且它将采用最接近所提供值的视频,而不仅仅是使用分辨率更高的裁剪帧。
所以,如果我这样做:
videoCapturer.startCapture(640, 360, 25);
它实际上捕获了640x480的视频,这当然是错误的方面。
所以我需要做的是在1920x1080分辨率下捕获视频,然后仅从中间拍摄640x360帧,这意味着在将视频发送到远程合作伙伴之前手动裁剪视频,但是我不知道该怎么做。
类似的东西
videoConstraints.mandatory.add(new MediaConstraints.KeyValuePair("height", "360"));
videoConstraints.mandatory.add(new MediaConstraints.KeyValuePair("width", "640"));
似乎无法正常工作,因为这只会将视频缩放至所需的分辨率,而不是对其进行裁剪。 有什么方法或其他解决方法可以达到预期的结果?