Skip to content

LMinJae/rtmp-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The implementation of RTMP Protocol in Rust

For practice

  • Reading specifications
  • Writing article
  • Rust Programing language
  • Understanding streaming infrastructure

Why Rust?

  • The primary reason is, reusability.

Most of the programming languages that used in server-side offer native interfaces. And, Rust support wasm. So, i thought writing protocol processing library in rust can be reusing in next steps.

Why RTMP?

RTMP is traditional, but widely using in these days.

  • WebRTC is fast, but it was too big project to implement from scratch.(For streaming, need to implement SDP, ICE, RTCP, RTP, etc..)

  • WebCodecs provide video/audio buffer directly. but, for understanding infrastructure, design from scratch without traditional technology is weired.

  • SRT provide streaming. but, as i understand, it just 1:1 MPEG2-TS transport. Don't provide streaming specific functions.

  • RTMP is designed partialy reusable.

an application-level protocol designed for multiplexing and packetizing multimedia transport streams (such as audio, video, and interactive content) over a suitable transport protocol (such as TCP).

While RTMP was designed to work with the RTMP Chunk Stream, it can send the messages using any other transport protocol.

And, Full version of RTMP specification is not exist... It means much things can be writing...(Practice writing article)

TODO

  • Accept incoming RTMP live stream
    • Handshake: Basic (5.2. Handshake)
    • Define RTMP context
    • Chunking (5.3. Chunking)
    • Protocol Control Message (5.4. Protocol Control Messages)
    • RTMP Message (6. RTMP Message Formats)
    • AMF0
    • RTMP Command Messages (7. RTMP Command Messages)
    • Undocumented specifications(ex. FCPublish, releaseStream, etc.)

References

About

RTMP Implementation in Rust

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages