我正在尝试使用模块 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/