最好的办法是什么如果我不想使用闪存? 我听说过有关WebRTC,但从getUserMedia获取input并将其传输到媒体服务器,然后将该数据移动到rtmpstream是可行的吗?
我们在一个stream媒体工具上工作,例如能够播放Youtube的音乐。 我们用NodeJS和YTDL做了第一个镜头。 它完全没问题,除了stream从Youtube到我们的服务器,然后到客户端,我们想直接从Youtube到客户端的stream。 为此,我在YTDL上使用了YTDL ,所以现在我可以在客户端获得一个pass-through nodeJSstream,但是我不知道如何使用它,因为它没有使用像.pipe()这样的.pipe()方法,也没有如何获取stream原始数据并将其写入临时的mp3文件。 我知道这不是一个微不足道的方法,但这是我第一次做这样的事情,而且我对这个问题的经验也不是很多,所以如果你有其他方法可行的话,我会乐于听他们的。
我看到一些在可写stream中pipe道可读stream的模块,如果发生错误,他们使用destroy方法: const readable = fs.createReadStream("file"); const writable = fs.createWriteStream("file2"); readable.pipe(writable); readable.on("error", (error) => { readable.destroy(); writable.destroy(); writable.removeListener("close"); callback(error); }); writable.on("error", (error) => { readable.destroy(); writable.destroy(); writable.removeListener("close"); callback(error); }); 什么是摧毁stream和消除可写入streamclosures事件的必要性? 如果我不这样做,会发生什么? 谢谢。
我想通过websocket将PostgreSQL查询的结果stream式传输到客户端。 使用pg-promise和pg-query-stream从数据库中提取数据。 通过websocketstream数据,我使用socket.iostream 。 单独地,所有组件performance相当好。 虽然当我pipe道pg查询stream到socket.iostream,性能急剧下降。 我已经开始了: var QueryStream = require('pg-query-stream'); var ss = require('socket.io-stream'); // Query with a lot of results var qs = new QueryStream('SELECT…'); db.stream(qs, s => { var socketStream = ss.createStream({objectMode: true}); ss(socket).emit('data', socketStream); s.pipe(socketStream); }) .then(data => { console.log('Total rows processed:', data.processed, 'Duration in milliseconds:', data.duration); }); 我试图使用非对象stream: var socketStream […]
我必须通过http,服务器发送数据到服务器,这个基本types的代码: const http = require('http') const someBigData = require('./bigDataSource') http.createServer((req, res) => { res.write(someBigData) res.end() }).listen(8080) 事情是,一些someBigData可以非常大。 所以我的问题是,块的最佳尺寸是多less?
我试图检索一个file.csv.gz使用request.js,并解压缩,然后parsing和处理。 我知道我希望我的代码看起来像这样 response .pipe(zlib.createGunzip()) .pipe(split()) .pipe(process()) 然而,我正在努力让我的响应对象以正确的格式被传送。 目前我正在试图通过做出响应来回应。 const request = require('request'); const headers = { 'accept-encoding':'gzip' } module.exports.getCSV = (url) => { return request({url, headers, gzip:true}); } 我收到错误,这意味着我正试图解压缩一个不完整的对象。 我也在想,也许不可能做到我想做的事情,相反,我将需要完全下载文件,然后再尝试parsing它进行处理
当将一个变换streampipe道转换为另外两个变换stream时,偶尔会从一个目标stream中获取一些对象,而不是在另一个目标stream中正确的对象。 在90,000个对象的stream中,在大约三分之一的运行中,大约从序号10,000开始的约10个对象来自错误的stream(不规则对象的数目的起始位置变化)。 世界上能够解释如此奇怪的结果是什么? 设置: sourceStream.pipe(processingStream1).pipe(check1); processingStream1.pipe(check2).pipe(destinationStream1); processingStream1.pipe(processingStream2).pipe(destinationStream2); sourceStream是由文件读取提供的变换stream。 两个目标stream是导致文件写入的转换stream。 文件读取和文件写入均通过fs streaming API。 所有的stream都依赖于pipe道中的node.js自动背压。 如上所述,偶尔来自processingStream2的对象正在泄漏到destinationStream1中。 检查stream(check1 a sink,check2 a passthrough)通过check2显示stream中存在的exception对象,而不是stream中check1中的exception对象。 文件读取和写入是文本(csv)文件。 我在Windows 7上使用的Node.js版本8.6(虽然当之无愧,请不要在后者扔石头)。 关于如何更好地隔离问题的build议也受到欢迎。 这个variables的结构足够好,它看起来不像是一个普通的内存泄漏,但是不足以成为一个代码错误。 我很迷惑。
我试图通过ExpressJS服务器共享我的屏幕直播。 性能原因,我无法将ffmpeg输出保存到文件或启动多个ffmpeg实例。 我目前的解决scheme是pipe道ffmpeg的标准输出和stream到每个连接的客户端。 index.js const express = require('express'); const app = express(); const request = require('request'); const FFmpeg = require('./FFmpeg'); const APP_PORT = 3500; app.get('/stream', function (req, res) { const recorder = FFmpeg.getInstance(); res.writeHead(200, { "content-type": "video/webm", }); recorder.stdout.on('data', res.write); req.on('close', FFmpeg.killInstance); }); app.listen(APP_PORT, function () { console.log(`App is listening on port ${APP_PORT}!`) }); FFmpeg.js […]
我试图理解为什么Readable = require('stream').Readable在这个代码中Readable = require('stream').Readable只能在node.js上运行15次。 我省略这行X.on('data',function() {console.log('data')}); 这条线无限期重复,这是正确的。 start.js console.log('Start Therm'); const thermom = require('./therm.js'); var X = new thermom(); X._read(); X.on('start',function() {console.log('start')}); // X.on('data',function() {console.log('data')}); X.on('end',function() {console.log('end')}); X.on('error',function() {console.log('error')}); therm.js var Readable = require('stream').Readable; var util = require('util'); var _ = require('lodash'); var count=0; function getTemperatureReadingFromThermometer(cb) { setTimeout(function() { cb(null, Math.round(Math.random() * 20 * […]
我没有使用Buffer作为一种types,例如: function toString(buffer: Buffer) { return buffer.toString(); } 抛出: 1: function toString(buffer: Buffer) { ^ identifier `Buffer`. Could not resolve name 尝试stream量 我错过了什么吗? 我认为它可以开箱即用,但也许我需要导入一些额外的定义? 在主题上找不到任何资源😦 (我在Flow的仓库中打开了一个问题,但认为它可能非常适合StackOverflow)