VLC를 이용한 RTP 스트림 재생
Linux/GSTREAMER

VLC를 이용한 RTP 스트림 재생

728x90

본 글은 GStreamer로 송출한 RTP(H.264) 스트림을 VLC 플레이어로 수신 및 재생하는 방법을 설명한다.
Ubuntu 환경에서 VLC 기본 패키지(apt install vlc)는 RTP/RTSP 기능이 비활성화되어 있으므로,

Snap 버전 VLC 설치를 통해 live555 기반 RTP 지원을 활성화해야 한다.

1. 테스트 환경  

항목  내용 
OS Ubuntu 22.04 LTS (x86_64)
송신 프로그램   GStreamer
수신 프로그램   VLC (Snap 버전)
스트림 형식   RTP / H.264
포트   UDP 5002 (예시)

2. Gstreamer 송신  

다음 명령을 실행하면 640×480 해상도의 테스트 패턴을 RTP(H.264) 형태로 송출한다.

gst-launch-1.0 -v videotestsrc is-live=true pattern=ball ! \
  video/x-raw,width=640,height=480,framerate=30/1 ! \
  x264enc tune=zerolatency bitrate=1000 speed-preset=ultrafast ! \
  rtph264pay pt=96 config-interval=1 ! \
  udpsink host=127.0.0.1 port=5002

3. SDP 파일 생성  

VLC가 RTP 세션 정보를 알 수 있도록 .sdp 파일을 만든다.

파일명: test.sdp

cat > test.sdp <<EOF
v=0
o=- 0 0 IN IP4 127.0.0.1
s=GStreamer H264 RTP Stream
c=IN IP4 127.0.0.1
t=0 0
m=video 5002 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1
EOF

4. APT 버전 VLC의 한계

VLC는 RTP/RTSP/SDP 처리를 위해 LIVE555 라이브러리를 내부적으로 사용하는데, Ubuntu / Debian 등 특정 리눅스 배포판에서 라이브러리 지원이 빠진 또는 비활성화된 형태로 배포된 VLC가 많습니다

22.04 기준 버전 3.0.16

vlc --version | grep live

“live555” 관련 줄이 하나도 없음

VLC media player 3.0.16 Vetinari (revision 3.0.13-8-g41878ff4f2)

5. Snap 버전 VLC 설치

기존 VLC 제거

sudo apt remove --purge vlc vlc-data vlc-bin vlc-plugin-* -y
sudo apt autoremove -y

Snap VLC 설치

sudo snap install vlc

live555 모듈 확인

VLC media player 3.0.20 Vetinari (revision 3.0.20-1-g2617de71b6)
  access_output_livehttp HTTP Live streaming output
  live555                RTP/RTSP/SDP demuxer (using Live555)
  live555                RTSP/RTP access and demux

6. VLC로 수신  

아래 명령으로 VLC를 실행한다.

/snap/bin/vlc test.sdp

정상 로그 예시:

live555 debug: RTP subsession 'video/H264'
rtp demux debug: added RTP source (127.0.0.1:5002)

 

이제 GStreamer가 보내는 RTP 영상이 VLC 화면에 표시된다.

 

728x90

'Linux > GSTREAMER' 카테고리의 다른 글

[Gstreamer] appsrc  (0) 2024.04.15
[Gstreamer] appsink  (0) 2023.10.03