2 ms·
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
by gzread 7mo ago
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.