TRANSCODE
Convert and process media from any source — files, RTSP streams, HTTP/HTTPS streams — to any format. Powered by FFmpeg. RTSP is a first-class input source.
From RTSP stream (IP/surveillance camera)
(* Record IP camera stream to mounted storage *)
TRANSCODE "rtsp://192.168.1.100/stream" AS "mp4" INTO "/mounted/recordings/cam1.mp4" SET ?path
AFTER EMIT ?path
From public stream URL
(* Record live stream to storage *)
TRANSCODE "https://stream.example.com/live/feed.m3u8" AS "mp4" INTO "/mounted/recordings/live.mp4" SET ?path
From file — format conversion
DOWNLOAD "https://example.com/video.mov" INTO "/root/tmp.mov"
AFTER TRANSCODE "/root/tmp.mov" AS "mp4" INTO "/mounted/videos/converted.mp4" SET ?path
AFTER EMIT ?path
Inside DIRECTIVE — uses target machine's FFmpeg
(* IP camera only accessible from local network — transcode on that machine *)
DIRECTIVE "home-server" OPEN NEST
TRANSCODE "rtsp://192.168.1.100/cam1" AS "mp4" INTO "/mounted/recordings/cam1.mp4"
CLOSE NEST
(* Save to target machine's local storage instead *)
DIRECTIVE "home-server" OPEN NEST
TRANSCODE "rtsp://192.168.1.100/cam1" AS "mp4" INTO "C:/recordings/cam1.mp4"
CLOSE NEST
With TUNNEL — stream directly to a peer
NEW TUNNEL SET ?room
AFTER DIRECTIVE "home-server" OPEN NEST
TRANSCODE "rtsp://192.168.1.100/cam1" INTO ?room(sender_url)
CLOSE NEST
AFTER REDIRECT ?room(receiver_url)
With NEW VIDEO BRIDGE — live camera to browser
(* Allocate bridge room — outside DIRECTIVE *)
NEW VIDEO BRIDGE 2 PEERS SET ?room
(* oql-client on home-server captures RTSP and pushes to bridge *)
AFTER DIRECTIVE "home-server" OPEN NEST
TRANSCODE "rtsp://192.168.1.100/cam1" INTO ?room(peers)(0)(join_url)
CLOSE NEST
(* Visitor's browser joins as receiver *)
AFTER REDIRECT ?room(peers)(1)(join_url)
Accepted input sources
| Source | Example |
|---|---|
| Virtual filesystem | "/root/video.mp4" "/mounted/media/clip.mov" |
| Native path (inside DIRECTIVE) | "C:/recordings/feed.mp4" "/home/user/video.mkv" |
| RTSP stream | "rtsp://192.168.1.100/stream" |
| RTSPS stream | "rtsps://192.168.1.100/stream" |
| HTTP/HTTPS stream | "https://stream.example.com/live.m3u8" |
| TUNNEL room | ?room(sender_url) |
| Bridge room peer | ?room(peers)(0)(join_url) |
Output formats
All formats supported by FFmpeg: mp4 mov avi mkv webm flv wmv m4v 3gp mp3 wav ogg flac aac m4a and more.