rtsplink
v1.0.0
Published
Cross-platform RTSP stream diagnostic prober, IP camera URL builder, and low-latency player launcher for video engineers
Maintainers
Readme
rtsplink
Universal developer toolkit for RTSP streaming, live video diagnostics, IP camera URL generation, and low-latency playback.
Developed by the team at RTSPLink.com.
⚡ Features
- 🔍 RTSP Stream Prober: Diagnose TCP port connectivity, ping latency, and negotiate RTSP handshakes (OPTIONS, DESCRIBE, SETUP).
- 🔒 Auth Detector: Detects 401 Unauthorized challenges and identifies whether the camera requires Basic or Digest authentication.
- 📹 Track & Codec Inspection: Parses SDP payloads to extract video codecs (H.264, H.265/HEVC), audio channels (AAC, PCM, OPUS), and clock rates.
- 📷 25+ IP Camera URL Builder: Generates verified RTSP URLs for Hikvision, Dahua, Reolink, Axis, Tapo, Amcrest, Uniview, Annke, and more.
- 🎬 Low-Latency Player Launcher: Formats and launches VLC, FFplay, or MPV with optimal zero-lag TCP buffer flags.
- 🌐 Free Test Stream Dispenser: Access instant 24/7 public RTSP test feeds without hardware.
🚀 Quick Start (CLI)
Run immediately with npx without installing:
# Probe any RTSP stream endpoint
npx rtsplink probe rtsp://rtsp.rtsplink.com/live/test
# Build an IP camera stream URL
npx rtsplink camera --brand hikvision --ip 192.168.1.64 --user admin --pass secret123
# Output in JSON format for automation / CI
npx rtsplink probe rtsp://192.168.1.50:554/stream --json
# Launch low-latency player in VLC with optimal flags
npx rtsplink play rtsp://rtsp.rtsplink.com/live/test --player vlc
# Get a free public test stream endpoint for scripts
npx rtsplink get-stream📦 Programmatic SDK Usage
Install in your project:
npm install rtsplink1. Probing a Live RTSP Stream
import { probeRtspStream } from 'rtsplink';
const result = await probeRtspStream('rtsp://rtsp.rtsplink.com/live/test');
console.log('Reachable:', result.reachable);
console.log('Latency:', result.connectionTimeMs, 'ms');
console.log('Status:', result.statusCode);
if (result.requiresAuth) {
console.log(`Requires ${result.authType} authentication on realm "${result.authRealm}"`);
}
for (const track of result.tracks) {
console.log(`Track: ${track.mediaType} (${track.codec})`);
}2. Constructing Camera URLs
import { buildCameraUrl } from 'rtsplink';
const { url } = buildCameraUrl({
brand: 'dahua',
ip: '192.168.1.100',
username: 'admin',
password: 'myPassword',
channel: 1,
substream: false,
});
console.log(url);
// Output: rtsp://admin:[email protected]/cam/realmonitor?channel=1&subtype=0📄 License
MIT © RTSPLink
