ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Windows용 RTSP 서버 소스
    프로그래밍/윈도우즈 2021. 3. 23. 10:15
    728x90

    최근에 카메라가 있는 보드로 부터 영상을 RTSP로 받아서 재생해주는 윈도우즈용 응용 프로그램을 만들 일이 있었습니다. 하지만, 카메라 보드와 개발을 동시에 진행해야 해서 테스트가 용이하지 않아 노트북에 있는 웹캠 영상을 소스로 사용하여 RTSP 서버를 만들어 테스트를 진행하였습니다.

     

    이렇게 임베디드 분야는 타깃 보드쪽 개발과 앱 개발을 동시에 진행하는 경우가 많아 일정 내에 개발을 완료하기 위해서는 시뮬레이션 환경을 만드는 일도 필요합니다. 사설이 길었네요...

     

    소스는 Microsoft Visual C++ 2019로 작성되었지만 64비트 컴파일러가 지원되는 버전이면 가능할 것 이라고 생각됩니다. 64비트 컴파일이 지원되야 하는 이유는 다운로드 받아 사용할 FFMPEG 라이브러리가 64비트이기 때문입니다.

     

    그리고 이 RTSP 서버는 오픈 소스 라이브러리인 FFMPEG과 live555를 이용하였습니다. 블로그에 첨부 용량이 10MByte를 넘을 수 없기도 하고 오픈 소스 라이브러리를 얻을 수 있는 방법도 소개해 드릴겸 해서 직접 준비하실 수 있도록 설명 해놓았습니다.

     

    소스

    RtspServer.7z
    0.29MB

     

    라이브러리 준비하기

    FFMPEG과 live555는 소스 코드 형태로만 배포하므로 사용하려면 직접 컴파일을 해야 합니다. 하지만, 여기서는 FFMPEG는 미리 컴파일하여 배포하는 사이트를 이용하고, live555는 MS에서 제공하는 오픈 소스 라이브러리를 컴파일해주는 vcpkg를 통해 얻어 보겠습니다.

     

    FFMPEG은 (링크)로 접속하여 헤더와 라이브러리가 담긴 파일을 다운로드 합니다.
    (다운로드 받은 FFMPEG 라이브러리의 라이센스는 GPL v3 입니다.)

     

    live555를 컴파일하기 위해 vcpkg를 다운로드(링크)하고(git으로 clone 해오시는 걸 추천합니다), vcpkg 폴더 안의 bootstrap-vcpkg.bat 파일을 실행하면 vcpkg.exe 파일이 생성됩니다.

     

    그리고, 명령 프롬프트를 실행하여 다음과 같이 live555를 컴파일 합니다.

    > vcpkg install live555:x64-windows --head
    1. 34비트 라이브러리를 사용하고자 한다면 'vcpkg install live555:x86-windows --head' 라고 실행합니다.
    2. static 라이브러리나 Linux, OS X 용 라이브러리도 컴파일 가능한데, triplets 폴더 안을 확인하시면 지원하는 목록을 볼 수 있습니다.

    컴파일이 완료되면 installed/x64-windows 폴더 아래 헤더, 라이브러리 등 결과물이 생성되어 있을 것입니다.
    (live555의 라이센스는 LGPL 입니다.)

     

    준비한 라이브러리들을 다음과 같이 3rdparty 폴더에 넣어주십시오.

     

    개요

    아이콘 출처: https://www.flaticon.com/

    구조를 간단히 설명을 해드리면, FFMPEG을 이용해서 Video input 장치에서 영상 데이터를 얻어(Capture), x264 포맷으로 Encoding 합니다. 그리고, Encoding한 데이터를 큐에 넣고 live555를 이용하여 RTSP 스트림을 합니다.

     

    영상 소스를 얻는 방법으로 FFMPEG을 사용하였기 때문에 꼭 웹캠이 아니라 동영상 파일을 열어서 스트리밍을 하실 수도 있습니다.

     

    참조 사이트

    728x90

    댓글

Designed by Tistory.