What is Secure Multimedia Library (SML).

Secure Multimedia Library (SML) is a C language API that enables the development of a secure multimedia streaming application, both suitable for the conventional client-server architecture or a proxy-cooperated architecture.


Related Paper.

A Case of Multi-Key Secure Video Proxy: Theory, Design and Implementation
S. F. Yeung, John C. S. Lui, David K. Y. Yau
Proceeding of the ACM Multimedia Conference 2002


Source Code and Demo Programs.

The package contains all the source code of the library and a few demo programs. However, the library is still in its development phase, make files and compilation instruction are not available yet. If you want to try to compile the files, you need to obtain the GNU Multiple Precision Library (GNU).

download the source code package


Example of Encrypted Video and Audio Clips

SML uses Encryption Configuration Parameters to control the encryption quality against the encryption efficiency. The following video and audio clips illustrate the visual and acoustical encryption quality when varying the ECP values.

Note: If you view the encrypted MPEG-1 video clips without using the decryption key, you may crash your media player or your system when you are using the Window O.S (yes, we call this a feature, not a bug!!!). In order to examine the visual quality of the encrypted MPEG-1 video clips without the decryption key AND not to crash your OS, please download the video clips to your local storage and use mplayer on Linux for the playback. Of course, with the decryption key, you can safely playback the multimedia file on Window or Linux system!!!!

Original Video Clips:

MPEG-1 Video | QuickTime Video | Frame dumps

Encrypted Video Clips:

N=1 N=2 N=5 N=10
P=60/1400 MPEG-1 ( frames | movie )
QuickTime ( frames | movie )
MPEG-1 ( frames | movie )
QuickTime ( frames | movie )
MPEG-1 ( frames | movie )
QuickTime ( frames | movie )
MPEG-1 ( frames | movie )
QuickTime ( frames | movie )
P=120/1400 MPEG-1 ( frames | movie )
QuickTime ( frames | movie )
MPEG-1 ( frames | movie )
QuickTime ( frames | movie )
MPEG-1 ( frames | movie )
QuickTime ( frames | movie )
MPEG-1 ( frames | movie )
QuickTime ( frames | movie )
P=180/1400 MPEG-1 ( frames | movie )
QuickTime ( frames | movie)
MPEG-1 ( frames | movie )
QuickTime ( frames | movie)
MPEG-1 ( frames | movie )
QuickTime ( frames | movie)
MPEG-1 ( frames | movie )
QuickTime ( frames | movie)
P=240/1400 MPEG-1 ( frames | movie )
QuickTime ( frames | movie)
MPEG-1 ( frames | movie )
QuickTime ( frames | movie)
MPEG-1 ( frames | movie )
QuickTime ( frames | movie)
MPEG-1 ( frames | movie )
QuickTime ( frames | movie)
P=300/1400 MPEG-1 ( frames | movie )
QuickTime ( frames | movie)
MPEG-1 ( frames | movie )
QuickTime ( frames | movie)
MPEG-1 ( frames | movie )
QuickTime ( frames | movie)
MPEG-1 ( frames | movie )
QuickTime ( frames | movie)
P=360/1400 MPEG-1 ( frames | movie )
QuickTime ( frames | movie)
MPEG-1 ( frames | movie )
QuickTime ( frames | movie)
MPEG-1 ( frames | movie )
QuickTime ( frames | movie)
MPEG-1 ( frames | movie )
QuickTime ( frames | movie)

Original Audio Clip:

MP3

Encrypted Audio Clips:

P = 120/1400 P = 60/1400
I = 1 song_ID0_ECP1_120_1.mp3 song_ID0_ECP1_60_1.mp3
I = 2 song_ID0_ECP2_120_1.mp3 song_ID0_ECP2_60_1.mp3
I = 5 song_ID0_ECP5_120_1.mp3 song_ID0_ECP5_60_1.mp3
I = 10 song_ID0_ECP10_120_1.mp3 song_ID0_ECP10_60_1.mp3