Tag: stream

节点fluent-ffmpegstream输出错误代码1

完全按照文档,我试图使用一个stream来写入video转换文件。 var FFmpeg = require('fluent-ffmpeg'); var fs = require('fs'); var outStream = fs.createWriteStream('C:/Users/Jack/Videos/test.mp4'); new FFmpeg({ source: 'C:/Users/Jack/Videos/video.mp4' }) .withVideoCodec('libx264') .withAudioCodec('libmp3lame') .withSize('320×240') .on('error', function(err) { console.log('An error occurred: ' + err.message); }) .on('end', function() { console.log('Processing finished !'); }) .writeToStream(outStream, { end: true }); 当我使用.saveToFile()时,这个转换完美地工作,但返回 发生错误:ffmpeg用代码1退出 当我运行这个代码。 我在Windows 8.1 64位使用从这里 64位ffmpeg生成。

节点fs.readstream()输出<缓冲区3c 3f 78 6d 6c …>而不是可读数据

我在Node Js中读取一个大的XML文件(〜1.5gb)。 我正在尝试使用大量数据进行stream式处理,但是我发现很难理解文档。 我目前的简单代码是: var fs = require('fs'); var stream = fs.createReadStream('xml/bigxmlfile.xml'); stream.on('data', function(chunk){ console.log(chunk) }); 控制台给出了一堆bufferhex(我认为)代码是这样的: <Buffer 65 61 6e 2d 63 75 74 20 67 72 69 64 20 6c 69 6e 65 73 20 74 68 65 20 73 70 72 65 61 64 20 63 6f 6c 6c 61 72 20 […]

获取vs请求

我在使用JSONstream,并试图使用fetch来使用它。 该stream每隔几秒发射一些数据。 只有在streamclosures服务器端时,使用fetch来使用stream才能访问数据。 例如: var target; // the url. var options = { method: "POST", body: bodyString, } var drain = function(response) { // hit only when the stream is killed server side. // response.body is always undefined. Can't use the reader it provides. return response.text(); // or response.json(); }; var listenStream = fetch(target, options).then(drain).then(console.log).catch(console.log); […]

在flowjs 0.54.0中新的“Missing annotation”错误

