Потоковое видео с AR Drone

Я пытаюсь транслировать видео с моего дрона, но он не работает. Я установил ffmpeg версии 2.6, использую Ubuntu 14.04, node.js и модуль ar-drone npm. Я также использую версию 1.0 ар дрон. Мне сказали, что мне нужно использовать 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?

1 ответ

AR.Drone 1.0 обрабатывает видео иначе, чем версия 2.0 AR.Drone. Согласно Руководству разработчика AR.Drone,

  • 1.0 использует пользовательский формат Parrot под названием "P264"; 2.0 использует стандарт H264 (раздел 7.2 Руководства).
  • 1.0 потоковое видео по UDP; 2.0 потоки через TCP (раздел 2.10 Руководства).

Вы не сможете использовать библиотеку node-ar-drone для доступа к видеопотоку без значительного объема работы:

Но на самом деле, почти наверняка, лучший вариант - это просто купить AR.Drone 2.0 (новый доступен по цене около 300 долларов США с апреля 2015 года) и использовать существующий код, который поддерживается и используется другими людьми.

Другие вопросы по тегам