如何从 JavaScript 应用程序中的视频创建缩略图 [关闭]

Posted

技术标签:

【中文标题】如何从 JavaScript 应用程序中的视频创建缩略图 [关闭]【英文标题】:How to create a thumbnail image from a video in a JavaScript Application [closed] 【发布时间】:2018-05-06 22:02:18 【问题描述】:

我想从视频创建缩略图,以便可以将其与视频本身一起上传到服务器。我曾尝试搜索 js 库来完成这项工作,但似乎找不到任何足够简单的库。

用户将从 a 中选择视频并希望能够从中创建缩略图,最后将视频和缩略图都上传到服务器。

你知道任何 js 库或者无论如何都可以做到吗?

【问题讨论】:

您可以使用 html 画布并让它渲染视频(在您想要的帧上暂停)。然后你可以从那里编辑它。 调用 canvas.toDataURL("image/png");它给出错误 SecurityError: 该操作不安全。我现在该怎么办? 视频必须与运行它的页面位于同一服务器上。您还应该使用canvas.toBlob()。它更快 @marvinralph 看看答案 这应该回答你的问题***.com/questions/19175174/… 【参考方案1】:

使用 Canvas,您可以捕获视频 Thumb。这是工作示例。

function thumbnail()
    var canvas = document.getElementById('canvas');
    var video = document.getElementById('video');
    canvas.getContext('2d').drawImage(video, 0, 0, video.videoWidth, video.videoHeight);

document.getElementById('capture').addEventListener('click', function()
	thumbnail();	
);
<button id="capture">
  capture
</button>
<canvas id="canvas"></canvas>
<video   id="video" controls>
   <source src=http://techslides.com/demos/sample-videos/small.ogv type=video/ogg> 
  <source src=http://techslides.com/demos/sample-videos/small.mp4 type=video/mp4>
Your browser does not support the video tag.
</video>

【讨论】:

您可以将视频渲染到画布并使用requestAnimationFrame() 更新画布。

以上是关于如何从 JavaScript 应用程序中的视频创建缩略图 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 HTML5 中的视频中提取音频?

如何从 Flutter Web 中的 Uint8List 获取视频缩略图?

如何从 C# 中的图像目录创建视频?

Android:如何从一组图像制作视频

如何从Android中的图像数组创建视频?

Android:如何从一组图像制作视频