当前位置: 首页 > 知识库问答 >
问题:

js:jpeg图像到视频文件的实时转换

诸修伟
2023-03-14

我使用Node.js并通过socket.io库接收实际上是jpeg图像的数据块。这些图像是从远程网络摄像头捕获的实时视频帧。我被迫将视频流化为jpeg帧。我正在寻找一种方法,在一个视频文件(MPEG4或mjpeg文件)中快速转换这些jpeg图像。node是否有可以这样做的库?我已经看过Node-fluent-FFMPEG库,但给出的示例只是关于jpeg文件到视频的转换,而不是从jpeg图像流动态转换。或者,ffmpeg for windows是否支持jpeg图像流作为输入?

共有1个答案

钱志
2023-03-14

我想你应该看看视频

var exec = require("child_process").exec;
var escape = require("shell-escape");
var debug = require("debug")("videofy");
var mkdirp = require("mkdirp");
var uid = require("uid2");

/*
 *  Expose videofy
 */

module.exports = videofy;

/**
 * Convert `input` file to `output` video with the given `opts`:
 *
 *  - `rate` frame rate [10]
 *  - `encoders` the video codec format, default is libx264
 *
 * @param {String} input
 * @param {String} output
 * @return
 * @api public
 */
function videofy(input, output, opts, fn) {
    if (!input) throw new Error('input filename required');
    if (!output) throw new Error('output filename required');

    var FORMAT = '-%05d';

    // options
    if ('function' == typeof opts) {
        fn = opts;
        opts = {};
    } else {
        opts = opts || {};
    }

    opts.rate = opts.rate || 10;
    opts.codec = opts.codec || 'libx264';

    // tmpfile(s)
    var id = uid(10);
    var dir = 'tmp/' + id;
    var tmp = dir + '/tmp' + FORMAT + '.jpg';


    function gc(err) {
        debug('remove %s', dir);
        exec('rm -fr ' + dir);
        fn(err);
    }

    debug('mkdirp -p %s', dir);

    mkdirp(dir, function(error) {
        if (error) return fn(error);

        // convert gif to tmp jpg
        var cmd = ['convert', input, tmp];
        cmd = escape(cmd);

        debug('exec %s', cmd);
        // covert jpg collection to video
        exec(cmd, function(err) {

            if (err) return gc(err);

            var cmd = ['ffmpeg'];

            cmd.push('-f', 'image2');
            cmd.push('-r', String(opts.rate));
            cmd.push('-i', tmp);
            cmd.push('-c:v', String(opts.codec));
            cmd.push(output);

            cmd = escape(cmd);

            debug("exec %s", cmd);

            exec(cmd, gc);
        });
    });
}
 类似资料:
  • 我在另一个论坛上问过这个问题,但从来没有运气。我在网上找到了下面的命令,它应该使用FFMPEG从图像创建一个视频(每个持续时间为5秒)。 FFMPEG-F image2-r 1/5-i img%03d.png-vcodec libx264 out.mp4 编辑:添加命令行输出

  • 问题内容: 有没有办法在PHP中给出的视频文件(,),以生成缩略图图像预览? 问题答案: 请看一下http://ffmpeg.org/以及此讨论http://board.phpbuilder.com/showthread.php?10327812-How- to-install-ffmpeg-php-to-create-thumbnails-from- 影片

  • 问题内容: 我现在可以编译ffmpeg并将其添加到项目创建的Android.mk文件的jni文件夹中,我想使用ffmpeg从存储在静态arraylist中的图像创建视频文件 我已经搜索了很多,但找不到任何教程,对此表示感谢。 问题答案: 我也有类似的需求,并且达到了相同的目的。您可以通过两种方式执行此操作。我想先分享一个简单的例子。 在Android内部创建一个临时文件夹。 将图像复制到新文件夹中

  • 问题内容: 我正在做一个使用HTML和Javascript的项目,它将与本地文件一起在本地运行。我需要通过输入选择一个文件,获取文件信息,然后决定是否将其添加到列表中并进行复制。如果我决定使用它,则必须将其放在队列中以备后用。否则,我将丢弃并选择另一个文件。 我面临的问题是我无法找到一种仅通过在输入中选择视频持续时间来获得视频持续时间的方法。 我进行了很多搜索,但没有找到任何方法来获取持续时间。在

  • 本文向大家介绍vue vantUI实现文件(图片、文档、视频、音频)上传(多文件),包括了vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)的使用技巧和注意事项,需要的朋友参考一下 说在前面 网上有很多种文件上传的方法,根据公司最近的业务需求,要求实现多种文件的上传,在实现过程中,查阅了很多资料,最后,终于把功能实现了,开心! 上述html代码是在同一页面根据前一页面传回的col