node.js - 使用 node-fluent-ffmpeg 在 Windows 上使用 ffmpeg 进行转码不起作用

标签 node.js ffmpeg transcoding

我正在尝试使用模块 node-fluent-ffmpeg ( https://github.com/schaermu/node-fluent-ffmpeg ) 对视频文件进行转码和流式传输。由于我使用的是 Windows 机器,所以我首先从官方网站 (http://ffmpeg.zeranoe.com/builds/) 下载了 FFMpeg。然后我提取文件夹 C:/FFmpeg 中的文件并将路径添加到系统路径(准确地说是 bin 文件夹)。我通过在命令提示符下键入来检查 FFmpeg 是否工作:ffmpeg -version。它给出了成功的回应。

之后,我继续复制/更改模块中的以下代码( https://github.com/schaermu/node-fluent-ffmpeg/blob/master/examples/express-stream.js ):

app.get('/video/:filename', function(req, res) {
res.contentType('avi');
console.log('Setting up stream')

var stream = 'c:/temp/' + req.params.filename
var proc = new ffmpeg({ source: configfileResults.moviepath + req.params.filename, nolog: true, timeout: 120, })
    .usingPreset('divx')
    .withAspect('4:3')
    .withSize('640x480')
    .writeToStream(res, function(retcode, error){
        if (!error){
            console.log('file has been converted succesfully',retcode);
        }else{
            console.log('file conversion error',error);
        }
    });
});

我已经用 flowplayer 正确设置了客户端并试图让它运行但是
什么都没发生。我检查了控制台,它说:
file conversion error timeout

之后我增加了超时,但不知何故,它只在我重新加载页面时开始。但是由于页面重新加载,当然会立即停止。我是否需要为文件转码制作单独的 Node 服务器?还是我需要触发某种事件?

我可能错过了一些简单的东西,但我似乎无法让它工作。
希望有人能指出我错过了什么。

谢谢

最佳答案

我已经通过使用 videoJs 而不是 Flowplayer 来修复它。在我的情况下,flowplayer 的启动方式无法正常工作。所以我初始化流,然后初始化 videojs 以显示流。效果很好。

关于node.js - 使用 node-fluent-ffmpeg 在 Windows 上使用 ffmpeg 进行转码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16267353/

相关文章:

rest - Express.js 的 BDD 测试框架

css - 模糊网站背景的 mp4 视频

c# - 为什么当我将 av_hwframe_transfer_data() 作为 Windows 服务运行时,会在 av_hwframe_transfer_data() 中捕获 "AccessViolationException"异常?

video - FFMPEG 带 DASH 的画中画

ffmpeg - 使用带有 libx264 的 ffmpeg 时无法将配置文件设置为高

node.js - 强制 share.js 使用相同的快速 session 数据

node.js - 在 node.js 网络服务器中需要 jade 中的外部模块

javascript - Node.js:通过前端执行服务器脚本

Android:如何使用 mediacodec 将两个重叠的视频保存为一个?

iphone - 如何同时对多个轨道(音频和视频)使用 AVAssetReader 和 AVAssetWriter?