使用 getUserMedia API 配置帧格式
Configure Frame Format using getUserMedia API
我有以下代码可以在我的 Google Chrome 浏览器中流式传输连接的视频源。 WebRTC 的 getUserMedia 就是这样做的。以下代码片段用于配置我的外部摄像头设备的分辨率和帧率。
function configureVideo()
{
const video_constraints ={};
//Create the following keys for Constraint
video_constraints.video = {};
//set camera name
video_constraints.video.deviceId = {};
video_constraints.video.deviceId.exact = <device_id_comes_here>
//set resolution Width
video_constraints.video.width = {};
video_constraints.video.width.exact = 640;
//set resolution height
video_constraints.video.height = 480;
video_constraints.video.height.exact = streamHeight;
//set fps
video_constraints.video.frameRate = 60;
video_constraints.video.frameRate.exact = streamFps;
console.log("Selected Contraints is :", video_constraints);
navigator.mediaDevices.getUserMedia(video_constraints).then(streamCallback).catch(handleError);
}
是的,我能够成功地从我的外部摄像头流式传输视频 device.The 摄像头提供 2 种帧格式 YUYV 和 BY8。但我真的不知道目前流式传输的帧格式是什么。
有什么方法可以在 WebRTC 中配置我感兴趣的视频帧格式。
回答你的问题"Is there any method to configure my interested Video Frame Format in WebRTC."答案是否定的......这很令人沮丧!
您必须获取流并将其呈现为 canvas 以获取数据,然后进行转换...这主要是由于 MediaCapture functions and the transformations the frame may go through (depending on browser implementation). You can use ImageCapture to gain more camera properties (and to get it as an ImageBitmap) 但现在的支持非常好虚弱的。
请阅读下面我的回答,其中更深入地介绍了 MediaCapture 和 ImageCapture 的用例,以获取更多信息。
Take photo when the camera is automatically focused
我有以下代码可以在我的 Google Chrome 浏览器中流式传输连接的视频源。 WebRTC 的 getUserMedia 就是这样做的。以下代码片段用于配置我的外部摄像头设备的分辨率和帧率。
function configureVideo()
{
const video_constraints ={};
//Create the following keys for Constraint
video_constraints.video = {};
//set camera name
video_constraints.video.deviceId = {};
video_constraints.video.deviceId.exact = <device_id_comes_here>
//set resolution Width
video_constraints.video.width = {};
video_constraints.video.width.exact = 640;
//set resolution height
video_constraints.video.height = 480;
video_constraints.video.height.exact = streamHeight;
//set fps
video_constraints.video.frameRate = 60;
video_constraints.video.frameRate.exact = streamFps;
console.log("Selected Contraints is :", video_constraints);
navigator.mediaDevices.getUserMedia(video_constraints).then(streamCallback).catch(handleError);
}
是的,我能够成功地从我的外部摄像头流式传输视频 device.The 摄像头提供 2 种帧格式 YUYV 和 BY8。但我真的不知道目前流式传输的帧格式是什么。
有什么方法可以在 WebRTC 中配置我感兴趣的视频帧格式。
回答你的问题"Is there any method to configure my interested Video Frame Format in WebRTC."答案是否定的......这很令人沮丧!
您必须获取流并将其呈现为 canvas 以获取数据,然后进行转换...这主要是由于 MediaCapture functions and the transformations the frame may go through (depending on browser implementation). You can use ImageCapture to gain more camera properties (and to get it as an ImageBitmap) 但现在的支持非常好虚弱的。
请阅读下面我的回答,其中更深入地介绍了 MediaCapture 和 ImageCapture 的用例,以获取更多信息。
Take photo when the camera is automatically focused