打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
nodejs结合node-fluent-ffmpeg 进行视频转换,获取视频缩略图
nodejs结合node-fluent-ffmpeg 进行视频转换,获取视频缩略图
1、在环境变量path中加入“ ffmpeg安装包bin目录所在路径”(一定要配置、否则没有效果)
配置完后在命令行中测试:>ffmpeg
如果没有效果,需要重启机器。
测试:ffmpeg -i myvideo.flv -vcodec mjpeg -qscale 1 -an output.avi
2、下载nodejs操作ffmpeg的模块:node-fluent-ffmpeg
https://github.com/schaermu/node-fluent-ffmpeg
3、上面链接中带有许多实例,可以直接复制粘贴进行测试


4、下面是测试代码:
/**
 * Created with JetBrains WebStorm.
 * User: tangzq
 * Date: 12-10-24
 * Time: 上午10:44
 */

//更改视频属性
var ffmpeg = require('fluent-ffmpeg');

var proc = new ffmpeg({ source: 'video_temp.mp4' })
    .withAspect('4:3')
    .withSize('640x480')
    .applyAutopadding(true, 'white')
    .saveToFile('video_aaa.mp4', function(retcode, error) {
        console.log('file has been converted succesfully');
    });

//获取视频元信息
var Metalib = require('fluent-ffmpeg').Metadata;

// make sure you set the correct path to your video file
var metaObject = new Metalib('obm.flv');
metaObject.get(function(metadata, err) {
    console.log(require('util').inspect(metadata, false, null));
});


//视频转换1
var ffmpeg = require('fluent-ffmpeg');

var proc = new ffmpeg({ source: '/path/to/your_movie.avi' })
    .withVideoBitrate(1024)
    .withVideoCodec('divx')
    .withAspect('16:9')
    .withFps(24)
    .withAudioBitrate('128k')
    .withAudioCodec('libmp3lame')
    .withAudioChannels(2)
    .addOption('-vtag', 'DIVX')
    .toFormat('avi')
    .saveToFile('/path/to/your_target.avi', function(retcode, error) {
        console.log('file has been converted succesfully');
});


//视频转换2
var ffmpeg = require('fluent-ffmpeg');

var proc = new ffmpeg({ source:'obm.flv' })
    .withVideoCodec('mjpeg')
    .toFormat('avi')
    .saveToFile('my_target.avi', function (retcode, error) {
        console.log('file has been converted succesfully');
    });

//生成缩略图1
var ffmpeg = require('fluent-ffmpeg');
var proc = new ffmpeg({ source: 'obm.flv' })
    .withSize('600x600')
    .takeScreenshots({
        count: 2,
        timemarks: [ '0.5', '1' ]
    }, 'test', function(err, filenames) {
        console.log(filenames);
        console.log('screenshots were saved');
    });

//生成缩略图2
var ffmpeg = require('fluent-ffmpeg');

var proc = new ffmpeg({ source: 'obm.flv' })
    .withSize('300x300')
    .takeScreenshots({
        count: 2,
        timemarks: [ '50%', '75%' ],
        filename: '%b_screenshot_%w_%i'
    }, 'test', function(err, filenames) {
        console.log(filenames);
        console.log('screenshots were saved');
});

//音频转换
var ffmpeg = require('fluent-ffmpeg');

var proc = new ffmpeg({ source: 'style.mp3', priority: 10 })
    .withAudioCodec('libvorbis')
    .toFormat('ogg')
    .saveToFile('style.ogg', function(retcode, error) {
        console.log('file has been converted succesfully');
});

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
PHP FFMPEG 生成视频缩略图
html5 pc端录制视频 MediaStreamRecorder
MongoDB最简单的入门教程之二 使用nodejs访问MongoDB
Node.js 入门你需要知道的 10 个问题
nodejs搭建web服务器就是这么简单!
Nodejs的单线程与异步的初步理解 | Freewind.me
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服