Darwin Streaming Server 是蘋果開源的 QuickTime 串流伺服器,支援 RTSP/RTP 協議,廣泛用於音視頻點播、直播轉碼分發場景。本文基於 Linux 環境,涵蓋獲取源碼、編譯安裝、Web 管理配置、服務化部署、客戶端測試全流程,並補充生產環境優化建議。
# 建議規格:2 vCPU / 4GB RAM / 50GB 磁碟 / 1Gbps 網路
# 作業系統:Ubuntu 22.04 LTS / Rocky Linux 9 / Debian 12
# 依賴套件:
sudo apt update && sudo apt install -y build-essential perl libssl-dev zlib1g-dev wget tar
# 或
sudo dnf install -y gcc gcc-c++ make perl openssl-devel zlib-devel wget tar
cd /usr/local/src
wget https://github.com/darwinstreaming/darwinstreamingserver/releases/download/6.0.3/DarwinStreamingSrvr6.0.3-Linux.tar.gz
tar xzf DarwinStreamingSrvr6.0.3-Linux.tar.gz
cd DarwinStreamingSrvr6.0.3-Linux
./Install
安裝腳本會引導輸入:管理員用戶名/密碼、RTSP 埠(預設 554)、HTTP 埠(預設 80/8080)、RTP 埠範圍、媒體目錄、日誌目錄。建議採用非預設埠避免衝突。
| 路徑 | 用途 |
|---|---|
| /usr/local/sbin/QuickTimeStreamingServer | 核心串流服務二進制 |
| /usr/local/sbin/streamingadminserver.pl | Web 管理服務 |
| /etc/streaming/ | 配置檔(qtss.conf、users、groups) |
| /usr/local/movies/ | 預設媒體檔案根目錄 |
| /var/streaming/logs/ | 存取日誌、錯誤日誌 |
| /var/streaming/playlists/ | 播放清單檔案 |
vim /etc/streaming/qtss.conf
# 找到並修改:
admin_server_ip_addr = 0.0.0.0 # 監聽所有介面
admin_server_port = 1220 # 管理埠
admin_user = admin # 管理員帳號
admin_password = StrongP@ssw0rd # 強密碼
cat > /etc/systemd/system/darwin-streaming.service <<'EOF'
[Unit]
Description=Darwin Streaming Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/sbin/QuickTimeStreamingServer
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=5
User=root
Group=root
[Install]
WantedBy=multi-user.target
EOF
cat > /etc/systemd/system/darwin-admin.service <<'EOF'
[Unit]
Description=Darwin Streaming Admin Server
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/sbin/streamingadminserver.pl
Restart=on-failure
RestartSec=5
User=root
Group=root
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now darwin-streaming darwin-admin
| 參數 | 建議值 | 說明 |
|---|---|---|
| max_connections | 2000 | 最大並發連線,依記憶體調整 |
| max_bandwidth | 0 | 0=不限制,或設定 bps(如 100000000=100Mbps) |
| authentication_type | digest | digest/basic/qtss,建議 digest |
| enable_rtsp | true | 啟用 RTSP 協議 |
| enable_http_streaming | true | 啟用 HTTP 串流(適配部分播放器) |
| rtp_port_range | 60000-61000 | RTP/UDP 埠範圍,防火牆需放行 |
| media_folder | /data/media | 媒體根目錄,建議掛載獨立卷 |
# firewalld
firewall-cmd --permanent --add-port=554/tcp --add-port=1220/tcp --add-port=8000/tcp --add-port=60000-61000/udp
firewall-cmd --reload
# SELinux(若啟用)
semanage port -a -t stream_port_t -p tcp 554
semanage port -a -t stream_port_t -p tcp 1220
semanage port -a -t stream_port_t -p udp 60000-61000
setsebool -P httpd_can_network_connect 1
# 使用 FFmpeg 將 MP4 轉為 QuickTime 相容格式(H.264 + AAC)
ffmpeg -i input.mp4 -c:v libx264 -profile:v baseline -level 3.0 -c:a aac -b:a 128k -movflags +faststart /usr/local/movies/test.mov
rtsp://server_ip:554/test.mov瀏覽器訪問 https://server_ip:1220,登入後查看:
Darwin Streaming Server 雖非主流商業選擇,但在蘋果生態相容、輕量級部署、開源可控場景下仍具獨特價值。掌握其部署調優,可為特定業務提供低成本、高穩定的串流基礎設施。