Tag: ffmpeg

使用FFMPEG实时stream式传输到networkingaudioAPI

我正在尝试使用node.js + ffmpeg将audiostream式传输到仅使用WebaudioAPI连接的浏览器。 不使用元素,因为它添加了自己的缓冲区8到10秒,我想获得最大的高延迟(最大大约1到2秒)。 audio播放成功,但audio非常波涛汹涌。 这里是我的node.js(服务器端)文件: var ws = require('websocket.io'), server = ws.listen(3000); var child_process = require("child_process"); var i = 0; server.on('connection', function (socket) { console.log('New client connected'); var ffmpeg = child_process.spawn("ffmpeg",[ "-re","-i", "A.mp3","-f", "f32le", "pipe:1" // Output to STDOUT ]); ffmpeg.stdout.on('data', function(data) { var buff = new Buffer(data); socket.send(buff.toString('base64')); }); }); 这里是我的HTML: var audioBuffer […]

使用nodejs stdoutpipe道输出ffmpeg

我无法通过标准输出pipe道输出ffmpeg。 以下是我编码到目前为止的代码块。 var http = require('http') , fs = require('fs') var child_process = require("child_process") http.createServer(function (req, res) { console.log("Request:", dump_req(req) , "\n") // path of the var path = 'test-mp4.mp4' //test-mp4-long.mp4 , stat = fs.statSync(path) , total = stat.size var range = req.headers.range , parts = range.replace(/bytes=/, "").split("-") , partialstart = parts[0] , partialend = […]

IBM Watson语音到Node.js Web应用程序上的文本audio转换

问题的关键是IBM Watson Speech to Text只允许FLAC,WAV和OGG文件格式上传并与API一起使用。 我的解决scheme是,如果用户上传一个MP3,在发送文件到Watson之前,数据转换将发生。 本质上,用户上传一个mp3,然后使用ffmpeg或sox将audio转换为OGG,然后将audio上传到Watson。 我不确定的是:为了允许audio转换发生,我必须在Node.js Watson代码中修改哪些内容? 下面链接是我正在通过的沃森回购。 我相信这个文件必须被修改,就是我已经链接到的fileupload.js文件,但是修改的地方是我不确定的。 我已经通过SO和developerWorks,IBM SO来了解这个问题的答案,但是我还没有看到这是我在这里发布的原因。 如果有必要,我会很乐意澄清我的问题。 沃森演讲到文本回复

在AWS Zip中捆绑Node.js依赖

我使用Node.js创build一个lambda函数,而我正在寻找将依赖关系捆绑到我的zip中以用于AWS中的Lambda函数。 特别是我使用ffmpeg库,我已经得到它在本地使用npm运行 。 有没有办法,我可以绑定这个依赖关系与我上传的.zip文件,所以我不必在AWS中configuration依赖关系?

如何获取node-fluent-ffmpeg上的stderr

现在saveToFilecallback参数已被弃用: FfmpegCommand.prototype.saveToFile = function(targetfile, callback) { if (callback) { this.options.logger.warn('saveToFile callback is deprecated, use \'end\' and \'error\' events instead'); 我已经改变了我的代码: new ffmpeg({ source: source }) .toFormat('ogg') .saveToFile(path.normalize(targetFile), function(stdout, stderr) { console.log('stdout', stdout); console.log('stderr', stderr); }); 对此: new ffmpeg({ source: source }) .toFormat('ogg') .on('end', function() { console.log('file has been converted succesfully'); }) .on('error', function(err) { console.log('an […]

发生错误:产生ENOENT,node.js&FFmpeg

我有一个噩梦的时间试图解决这个问题。 我昨天问了一个关于这个问题的问题,但是到目前为止,长话短说,我不能为我的生活弄清楚这一点。 我想要做的就是在一个node.js应用程序中使用FFmpeg将一个.avi文件转码为一个.flv文件,这个工作只是使用FFmpeg的命令行而不是在应用程序中,代码如下: var ffmpeg = require('fluent-ffmpeg'); //make sure you set the correct path to your video file var proc = new ffmpeg({ source: 'C:/Users/Jay/Documents/movie/drop.avi', nolog: true }); //Set the path to where FFmpeg is installed proc.setFfmpegPath("C:\\Users\\Jay\\Documents\\FFMPEG\\bin"); proc //set the size //.withSize('50%') <– error appears after this line // set fps //.withFps(24) // set output […]

使用NodeJS中的mp4容器stream式转换电影,电影播放速度非常快

我已经使用stream-transcoder模块来转换文件使其成为一个stream。 所以文件不存储,它是在飞行中。 app.get("/video", function(req,res){ res.writeHead(200, {'Content-Type': 'video/mp4'}); var src = "movie.avi"; var Transcoder = require('stream-transcoder'); var stream = fs.createReadStream(src); new Transcoder(stream) .maxSize(1280, 720) .videoCodec('h264') .videoBitrate(800 * 1000) .fps(25) .sampleRate(44100) .channels(2) .audioBitrate(128 * 1000) .format('mp4') .on('finish', function() { console.log("finished"); }) .stream().pipe(res); }); 它工作的很好,速度很快,但速度太快,audio播放速度相同,但video不考虑帧速率,不pipe从ffmpeg收到什么,都很快地显示出来。 此外,它不显示总时间,我相信这是问题。 我需要以某种方式指定长度,帧率,但我找不到足够的信息。 我以为从ffmpeg收到的stream应该包含这个。 而我无法findHTTP中的相应标题。 以下是这个stream代码转换器模块用于MP4的标志: [ '-i', '-', '-vf', 'scale=min(trunc(1280/hsub)*hsub\\,trunc(a*720/hsub)*hsub):min(trunc(720/vsub)*vsub\\,trunc(1280/a/vsub)*vsub)', '-vcodec', 'h264', '-b:v', […]

After Effects作为后端电影引擎?

我现在正在开发一个项目,可以让我根据用户input生成电影。 用户将上传一些样本(照片,电影)到networking应用程序,networking服务器应该根据该input和一些预定义的电影作品生成电影。 我知道有很多的ffmpeg库可以让我连接电影,照片编程(例如https://github.com/schaermu/node-fluent-ffmpeg为node.js),但我想知道是否有可能使用Aftereffects为此目的,因为我有一些在该软件的知识。 我想象一下,在Aftereffects中应该有一组脚本可以导入用户上传的数据,激发电影渲染器并将输出保存到给定位置。 你认为这是可以使用后遗症吗? 或者,也许有人有类似的问题,解决了不同的? 干杯!

在nodejs中获取video分辨率

我一直试图得到一个答案,而没有真正find任何。 对不起,如果这听起来很愚蠢或明显。 我有一个nodejs应用程序,基本上我只想简单地得到一个video的分辨率。 想象一下,我有电影存储在磁盘上,我想能够知道是否在720p或1080p或其他任何东西。 我知道我可能需要使用ffmpeg才能这样做,但是我也明白ffmpeg主要用于“logging,转换和stream式处理audio和video文件”。 这并不意味着检索video分辨率。 感谢您的帮助 编辑1:node.js应用程序是一个桌面应用程序,需要可移植到Linux,Windows和OS X.如果可能的话,一个便携式的答案将更加赞赏,但当然任何答案是值得欢迎的。

FFMPEG挂起整个nodejs进程

我想要做的是使用ffmpeg制作video的缩略图。 video数据通过HTTP请求接收,然后通过pipe道传输到ffmpeg。 问题是,一旦ffmpegsubprocess退出,我根本无法发送回应。 这里是代码: var http = require('http'), sys = require('sys'), child = require('child_process') http.createServer(function (req, res) { im = child.spawn('ffmpeg',['-i','-','-vcodec','mjpeg','-ss','00:00:03','-vframes','1','-s','100×80','./thumb/thumbnail.jpg']); im.on('exit', function (code, signal) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('{"success":true}\n'); }); req.connection.pipe(im.stdin); }).listen(5678, "127.0.0.1"); 问题是,调用: res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('{"success":true}\n'); 什么都不做,客户从来没有收到回应。