我正在使用我在互联网上找到的不同代码处理AR Drone 2.0的视频流。
我已尝试ffplay tcp://192.168.1.1:5555
来自AR Drone 2.0的视频流;但是,延迟太高了。
我的第二次尝试是:
var arDrone = require('ar-drone');
var http = require('http');
console.log('Connecting png stream ...');
var pngStream = arDrone.createClient().getPngStream();
var lastPng;
pngStream
.on('error', console.log)
.on('data', function(pngBuffer) {
lastPng = pngBuffer;
});
var server = http.createServer(function(req, res) {
if (!lastPng) {
res.writeHead(503);
res.end('Did not receive any png data yet.');
return;
}
res.writeHead(200, {'Content-Type': 'image/png'});
res.end(lastPng);
});
server.listen(8080, function() {
console.log('Serving latest png on port 8080 ...');
});
这只是流式图片。我不得不每秒刷新浏览器。
我的第三个选择是使用此选项:
var arDrone=require('ar-drone')
var client= arDrone.createclient();
require('ar-drone-png-stream')(client,{port:8000})
它在很短的时间内播放了很多图像。延迟仍然很大,我正在寻找视频。
是否有其他方法可以显着降低视频流的延迟?
答案 0 :(得分:0)
多少延迟?您还有哪些其他选项可以提供视频?
尽量减少对缓冲区的影响:
{{1}}
答案 1 :(得分:0)
现在,我在使用新型Tello无人机时遇到了同样的问题。 诀窍是迫使帧速率比无人机提供的帧速率高。否则,多余的帧将被缓冲,您的延迟将不断增加。 因此,在末尾添加-framerate 35即可! (或更高的值)