2025年9月3日 星期三

ffmpeg play rtsp by IPCAM

 結論:

MainStream=主碼流,畫質高、碼率高;

SubStream=子碼流,畫質低、碼率低,供多畫面預覽或行動端。

串流內容解讀

  • rtsp://192.168.5.2:554/stream0?... → 主碼流(通常 1080p/2–8 Mbps,H.264/H.265)。

  • rtsp://192.168.5.2:554/stream1?... → 子碼流(通常 360p/480p/≤1 Mbps,低延遲預覽)。

  • Snapshot ... stream=1/2 → 對應主/子碼流的即時快照 JPEG。

認證方式

  • RTSP URL 帶 username=admin&password=E10ADC...
    E10ADC3949BA59ABBE56E057F20F883E = MD5("123456")。部分廠牌要求 RTSP 用雜湊,HTTP 快照用明文密碼。

  • 風險:帳密暴露在 URL,會出現在日誌與瀏覽器歷史。請改強密碼並限制內網存取。

立即測試

播放主碼流:

ffplay -rtsp_transport tcp "rtsp://192.168.5.2:554/stream0?username=admin&password=E10ADC3949BA59ABBE56E057F20F883E"

播放子碼流:

ffplay -rtsp_transport tcp "rtsp://192.168.5.2:554/stream1?username=admin&password=E10ADC3949BA59ABBE56E057F20F883E"

快照檢視:

curl "http://192.168.5.2/cgi-bin/snapshot.cgi?stream=1&username=admin&password=123456" -o snap.jpg

取得實際編碼與解析度

ffprobe -v error -select_streams v:0 \ -show_entries stream=codec_name,width,height,avg_frame_rate,bit_rate \ -of default=nw=1 \ "rtsp://192.168.5.2:554/stream0?username=admin&password=E10ADC3949BA59ABBE56E057F20F883E"

使用建議

  • 監看用子碼流,錄影用主碼流。

  • 瀏覽器前端:避免直接用 RTSP,改伺服器側轉 HLS/LL-HLS。

  • 網路隔離與權限控制,避免 URL 洩漏。


==========================

做法:安裝 FFmpeg 套件即可,ffplay 隨附其中。

Ubuntu / Debian

sudo apt update sudo apt install -y ffmpeg ffplay -version




沒有留言:

張貼留言