Node-RTSP-recoder 에러(rtsp, ffmpeg)

who_am_i·2021년 9월 15일
0

이슈

목록 보기
1/1
post-custom-banner

마이클 니더마이어(Michael Niedermayer)의 주도하에 개발되고 있는 모든 동영상, 음악, 사진 포맷들의 디코딩과 인코딩을 목표로 만들어지고 있는 LGPL과 GPL 라이선스를 따르는 오픈 소스 프로젝트

ffmpeg를 설치하는 방법은 아래 링크를 통해 다운 받을 수 있다.
(윈도우에서는 환경변수를 설정해줘야 rtsp 관련 라이브러리를 사용할 떄 사용할 수 있다.)
https://ffmpeg.org/download.html

node에서 rtsp 관련 라이브러리 이슈 (사용해본)

우선 ffmpeg에 대해 자세히 알아보기 전 node에서 ffmpeg 를 사용한 npm 등을 정리

  • node-rtsp-recorder

이 라이브러리 같은 경우에는 npm 자체의 다운로드 수가 낮지만, rtsp recorder를 node에서 사용한다면 대부분의 글이 이 라이브러리로 이루어져 소개한다.

https://www.npmjs.com/package/node-rtsp-recorder

이 링크를 들어가보면

 
    const Recorder = require('node-rtsp-recorder').Recorder
 
    var rec = new Recorder({
        url: 'rtsp://192.168.1.12:8554/unicast',
        timeLimit: 60, // time in seconds for each segmented video file
        folder: '/Users/sahilchaddha/Sahil/Projects/Github/node-rtsp-recorder/videos',
        name: 'cam1',
    })
    // Starts Recording
    rec.startRecording();
 
    setTimeout(() => {
        console.log('Stopping Recording')
        rec.stopRecording()
        rec = null
    }, 300000)
    

와 같은 recoding video 예시가 있는데.. 개인적으로 이 코드대로하면 잘라서 나오는 mp4 파일이 재생이 안되는 이슈가 있었다.

그래서 https://github.com/sahilchaddha/node-rtsp-recorder/issues/9

이 github의 이슈를 보면 라이브러리의 코드 중

Recoder.js 의 getChildProcess & killStrea 의 수정하라는 글( https://github.com/sahilchaddha/node-rtsp-recorder/issues/9#issuecomment-587714516)과
GETExtenstion에서의 video return을 mp4 대신 .mvo 로 하라는 글(https://github.com/sahilchaddha/node-rtsp-recorder/issues/9#issuecomment-855291247)이 있었다.
우선 mvo같은 경우에는 왜인지 모르지만 되지 않았고, getChildProcess & killStream을 변경하라는 글을 적용하니 실행은 되었다. (하지만 이 같은 경우 영상 초반이 멈추어있다 재생되는 이슈가 있었다. 아무래도 스트림을 끊고 새로 받아오는 과정에서 초반 읽어오는데 걸리는 시간 때문이 그런거 같다.)

그래서 생각을 해보니 굳이 child_process를 사용할 거 같으면 ffmeg 사이트를 찾아봐서 직접 child_process를 작성해야되겠다고 느꼈다.

profile
멋진 개발자가 되고 싶어요 youngjun.site
post-custom-banner

0개의 댓글