博客 / 詳情

返回

webrtc 音視頻,瀏覽器支持的攝像頭的最大分辨率

web端設置的分辨率是19201080,實際採集到的只有1280720.
注:macOS系統的intel系列電腦,雖然檢測到的是19201080,但是intel芯片限制了採集最高到1280720(720P)
可通過下面的方法檢測瀏覽器支持的最大分辨是多少:

async function getMaxResolution() {
  try {
    // 枚舉所有媒體設備
    const devices = await navigator.mediaDevices.enumerateDevices();
    const videoDevices = devices.filter(device => device.kind === 'videoinput');

    if (videoDevices.length === 0) {
      console.error('沒有找到視頻輸入設備');
      return;
    }

    // 選擇第一個視頻輸入設備
    const selectedDevice = videoDevices[0];

    // 請求訪問攝像頭並獲取其能力
    const stream = await navigator.mediaDevices.getUserMedia({
      video: { deviceId: selectedDevice.deviceId }
    });

    // 獲取視頻軌道
    const track = stream.getVideoTracks()[0];
    const capabilities = track.getCapabilities();

    // 打印設備能力
    console.log('Device Capabilities:', capabilities);

    // 獲取最大寬度和高度
    const maxWidth = capabilities.width && capabilities.width.max ? capabilities.width.max : null;
    const maxHeight = capabilities.height && capabilities.height.max ? capabilities.height.max : null;

    console.log('Max Resolution:', maxWidth, 'x', maxHeight);

    // 停止並釋放媒體流
    stream.getTracks().forEach(track => track.stop());

    return { maxWidth, maxHeight };

  } catch (error) {
    console.error('Error accessing media devices or getting capabilities:', error);
  }
}

// 調用函數
getMaxResolution();
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.