项目作者: realrainer

项目描述 :
Node.js module for capture and decode rtsp or http video streams
高级语言: C++
项目地址: git://github.com/realrainer/avrmodule.git
创建时间: 2016-06-06T07:43:15Z
项目社区:https://github.com/realrainer/avrmodule

开源协议:

下载


avrmodule

Node.js multithread C++ module for capture and decode video streams.
Only HTTP and RTSP input video streams are supported, only h264 and mjpeg input codecs are supported. Output stream may saved or encoded to mpeg1 and used to display in browser with jsmpeg library

Required:

  • live555 with headers and shared libraries
  • ffmpeg with headers and shared libraries
  • libcurl with headers and shared libraries

Example usage:

Capture RTSP video stream from url rtsp://10.0.10.2:554/h264 with resolution 1280x720 and save to separate files: raw stream, jpeg thumbnail (320x180) and mpeg1 encoded stream

  1. var avr = require('./avrmodule/build/Release/avrmodule');
  2. var fs = require('fs');
  3. var camCount = 1;
  4. process.env.UV_THREADPOOL_SIZE = 5 + camCount * 2;
  5. h264stream = fs.createWriteStream("./stream.h264");
  6. mpeg1stream = fs.createWriteStream("./stream.mpeg1video");
  7. cam01 = new avr.aRTSPInput("rtsp://10.0.10.2:554/h264", "h264");
  8. cam01decoder = new avr.aStreamDecode(1280, 720, 320, 180, "h264", 16, 8);
  9. cam01decoder.needVideo(1);
  10. cam01.start(function(buf, keyFrame) {
  11. if (keyFrame) {
  12. console.log("Got keyframe\n");
  13. }
  14. h264stream.write(buf);
  15. cam01decoder.decode(buf);
  16. });
  17. cam01decoder.onPreview(function(buf) {
  18. thumb = fs.writeFile("./thumb.jpeg", buf);
  19. });
  20. cam01decoder.onVideo(function(buf) {
  21. mpeg1stream.write(buf);
  22. });