카테고리

asm (27) bootloader_x86_grub (1) C (92) compile (11) config (76) CPP (13) CSS (1) debugging (7) gimp (1) Go (1) html (1) Java (1) JavaScript (1) kernel (19) LibreOffice (3) Linux system progamming (21) MFC (1) opencv (4) OpenGL (1) PHP (1) Python (4) qemu (29) shell (3) socket (7) troubleshooting (2) ubuntu18.04 (2) windows (1)

2018/12/31

SRT 고화질 비디오 전송 기술.

고화질 비디오 전송 기술.

일반적으로 비디오 화질, 전송지연(대기시간) 간의 절충이 필요함.

스트리밍 비디오 처리
HLS 및 DASH 와 같은 세그먼트 화 된 스트리밍 기술을 사용.
Netflix와 같은 서비스 등장 비디오 배포의 세계화 진입

RTP 및 WEbRTC 기술
대기 시간이 짧은 기술을 사용하여 상대적으로 낮은 비트 전송률을 목표로하는 VoIP 시스템에 적용함.

SRT
낮은 지연 시간에 방송 등급의 비디오를 전송할 수있게함으로써 그 격차를 최소화 시킨다.

SRT 사이트 : https://www.srtalliance.org/#about_srt
1. 패킷이 손실되면 재전송을하게되지만 구성된 대기 시간에 의해 결정되는 특정 시간 동안 패킷 재전송
이는 응용 프로그램 대기 시간에 의해 제한된다는 것을 의미한다.

2. UDT의 알고리즘을 기반으로 사용 가능한 대역폭을 추측한다.
즉, 링크 용량 초과 속도로 전송하는 것을 피하며, 응용 프로그램에서 정보를 사용할 수 있도록한다.(인코더로). 가능한 최상의 품질을 보장한 대역폭을 초과하지 않도록 인코딩 비트 전송률을 조정할 수 있다. 이러한 기술의 조합을 사용하면 대역폭 충분하므로 인터넷을 통해 방송 등급의 비디오를 확인 할 수 있다.

SRT는 연결 지향 프로토콜이므로 2 피어를 연결한다.

참고 srt 설치: https://github.com/Haivision/srt
shell> git clone https://github.com/Haivision/srt
shell> sudo apt-get update
shell> sudo apt-get upgrade
shell> sudo apt-get install tclsh pkg-config cmake libssl-dev build-essential
shell> ./configure
shell> make

사용 예제.
서버 인코더 동작
shell> gst-launch-1.0 v4l2src ! video/x-raw, height=1080, width=1920 ! videoconvert ! x264enc tune=zerolatency ! video/x-h264, profile=high ! mpegtsmux ! srtserversink uri=srt://:8888/

클라이언트 접근
shell> gst-launch-1.0 srtclientsrc srt://192.168.1.55:8888 ! decodebin ! autovideosink

vlc 기반 테스트
vlc 설정 확인.
shell> vlc --list | grep srt
VLC media player 3.0.0 Vetinari (revision 3.0.0-3-g7821ebf808)
  access_output_srt      SRT stream output
  access_srt             SRT input

vlc gui 모드
도구 -> 환결설정 -> 왼쪽 하단 설정보기 -> 전체 선택 -> 입력/코덱 -> 접근 모듈 -> SRT 확인

설정 확인
vlc --vout myplugin --verbose 2 ~/test.mpg  -I dummy --my-option 1234

SRT 지원 확인,
./configure  '--disable-srt' ---> 이모드이면 enable로 변경후 재 컴파일.
기본 사용법은 UDP 또는 TCP 기반 스트림 방법이다.

shell> gst-launch-1.0 v4l2src ! video/x-raw, height=1080, width=1920 \
    ! videoconvert ! x264enc tune=zerolatency ! video/x-h264, profile=high \
    ! mpegtsmux ! srtserversink uri=srt://:8888/

vlc 스트림 재생
srt://ip_address:8888/

댓글 없음:

댓글 쓰기