2014-07-09 2 views
1

얻기 비디오 아칸소 드론 V1.0에 노드 JS를 사용하여 비디오 스트림 또는 PNG 스트림을 얻을하는 방법

나는 2.0의 코드와도 github에보고 된 사람들은 비디오 스트림 라이브러리가 v1에서는 작동하지 않는다고 말합니다.

거기에 컴퓨터에서 png/비디오 스트림을 얻을 수있는 다른 방법이 있습니까?

감사합니다.

+0

사람들이 작동하지 않는다고 말하는 경우 그렇지 않을 수도 있습니다. 작동 시키려고 했습니까? 어떤 오류 메시지가 나타 났습니까? 어떤 코드를 시도했는데 실패 했습니까? 좀 더 자세하게 게시하십시오. – xDaevax

+0

안녕하십니까, 응답 주셔서 감사합니다. GIT 허브에있는 사람들은 v1.0이 비디오 용 노드 js 프로그램에서 지원하지 않는 비디오 프로토콜을 변경했다고 말했습니다. – user2837909

+0

오는 오류는 TCP : ECONREFUSED입니다. – user2837909

답변

1

좋은 질문입니다. Node.js를 통해 Parrot AR Drones에서 PNG (그림) 스트림이나 TCP (비디오) 스트림을 제작하는 데 어려움을 겪었습니다. Node.js가 이미 설치되어 있고 AR-Drones에 대한 Felix Geisendörfer의 Node.js 패키지를 다운로드했다고 가정하고 비행을 할 수있게되었습니다. PNG 스트림을 얻으려면 7zip이 설치되어 있어야합니다 (필요합니다). 또한 FFMPEG를 다운로드해야합니다. 그러면 컴퓨터에서 브라우저에 출력하기 전에 무인 항공기의 스트림을 쉽게 파싱 할 수 있습니다. 다운로드 후 FFmpeg 파일을 추출하려면 7zip을 사용하십시오. 그것으로 다음과 같은 소스 코드를 Node.js를 파일 (의 .js)을 작성하고 복사하는 Nd 붙여 넣기 :

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 ...') 
 
});

저장 그것만큼 '에는 Video.js'과 같은 이름으로 파일 (.js로 끝남). 자바 스크립트 파일이 Node.js (무인 비행을 위해 설치 한 소프트웨어)를 사용하여 실행되도록 설정되어 있는지 확인하십시오. 그런 다음 무인 항공기를 켜고 무선 랜에 연결하십시오. 그런 다음 'ff-prompt.bat'파일을 찾을 때까지 FFMPEG 파일을 검토하십시오. 해당 배치 파일의 프롬프트에서 video.js (또는 사용자가 호출 한 파일)의 파일 경로를 입력하거나 붙여 넣으십시오. 그런 다음 enter를 누르면 포트 8080에서 로컬 호스트 (127.0.0.1)로 브로드 캐스팅되기 시작합니다. 따라서 브라우저로 이동하여 "http://localhost:8080"을 입력하면 무인기에서 이미지를 볼 수 있습니다. 질문이 있으시면 언제든지 의견을 남겨 주시면 최대한 빨리 해결하겠습니다. 감사!