来自 AR 无人机的流媒体视频



我正在尝试从我的ar无人机流式传输视频,但它不起作用。我已经安装了 ffmpeg 版本 2.6,正在使用 Ubuntu 14.04、node.js 和 ar-drone npm 模块。我也在使用 1.0 版的 ar 无人机。有人告诉我我需要使用 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 ...');
});

当我运行它并在浏览器中转到 http://localhost:8080/时,我收到错误消息"尚未收到任何 png 数据"。这是因为我使用的是无人机的 1.0 版吗?

AR.无人机 1.0 处理视频的方式与 AR 的 2.0 版本不同。雄蜂。 根据AR。无人机开发人员指南,

  • 1.0使用称为"P264"的自定义Parrot格式;2.0使用标准H264(指南第7.2节)。
  • 1.0 通过 UDP 流式传输视频;2.0 通过 TCP 流式传输(本指南第 2.10 节)。

如果没有大量的工作,您将无法使用node-ar-drone库访问视频流:

  • 将视频流处理更改为使用 UDP。
  • 更改视频解码逻辑。 P264几乎是H264,有报道称,虽然fffmpeg不能处理P264,但ffplay可以。 或者,也许您可以从javascript H264解码器开始,并根据Parrot对P264格式的描述对其进行修改(指南第7.2.3节)。

但实际上,几乎可以肯定的是,最好的选择是简单地购买AR。无人机 2.0(截至 2015 年 4 月,新品售价约为 300 美元)并使用其他人支持和使用的现有代码。

相关内容

  • 没有找到相关文章

最新更新