首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fluent-ffmpeg缩略图创建错误

fluent-ffmpeg缩略图创建错误
EN

Stack Overflow用户
提问于 2012-10-29 10:31:08
回答 3查看 5.3K关注 0票数 8

我尝试用fluent-ffmpeg创建一个视频缩略图

代码语言:javascript
复制
var ffmpeg = require('fluent-ffmpeg');

exports.thumbnail = function(){
    var proc = new ffmpeg({ source: 'Video/express2.mp4',nolog: true })
    .withSize('150x100')
    .takeScreenshots({ count: 1, timemarks: [ '00:00:02.000' ] }, 'Video/', function(err, filenames) {
    console.log(filenames);
    console.log('screenshots were saved');
  });
}

但是我一直收到这个错误

代码语言:javascript
复制
  "mate data contains no duration, aborting screenshot creation"

你知道为什么吗,

顺便说一下,我在windows上,我把ffmpeg文件夹放在c/ffmpeg中,我把ffmpeg/bin放到我的环境变量中,我不知道fluent-ffmpeg是否需要知道ffmpeg的路径,但是我可以用下面的代码成功地创建一个缩略图。

代码语言:javascript
复制
   exec("C:/ffmpeg/bin/ffmpeg -i Video/" + Name  + " -ss 00:01:00.00 -r 1 -an -vframes 1 -s 300x200 -f mjpeg Video/" + Name  + ".jpg")

请帮帮我!

EN

回答 3

Stack Overflow用户

发布于 2018-02-07 17:43:23

我认为这个问题可能是由.withSize('...')引起的。方法调用。医生说:

它不能很好地与过滤器交互。特别是,不要使用size()方法来调整缩略图的大小,而应使用size选项。

size()方法是withSize()的别名。

而且--但这不是你的问题--你不需要同时设置计数和时间标记。医生说:

如果指定了时间标记或时间戳,则忽略

计数。

那么你也许可以用以下方法来解决:

代码语言:javascript
复制
const ffmpeg = require('fluent-ffmpeg');

exports.thumbnail = function(){
    const proc = new ffmpeg({ source: 'Video/express2.mp4',nolog: true })
    .takeScreenshots({ timemarks: [ '00:00:02.000' ], size: '150x100' }, 'Video/', function(err, filenames) {
    console.log(filenames);
    console.log('screenshots were saved');
  });
}

看看文档:https://github.com/fluent-ffmpeg/node-fluent-ffmpeg#screenshotsoptions-dirname-generate-thumbnails

票数 2
EN

Stack Overflow用户

发布于 2014-04-06 08:29:02

FFmpeg需要知道视频文件的持续时间,而大多数视频在文件头中有这些信息,一些文件不知道,大多数原始视频就像原始的H.264流。

一个简单的解决方案是在拍摄快照之前重新多路复用视频,这个任务的FFmpeg 0.5命令非常简单:

代码语言:javascript
复制
ffmpeg -i input.m4v -acodec copy -vcodec copy output.m4v

这个命令告诉FFmpeg读取"input.m4v“文件,对输出使用相同的音频编码器和视频编码器(根本不编码),并将数据输出到文件output.m4v中。

FFmpeg会自动添加稍后拍摄快照所需的所有额外元数据/标头信息。

票数 0
EN

Stack Overflow用户

发布于 2017-07-21 21:15:30

尝试使用此代码从视频创建缩略图

代码语言:javascript
复制
// You have to Install Below packages First
var ffmpegPath = require('@ffmpeg-installer/ffmpeg').path;
var ffprobePath = require('@ffprobe-installer/ffprobe').path;
var ffmpeg = require('fluent-ffmpeg');
ffmpeg.setFfmpegPath(ffmpegPath);
ffmpeg.setFfprobePath(ffprobePath);



          var proc = ffmpeg(sourceFilePath)
          .on('filenames', function(filenames) {
            console.log('screenshots are ' + filenames.join(', '));   
          })
          .on('end', function() {
            console.log('screenshots were saved');
          })
          .on('error', function(err) {
            console.log('an error happened: ' + err.message);
          })
          // take 1 screenshots at predefined timemarks and size
          .takeScreenshots({ count: 1, timemarks: [ '00:00:01.000' ], size: '200x200' }, "Video/");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13115200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档