Bye Bye RTMP
jandeboevrie
15 points
4 comments
March 21, 2026
Related Discussions
Found 5 related stories in 48.2ms across 3,471 title embeddings via pgvector HNSW
- I built an ephemeral P2P chat with WebRTC, without servers zRinexD · 15 pts · March 16, 2026 · 43% similar
- FFmpeg-over-IP – Connect to remote FFmpeg servers steelbrain · 157 pts · March 10, 2026 · 42% similar
- H.264 Streaming Fees: What Changed, Who's Affected, and What It Means phantomathkg · 74 pts · April 03, 2026 · 42% similar
- Linux 7.1 to Retire UDP-Lite – Allows for Better Performance with Cleansed Code doener · 42 pts · March 16, 2026 · 42% similar
- Goodbye to Sora mikeocool · 569 pts · March 24, 2026 · 41% similar
Discussion Highlights (3 comments)
philipwhiuk
I'm not sure I understand the logic behind not bumping the major version.
Sean-Der
The ecosystem around RTMP is bonkers. RTMP has SO many users for video (Twitch, YouTube etc...) yet you have librtmp which has so many forks. OBS has its own version in-tree.... Then at the same time you have people trying to add extensions to RTMP still! RTMP has held back the use cases I have cared about since ~2015 so I am excited to see people embrace other options.
gzread
I implemented RTMP recently. It's not a file transfer protocol like HTTP/FTP/Gopher. It's a pile of hacks designed for transferring a live stream between Adobe Flash Player and a compatible server (in either direction). The newest supported codec is H264 and AAC. The message framing doesn't make sense and there's no well-specified order of messages to handshake. The codec initialization data is sent as the first frame, and every frame has a one-byte boolean flag to indicate whether it's an initialization fragment or an actual frame. There's no way to know what codec is used until you start getting frames. There's a fixed set of codecs available, H264 being the only remotely modern one; a separate group of people wrote "extended RTMP" where a certain codec ID indicates an extended header with a 4-character codec ID (in every frame). I ended up just coding to the OBS source code. Good riddance to this pile of garbage in as many places as possible, and I don't see what it was doing in curl to start with.