Open Standards

MPEG-4 over SCTP: Building Open Source on Open Standards

Multimedia Device

Cisco contributed to SCTP as an open standard (described by RFC 2960) and as open source, with a kernel implementation of SCTP for the FreeBSD, NetBSD and OpenBSD. In 2002, Cisco's Marco Molteni built on SCTP by developing MPEG-4 over SCTP as open source, modifying the www.mpeg4ip.net media player and the Apple Darwin Streaming server.

MPEG-4 describes how to encode a video in 3 different frames, 'I', 'P' and 'B', where the 'P' and 'B' frames depend on the 'I' frame. If an 'I' frame is lost when streaming, all subsequent frames become useless until the next 'I' frame appears.

Molteni and his colleague took an MPEG-4 streaming server, replaced the underlying transport protocol with Partial-Reliable Stream Control Transmission Protocol (PR-SCTP), and selected the retransmission based on the frame type: TCP-like reliability for the 'I' frames, and UDP-like best-effort for all the other frames. They replaced the underlying transport protocol in an MPEG-4 player with PR-SCTP. Molteni noted, "We had to fight our way among crashes and codec vagaries."

Molteni found that under congestion scenarios, there is improved video stream playout quality, due to the increased number of 'I'-frames that PR-SCTP can salvage from congestion.

Although there were a few existing works describing simulation scenarios for MPEG-4 over PR-SCTP, Molteni thinks his work is the first implementation of this protocol, and may still be the only one. He noted that working on SCTP over MPEG-4 allowed him to develop software using open source tools and operating systems. He recounts, "We had to juggle with bleeding edge kernel code, design a new encapsulation protocol, and endure many late-staying nights, fighting the conference deadline for the paper."