如何拍摄亚马逊S3上托管的视频截图
How to take a screenshot of video that is hosted on Amazon S3?
我正在实现一个视频标记系统。我们使用Zencoder来转换用户上传的视频,并使用VideoJS来播放视频。用户应该能够在观看视频时标记并添加评论。一切正常,除了,我想在用户标记时拍摄一个视频的小快照(54px高)。我有这个Javascript:
function getSnapshot(htmlPlayerId){
var video = document.getElementById(htmlPlayerId);
var canvas = document.createElement('canvas');
var ratio = 54 / video.videoHeight;
canvas.width = ratio * video.videoWidth;
canvas.height = 54;
var ctx = canvas.getContext('2d');
ctx.drawImage(video, 0, 0, video.videoWidth, video.videoHeight, 0, 0, canvas.width, canvas.height);
return canvas.toDataURL('image/jpeg');
}
不幸的是,我收到了一个安全错误,因为该文件托管在AmazonS3上。我知道这是一个访问控制允许来源的问题。我已经看到了为什么canvas.toDataURL()会抛出安全异常?和https://forums.aws.amazon.com/thread.jspa?messageID=329118以及相关联的线程。
我想知道是否有办法拍摄快照。
我最近遇到了同样的问题,我的解决方案是在S3中托管一个带有视频和一些javascript的小html文件,然后在iframe中加载该页面。当你想截屏时,你不能用postMessage让iframe帮你拍照,然后在iframe中截屏,并再次用postMessage将数据://URL传回父页。
也可以尝试window.open(canvas.toDataURL("images/png"))
相关文章:
- 如何检查用户在html5视频播放器中观看了完整的视频
- 在javascript中添加和显示对象的随机数组中的视频
- 如何解析Brightcove视频中的视频缩略图
- 如何创建包含多个视频的视频横幅
- 如何设置SVG路径的样式以拍摄图像
- 如何使用angularjs在iframe中嵌入来自数据库的视频链接
- 使我的视频标头响应
- 如何使用默认的网络摄像头拍摄照片并将其保存在我的c#.net web应用程序中
- Javascript的视频音量问题
- 我可以设置HTML5文件上传的视频长度限制吗
- 如何将缩略图链接到新页面上的视频
- 使用SeleniumWebdriver(带有Java)测试没有ID的视频
- AudioContext从blob获取数据的视频创建MediaElementSource
- 如何让iPhone用户在我的网站上观看带字幕的视频
- 如何修改此功能以获得最受欢迎的视频?(YouTube API v3)
- setAttribute和video.src用于更改IE9中不起作用的视频标记源
- ReactJS组件中显示的视频未更新
- HTML5视频无法在chrome上工作,在服务器上托管后的IE,mov文件中的视频(quicktime格式)
- 通过Jquery更改html5中的视频(不同质量)文件
- 如何拍摄亚马逊S3上托管的视频截图