Post on 05-Jan-2016
1
Evaluating Performance of a Video Streaming Application using vlcj
CS529 Project 3April 18th, 2013
Mark Hawthornemhawthorne@wpi.edu
2
• Project Problem & Goals• Motivation & Importance• Solution• Background & Definitions• Implementation• Experimental Design• Results• Conclusions & Future Work
Agenda
3
• Develop a Video Streaming Application
• Goals• Allow for broadcasting multiple
streams
• Allow for multiple clients to view the same broadcast
• Allow for clients to view multiple broadcasts simultaneously
• Explore multicast streaming
• Leverage existing libraries
Project Problem & Goals
4
• Video streaming is become more and more ubiquitous • Desktop Applications - Skype
• Webpages - YouTube, Netflix
• Devices - Smartphones, Game Consoles
• Developers need to be able to leverage existing libraries for video streaming• Ex - HTML5 supports video playback
Motivation & Importance
5
• Choose a video streaming library• Develop server and client
applications• Written in Java using Swing for GUIs
• Provide user controls and video playback
• Provide data recording of test metrics
• Evaluate performance of streaming• Vary network protocols and video
quality
• Focus on metrics provided by the library
• Minimal user feedback
Solution
6
• VideoLAN Client (VLC) Media Player• Open source, light-weight, minimalist
• Supports most audio and video codecs
• vlcj• Library of VLC Java bindings
• Caprica Software Limited
• Java Native Access (JNA)• Simplified version of JNI
• Java Native Interface (JNI)• Allows Java programs to call methods written in
other languages (C/C++, Assembly)
Background & Definitions
7
Implementation - Server
8
Implementation - Client
9
Experimental Design
HTTP, RTP, RTSP
1 2(Ethernet LAN)
10
• Frame rate consistent• Audio stayed synchronized• No delay jitter• Some cases of graphical artifacts
• Typically at beginning of stream
• Likely before the buffer is maintained
• RTSP had noticeable struggles here
• Noticeable 2-3 second delay between server and client• Not ideal for interactive streaming use
Results – Quality Measures
11
A: If the protocol is changed, performance will be maintained.
Results – Hypothesis A
0 15 30 45 60 75 90 105 120 135 1500
20000000
40000000
60000000
80000000
100000000
120000000
140000000
160000000
180000000
200000000
Data Read vs Time for Stream ClientHangover-RTP-320p Hangover-RTP-480p Hangover-RTP-720p Hangover-RTP-1080pHangover-RTSP-320p Hangover-RTSP-480p Hangover-RTSP-720pHangover-RTSP-1080p Hangover-HTTP-320p Hangover-HTTP-480pHangover-HTTP-720p Hangover-HTTP-1080p Ironman-RTP-320p Ironman-RTP-480pIronman-RTP-720p Ironman-RTP-1080p Ironman-RTSP-320p Ironman-RTSP-480pIronman-RTSP-720p Ironman-RTSP-1080p Ironman-HTTP-320p Ironman-HTTP-480pIronman-HTTP-720p Ironman-HTTP-1080p Gatsby-RTP-320p Gatsby-RTP-480p
Time (Seconds)
Dat
a R
ead
(B
ytes
)
1080p
720p
480p
320p
12
B: If higher resolution video is used, there will be a decrease in performance
Results – Hypothesis B
320p 480p 720p 1080p0.98
0.985
0.99
0.995
1
1.005
1.01
1.015
1.02
1.025
Comparison of Resolutions against Ratio of Stream Sizes
Size Streamed/Original SizeSize Viewed/Size StreamedSize Viewed/Original Size
Resolution
Rat
io o
f D
ata
Siz
es (
Byt
e/B
yte)
13
• VLC is a robust media player• vlcj is an easy to use library to leverage
the capabilities of VLC• Documentation could use some work
• Updates to VLC may break functionality
• Future Work• Impact of delay for interactive use
• Portability to devices other than PC
• Manipulation of network conditions via netbox
Conclusions & Future Work
14
Questions?