首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Live555 搭建 RTSP 服務器並用 VLC 播放完整教程

     編輯:程式設計綜合問答

環境準備

  • 作業系統:Windows 7/10/11 (64-bit) 或 Linux (Ubuntu 20.04+)
  • Live555 源碼:官網下載最新版 (live.YYYY.MM.DD.tar.gz)
  • VLC Media Player:官網下載
  • 視頻源:本地 MP4/H.264/H.265 檔案 (測試用 test.mp4)

Windows 下編譯與運行

1. 使用 MSYS2/MinGW 編譯 (推薦)

# 安裝 MSYS2,在 MSYS2 MinGW 64-bit 終端
pacman -S mingw-w64-x86_64-gcc make

# 解壓並編譯
tar -xzf live.2024.01.15.tar.gz
cd live
./genMakefiles mingw64
make -j4

2. 或使用 Visual Studio 開啟項目編譯

  • Live555 包含 live555.sln,用 VS 2019/2022 打開
  • 選擇 Release x64,建置解決方案
  • 輸出:liveMedia/libliveMedia.lib、testProgs/testOnDemandRTSPServer.exe

3. 運行點播服務器

# 複製測試視頻到目錄
copy test.mp4 live/testProgs/

# 運行 (指定媒體目錄)
cd live/testProgs
testOnDemandRTSPServer.exe . 
# 輸出:LIVE555 On-Demand RTSP Server ... rtsp://192.168.1.100:8554/

Linux (Ubuntu) 下快速部署

# 安裝依賴
sudo apt update && sudo apt install -y build-essential

# 下載編譯
wget https://www.live555.com/liveMedia/public/live.2024.01.15.tar.gz
tar -xzf live.2024.01.15.tar.gz
cd live
./genMakefiles linux
make -j$(nproc)
sudo make install  # 安裝到 /usr/local/lib, /usr/local/include

# 運行 (後台)
cd testProgs
./testOnDemandRTSPServer /path/to/video/dir &
# 防火牆開放 8554
sudo ufw allow 8554/tcp

VLC 播放驗證

  1. 打開 VLC → 媒體 → 打開網絡串流
  2. 輸入 RTSP URL:rtsp://SERVER_IP:8554/test.mp4
  3. 點擊播放,應能看到視頻畫面

常見 URL 格式:

  • 檔案名直接播放:rtsp://ip:8554/filename.mp4
  • 目錄瀏覽:rtsp://ip:8554/ (需服務端支援)

進階配置:實時推流 (攝像頭/螢幕)

# 使用 testMPEG4VideoStreamer 推送本地檔案模擬實時流
./testMPEG4VideoStreamer test.mp4
# 輸出:rtsp://ip:8554/live.sdp

# VLC 打開 rtsp://ip:8554/live.sdp 即可觀看實時推流

Docker 一鍵部署 (生產推薦)

# Dockerfile
FROM alpine:3.18
RUN apk add --no-cache live555
COPY media /media
EXPOSE 8554
CMD ["testOnDemandRTSPServer", "/media"]

# 構建運行
docker build -t rtsp-server .
docker run -d -p 8554:8554 -v /host/video:/media rtsp-server

常見問題排查

問題原因解決
VLC 提示「無法打開」防火牆攔截 8554、IP 錯誤、檔案不存在關閉防火牆測試、用 netstat -an | findstr 8554 確認監聽
畫面花屏/無聲音編碼格式不支援 (如 H.265 需 VLC 3.0+)轉碼為 H.264/AAC:ffmpeg -i in.mp4 -c:v libx264 -c:a aac out.mp4
多客戶端卡頓單線程 testOnDemandRTSPServer 效能限制使用 live555ProxyServer 或商業媒體服務器 (SRS, MediaMTX)
Windows 編譯報錯缺少 pthread、socket 庫使用 MSYS2/MinGW 環境,或改用預編譯二進制

生產級替代方案

  • MediaMTX (原 rtsp-simple-server):Go 語言、單二進制、支援 RTSP/RTSPS/RTMP/HLS/WebRTC、配置極簡
  • SRS (Simple Realtime Server):C++、高效能、支援集群、WebRTC 轉 RTMP/RTSP
  • GStreamer RTSP Server:管道式、插件豐富、硬體加速支援好

結論:Live555 適合學習 RTSP 協議、嵌入式設備集成。生產環境建議使用 **MediaMTX** 或 **SRS**,部署運維更簡單、效能更強、協議支援更全。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved