PHP-在视频上传过程中提取帧

Che*_*hen 3 javascript php image frame

我在寻找是否甚至有可能遇到问题(在任何地方都找不到信息)。在视频上传过程中是否可以提取帧(缩略图)?如果可以提取用户端,则使用jscript提取也是一个选项。

谢谢您的帮助!

rod*_*ira 5

此问题发布至今已快五年了,现在的答案是肯定的

现场演示

如何在使用JavaScript的视频上传过程中提取帧

在显示代码之前,这是我们要做的:

  1. 在输入元素上设置事件处理程序,该事件处理程序将要上传的视频
  2. 从文件系统中选择文件后,使用该URL对象创建本地视频文件的url。
  3. 将该URL加载到一个video元素中。
  4. 将视频加载到内存中后,在canvas对象上画一个框架。
  5. 现在,将在画布上渲染的框架导出到一个image元素中(或选择将该图像作为数据URL发送到您的服务器)。

<input type="file" id="upload"/>
<img id="thumbnail"/>

<script>
var input = document.getElementById('upload');
var img = document.getElementById('thumbnail');

input.addEventListener('change', function(event){
    var file = this.files[0];
    var url = URL.createObjectURL(file);

    var video = document.createElement('video');
    video.src = url;

    var snapshot = function(){
        var canvas = document.createElement('canvas');
        var ctx = canvas.getContext('2d');

        ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
        img.src = canvas.toDataURL('image/png');

        video.removeEventListener('canplay', snapshot);
    };

    video.addEventListener('canplay', snapshot);
});
</script>
Run Code Online (Sandbox Code Playgroud)