gpt4 book ai didi

node.js - 如何在nodejs中获取视频的快照?

转载 作者:IT老高 更新时间:2023-10-28 23:00:46 27 4
gpt4 key购买 nike

我正在尝试编写一个 nodejs 服务器,该服务器将花费时间输入(可能是 url 路径的一部分),然后将当时索引的视频帧的静止图像作为 jpeg 图片提供。

我可以用纯 Javascript 轻松做到这一点,但我看不到在 nodejs 中做到这一点的方法。我知道我可能需要使用像 node-canvas 这样的 Canvas 插件来做快照。

欢迎任何想法。

以下是我目前在 Javascript 中的操作方式:

我的javascript.js

function capture(video, scaleFactor) {
if(scaleFactor == null){
scaleFactor = 1;
}
var w = video.videoWidth * scaleFactor;
var h = video.videoHeight * scaleFactor;
stdout("<br/> w: "+ w+ "<br/> h: "+ h);
var canvas = document.createElement('canvas');
canvas.width = w;
canvas.height = h;
var ctx = canvas.getContext('2d');
ctx.drawImage(video, 0, 0, w, h);
return canvas;
}

function shoot(){
var video = document.getElementById("videoTag");
var output = document.getElementById("output");
var canvas = capture(video, 1);
output.innerHTML = '';
output.appendChild(canvas);
}

index.html

<html>
<head>
<title>video snap</title>
<script type="text/javascript" src="myjavascript.js"></script>
</head>
<body>

<div id="video_container" >
<video id="videoTag" width="640" height="360" autobuffer="" controls="true">
<source src="frozenplanet.mp4" type="video/mp4">
<source src="frozenplanet.ogv" type="video/ogg">
</video>
</div>

<div id="output"></div>

</body>
</html>

最佳答案

node-fluent-ffmpeg有一个不错的 takeScreenshots 功能。

var proc = new ffmpeg('/path/to/your_movie.avi')
.takeScreenshots({
count: 1,
timemarks: [ '600' ] // number of seconds
}, '/path/to/thumbnail/folder', function(err) {
console.log('screenshots were saved')
});

关于node.js - 如何在nodejs中获取视频的快照?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8802484/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com