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 |