javascript – HTML 5视频到Canvas缩放问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – HTML 5视频到Canvas缩放问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1668字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试捕获html5视频的帧以创建它的缩略图但是当图像渲染到画布时我看到了一些奇怪的结果.
我所看到的是,画布中显示的图像只是放大了一小部分视频!如下图所示:
代码也很简单:
$(document).ready(function(){
var $Body = $("body");
var $Video = $("<video>").appendTo($Body);
var cVideo = $Video.get(0);
cVideo.addEventListener("loadedmetadata", function(){
cVideo.addEventListener("seeked", function(){
var $Canvas = $("<canvas>").width(cVideo.videoWidth).height(cVideo.videoHeight);
$Canvas.appendTo($Body);
var cCtx = $Canvas.get(0).getContext("2d");
cCtx.drawImage(cVideo, 0, 0);
}, false);
cVideo.currentTime = 500;
}, false);
cVideo.src = "movie.mkv";
});
我已经尝试了许多宽度/高度/剪裁区域等组合,但所有我能够实现的只是在原始视频的右上角看的变化版本.
编辑:我将宣称原始视频大小为1920 x 800,并且在提供的图像中,视频和画布标签的大小都是如此.我也尝试过不同尺寸的产品,结果仍然相同
编辑2:我尝试了多种格式/视频和操作系统,但仍有相同的问题,所以我不认为问题与任何编解码器问题有关,例如
解决方法:
好吧我不知道为什么这会对canvas元素产生任何影响但是为了工作我必须使用它的width / height属性设置画布的宽度和高度然后我可以随意更改画布的大小并且视频将填充画布区域.以下完整解决方案
$(document).ready(function(){
var $Body = $("body");
var $Video = $("<video>").appendTo($Body);
var cVideo = $Video.get(0);
cVideo.addEventListener("loadedmetadata", function(){
cVideo.addEventListener("seeked", function(){
var $Canvas = $("<canvas>").attr("width", cVideo.videoWidth).attr("height", cVideo.videoHeight);
$Canvas.appendTo($Body);
var cCtx = $Canvas.get(0).getContext("2d");
cCtx.drawImage(cVideo, 0, 0, cVideo.videoWidth, cVideo.videoHeight);
}, false);
cVideo.currentTime = 500;
}, false);
cVideo.src = "movie.mkv";
});
内容总结
以上是互联网集市为您收集整理的javascript – HTML 5视频到Canvas缩放问题全部内容,希望文章能够帮你解决javascript – HTML 5视频到Canvas缩放问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。