Windows 환경에서 GSreamer SRT 플러그인 구축(1.15.0.1)(cerbero)

입문

  • GSreamer는 1.14.0부터 SRT를 지원한다고 하지만 현재 Windows 버전의 설치 프로그램에는 SRT 플러그인이 포함되지 않습니다.
  • 현재 설치 프로그램https://gstreamer.freedesktop.org/data/pkg/osx/1.14.1/
  • Windows 버전에는 하나의 시스템이 존재하는데 이 시스템은cerbero라는 의존 응용 프로그램을 포함하여 원본 코드를 다운로드하는 동시에 자동으로 구축된다.
  • https://github.com/GStreamer/cerbero
  • cerbero의 구축을 실제로 시도해 보니 걸린 부분이 많아서 적어두었다
  • 대략적인 절차

  • 필요한 절차의 사전 확인
  • 실행 환경 준비
  • 소스 코드 가져오기
  • SRT 지원에 필요한 프로젝트 구축
  • 단계 세부 정보


    필요한 단계를 미리 확인합니다.

  • github 홈페이지에서 필요한 정보 확인
  • https://github.com/centricular/cerbero#windows
  • "README"의 "Windows"표시줄이 바로 그것입니다.다른 운영 체제에 비해 설치가 가장 복잡함
  • 아래에 기술된'걸린 요점'은 미리 보는 것이 좋다.전진할 수 없을 때 대처가 빨라진다(가능성)
  • 운영 환경 준비

  • (기본적으로 README에서 확인한 내용, 다시 기술)
  • Python3 설치
  • https://www.python.org/downloads/
  • version:3.6.6
  • 설치 위치: C:\Python36
  • 참고 사항
  • "ptython3.exe"기호 링크 필요(cerbero에서 사용)
  • 윈도우즈 명령행
    > cd C:\Python36
    > mklink python3.exe python.exe
    
  • CMake 설치

  • http://www.cmake.org/cmake/resources/software.html
  • version:cmake-3.12.0-rc1-win64-x64
  • 설치 위치: C:\CMake
  • Git 설치
  • http://git-scm.com/download/win
  • version: 2.18.0.windows.1
  • 설치 위치: C:\Git
  • 참고 사항
  • 설치 옵션은 "Checkout as-is, Commit as-is"
  • 메일 주소와 사용자 이름 추적 (git clone 실패 가능)
  • 윈도우즈 명령행
    > git config --global user.email "user@host"
    > git config --global user.name "user"
    
  • Msys/MinGW 설치
  • http://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download
  • version: 최신 버전(2018/07/02시) MINGW32_NT-6.2 DESKTOP-RT5N0O7 1.0.19(0.48/3/2) 2016-07-13 17:45 i686 Msys
  • 설치 위치: C:\MinGW
  • 참고 사항:
  • 자신의 Msys 실행 환경의 경로에 공간이 포함되지 않음을 주의하세요
  • 설치 후 자동으로 현재 이름을 사용하여 Msys의 "home"폴더에 실행 환경을 만듭니다.
  • 예) C:\MinGW\msys\1.0\home\fukum
  • MinGW InstrationMaganer에 필요한 구성 요소 설치
  • BasicSetup: 전체 검사
  • All Packages:(기본값?)
  • (설명에서'모두'이지만'bin','dll'이 있는 몇 개를 추가로 검사한 후 동작을 취했다)
  • Visual Studio 설치
  • VisualStudio 2015, Visual Studio 2017도 동작
  • 다음 관련 파일도 설치
  • Microsoft SDK 7.1: http://www.microsoft.com/en-us/download/details.aspx?id=8279
  • Windows Driver Kit 7.1.0: http://msdn.microsoft.com/en-us/windows/hardware/hh852365
  • curl의 설치
  • 절차에는 없지만 필요합니다.make도 실시할 수 있지만, 다음과 같은 방법으로 대용
  • 최신 버전libcurl의 zip 파일 다운로드
  • http://curl.haxx.se/download.html
  • 대상 파일:curl-7.60.0-win64-mingw.zip
  • 압축 해제 폴더의 "sample""lib""include""bin"네 개의 폴더를 C:\MinGW
  • 로 복사
  • Msys 시작
  • "C:\MinGW\msys\1.0\msys.bat"두 번 클릭(exe를 직접 치지 않고 위치 확인)
  • 소스 코드 가져오기


    sys 콘솔
    $ mkdir min-div
    $ cd min-div
    (なんとなく作業フォルダを作成)
    
    $ git clone https://github.com/centricular/cerbero.git
    (今回は、masterブランチを使用)
    

    SRT 지원에 필요한 프로젝트 구축

  • 구축 대상의 확인
  • sys 콘솔
    $  ./cerbero-uninstalled list | grep gst-
    (gstreamer関連のものだけ確認)
    

  • 구축 객체의 버전을 확인할 수 있습니다.(이 설치 버전은 1.15.0.1)
  • bootstrap 실행
  • sys 콘솔
    $ cd cerbero
    (実行先に移動)
    
    $ ./cerbero-uninstalled bootstrap
    (1時間くらいかかる)
    
  • build gstreamer 관련 모듈 실행
  • sys 콘솔
    $ ./cerbero-uninstalled build gst-plugins-base-1.0
    (全26ビルド 2〜3時間くらいかかる)
    
    $ ./cerbero-uninstalled build gst-plugins-good-1.0
    (全44ビルド2〜3時間くらいかかる)*重複ビルドはスキップ
    
    $ ./cerbero-uninstalled build gst-plugins-bad-1.0
    (全57ビルド4〜5時間くらいかかる)*重複ビルドはスキップ
    
    $ ./cerbero-uninstalled build gst-plugins-ugly-1.0
    (全31ビルド2〜3時間くらいかかる)*重複ビルドはスキップ
    
  • 실행이 완료되면 "cerbero\build\dist\windows_x86_64"에서 gstreamer 환경을 구축합니다
  • 예)"C:\MinGW\msys\1.0\home\fukum\min-dev\cerbero\build\dist\windows_x86_64"
  • gstreamer 환경은 명령줄에서 정상적으로 실행할 수 있습니다
  • Msys 환경에서 제한된 실행 파일이 아님
  • 폴더를 동일한 OS의 다른 PC에 직접 배포해도 "어느 정도"동작하는지 확인
  • 일부 동작이 이상한 부분을 확인했기 때문에 동작이라고 완전히 단언할 수는 없다
  • 동작 확인


  • GStreamer 예제 실행

  • GStreamer의 SRT 플러그인 실행
  • 걸린 점

  • 분기'1.14.0'에서 구축되었으나 SRT 플러그인은 없음
  • 이유: 없음
  • 대책: 1.15.0.1 지점(master)으로 구축하자
  • bootstrap 실행 중도 정지
  • 이유:curl이 없음
  • 대책: 별종 진입(추가 단계)
  • bootstrap 실행/gstreamer 구축 중도 정지
  • 이유: 제한된 네트워크 환경(회사 내부 네트워크 등)에서 wget이 DL이 불가능한 파일이 존재함
  • URL에서 직접 DL을 사용할 수 있는 특수 상황
  • 조치: 무제한 네트워크 환경에서 실시
  • bootstrap 실행/gstreamer 구축 느림
  • 이유: 바이러스 백신 소프트웨어 (특히 바이러스 소프트웨어)
  • Wills Ba◯ta는 "검사 대상 외부 폴더"를 지정해도 작동합니다
  • 대책: "검사 대상에 속하지 않는다".만약 여전히 안 된다면, 잠시 멈추어라
  • bootstrap 실행/gstreamer 구축 처리 중
  • 이유: 화면의 진도는 컨트롤러만 있기 때문에 내부의 실행을 모른다
  • 대책: 작업 관리자 "자세한 정보"열기 확인
  • 작업 관리자에서 "sh""gcc"등을 전환하기 때문에 움직인다
  • 4시간이 지나도 컴파일러에서 전진하지 않고 다시 실행해도 마찬가지
  • 원인: 작업 관리자에 이전의 실행 과정("make"등)이 남아 있어 방해를 받는다
  • Ctrl+C로 끝나도 작업 관리자는 이전 실행 프로세스를 유지합니다("make"등)
  • 대책: 다시 실행하기 전에 프로세스가 남아 있는지 확인하고 삭제하십시오(PC 재부팅 확인?)
  • (보충)bootstrap 실행 불가(Gstreamer1.14.x)
  • 원인:cerbero는 Python2.7에서 Gstreamer1.14.0 시리즈를 사용합니다.Python3.x가 제대로 작동하지 않음
  • 대책: Python2.7만 삽입(추가: 1.14.0 구축 후 SRT 플러그인 미삽입)
  • (뱀발: 중간에 있는 Gstreamer는 Python2.7과 Python3.x를 사용한다.)
  • 참고문

  • gstreamer 및 VLC에서 새로운 비디오 전송 프로토콜 SRT 시도
  • Cerbero를 사용하여 VS2015에서 GStreamer 구축
  • Windows MinGW에 libcurl 설치
  • 좋은 웹페이지 즐겨찾기