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

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

Когда я запускаю его и перехожу на http://localhost:8080/ в своем браузере, я получаю сообщение об ошибке "Did not получить любые png данные." Это потому что я использую версию 1.0 дрона??


person kingpin    schedule 12.03.2015    source источник
comment
Я не думаю, что node-ar-drone хорошо протестирован с дроном версии 1.0. Работает ли все, кроме потока PNG?   -  person John Wiseman    schedule 24.04.2015
comment
Похоже, что версия 1 AR.Drone использовала UDP для видеопотока, а версия 2 использует TCP. Это долгий путь, но, возможно, вы могли бы попытаться преобразовать код node-ar-drone для использования UDP.   -  person John Wiseman    schedule 24.04.2015


Ответы (1)


AR.Drone 1.0 обрабатывает видео иначе, чем AR.Drone версии 2.0. Согласно Руководству разработчика 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 года) и использовать существующий код, который поддерживается и используется другими людьми.

person John Wiseman    schedule 27.04.2015