【问题标题】:Video is auto resizing me视频正在自动调整我的大小
【发布时间】:2019-03-08 13:18:44
【问题描述】:

我正在尝试制作一个 cam 捕获组件,我希望调整它的大小以适应包含它的 div 的 100%。 这就是我制作视频的方式。

navigator.mediaDevices.getUserMedia({
    video: {

      // Indicates the possible video quality.
      width: { min: 640, ideal: 1024, max: 1920 },
      height: { min: 480, ideal: 720, max: 1080 }
    }})
    .then(stream => {
     // Code over here
        }));
      };
    })
    .catch(error => {
     // Error over here
      }));
    });
}

在我的 CSS 中有这个。

#video {
  margin-top: 0px;
  margin-right: auto;
  margin-bottom: 0px;
  margin-left: auto;
  width: 100%!important;
  height: auto!important;
  -webkit-transform: scaleX(-1); //avoid mirror effect
  transform: scaleX(-1);

}

当我希望视频的质量是另一个大于 640x480 的质量时,会出现“错误”,然后视频>自动调整大小并且无法正常工作,因为我对图像进行了裁剪,然后我分析了它和其他现在没关系。

是否可以在不调整视频大小的情况下提高质量?

问候!

【问题讨论】:

    标签: javascript css html5-video getusermedia


    【解决方案1】:

    使用getUserMedia 设置视频输入的大小后,您无法更改其实际大小,只有<video> 元素的大小 - 输入(相机输入)的尺寸不会改变,这可能会导致视频裁剪和像素化显示。

    我假设您使用video.srcObject = stream; 命令将输入​​(流)设置为<video> 元素。

    如果您想调整实际输入的尺寸,您需要在再次调用getUserMedia 后将srcObject 重新附加到一个new 流对象,并使用新的尺寸。

    例如:

    var constraints = {
        audio: true,
        video: {
            mandatory: {
                minWidth: CANVAS_WIDTH,
                minHeight: CANVAS_HEIGHT,
                maxWidth: CANVAS_WIDTH,
                maxHeight: CANVAS_HEIGHT
            }
        }
    };
    
    navigator.mediaDevices.getUserMedia(constraints).then( ... )
    

    【讨论】:

    • 您好!谢谢你的回答,但我不想改变视频的尺寸,我正在寻找在不改变尺寸的情况下提高质量,我的意思是,在 1920x1080px 上捕获视频(谈论质量,考虑全高清)但尺寸视频标签应为 640x480
    猜你喜欢
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多