切换到0.54.0以下代码片段后: function runKarmaTest() { const KARMA_CONFIG = {}; return new Promise(function (resolve, reject) { new karma.Server(KARMA_CONFIG, function (exitCode) { if (exitCode === 0) { resolve(); } else { reject(exitCode); } }).start(); }); } 报告以下错误: Error: scripts/runKarma.js:76 v—————————————- 76: return new Promise(function (resolve, reject) { 77: new karma.Server(KARMA_CONFIG, function (exitCode) { 78: if (exitCode === 0) […]

如何在循环中使用可写Streams在Node中顺序写入stream?

我想通过一个循环以特定的顺序将行追加到Node中的可写入stream文件中。 以下是我正在谈论的简化版本: var fs = require('fs'); var outfile = fs.createWriteStream('outfile.txt'); for (var i = 0; i < 200; i++) { outfile.write('i', function (err, len) { console.log('written'); }); } 我需要将文件顺序写入,意味着它会按顺序写入12345…etc 。 我的理解是, outfile.write是asynchronous的,这意味着文件可能被乱序写入 – 这是正确的吗? 我从节点文档中看到 请注意,在不等待callback的情况下,在同一个文件上多次使用fs.write是不安全的。 对于这种情况,强烈build议使用fs.createWriteStream。 所以我相信使用stream是最好的,但是,我不确定是否确保数据块成功写入循环中的下一个迭代之前。 我应该怎么做呢? 谢谢。

Node.jspipe道http请求&承诺

我使用一个Node.js 请求模块来发出一个http请求,并且想把响应传递给一些stream。 这里有两个代码段: 一个正常工作的例子 。 我只是响应response事件。 const fs = require('fs') const path = require('path') const request = require('request') const filepath = path.resolve('./tmp.zip') const ws = fs.createWriteStream(filepath) function get() { return new Promise((resolve, reject) => { request.get(uri, options) .on('response', (res) => { ws.on('finish', () => console.log('finish')) res.pipe(ws) resolve() }) .on('error', (err) => { reject(err) }) }) […]

来自雅虎或Google的node.jsstream式财务数据

更新:我想不断接收数据。 目前,这返回一个数据集。 我认为唯一的select是轮询/ setInterval技术,只达到stream的效果。 是否有可能使用node.js从雅虎或谷歌检索stream财务数据? 我知道他们没有公开的API可用于我试图检索的数据。 我已经写了这个使用快递,但数据不是stream。 var express = require('express'), http = require('http'), app = express.createServer(); // Using either Google or Yahoo… var client = http.createClient(80,'download.finance.yahoo.com'); var request = client.request('GET', '/d/quotes.csv?s=GOOG&f=snr', { host: 'download.finance.yahoo.com' }); //var client = http.createClient(80,'www.google.com'); //var request = client.request('GET', '/finance/info?client=ig&q=CSCO', { host: 'www.google.com'}); request.end(); request.addListener('response', function (response) { response.setEncoding(encoding="utf8"); response.addListener('data', […]

为什么图像没有完全显示与我的stream应用程序?

我已经写了一个简单的Node.js应用程序来传输内容(主要用于video,但其他的东西也可以)。 它似乎工作得很好,除了一些jpeg,其中图像的底部并不总是显示。 这里是一个例子,图片的底部在左侧丢失。 显示问题的网站在这里 ,没有问题的相同的网站在这里 。 (在第一个链接的大多数图像的底部应该有粉红色的位) 该应用程序的代码是在Github上 ,但我想重要的线是 stream = fs.createReadStream(info.file, { flags: "r", start: info.start, end: info.end }); stream.pipe(res); (所有的繁重工作都是由stream.js完成的,而不是我的代码。) 我已经尝试删除开始和结束参数,但没有区别。 如果将其更改为将文件stream式传输到process.stdout ,并将输出保存到文件,则会显示整个图像。 一个文件比较程序说stdout和原来的文件是一样的。 如果我转移除基线jpeg以外的东西(所以即使渐进式jpegs工作),它显示整个文件。 如果我通过链接的Node.js应用程序(使用Express)访问文件,但不通过stream式传输器,它显示整个图像。 如果我从浏览器中将不完整的图片保存到桌面,则会保存整个图像。 对于一些JPEG的作品,但不是最。 这个问题发生在本地和我的服务器上(Windows 2008 R2和Ubuntu 11)。 浏览器testing(超过3台计算机和1个虚拟机) Safari 4,5 – 作品 火狐4,11(2电脑) – 不起作用 Chrome 18(2台电脑) – 不起作用 IE 8 – 不起作用 IE 9 – 作品 歌剧11 […]

将可读stream传递给C绑定

是否有可能以某种方式将可读stream传递到Node.js C绑定库,而不必先缓冲它? 我知道使用child_process.spawn与标准input和标准输出和shell命令类似的任务types,但有没有办法直接传入一个stream(假设这将比subprocess和标准input/标准输出更高性能)? 感谢您的任何指导!

在Node.js中,fs.createFileStream生成的stream在另一个stream被读取到结尾之后是不可读的

我正在使用node-zipstream在node.js中创buildZIP文件。 我已经创build了一个简单的包装来创build一个同步API的错觉,当添加stream到ZIP(包含在下面的代码中)。 当使用请求stream时,一切都按预期工作,但是当我使用文件stream时,第一个stream完成后第二个stream变得不可读。 var zipstream = require('zipstream'); var fs = require('fs'); function ZipQueue(out, options) { var zip = zipstream.createZip(options); zip.pipe(out); var queue = new Array(); this.addFile = function(readStream, options) { queue.push({stream: readStream, options: options}); } this.runQueue = function(cb) { for(var element in queue) { queue[element].stream.on('error', function(err) { console.dir(err); }) } function run() { i++; if […]