evaluating performance of a video streaming application using vlcj cs529 project 3 april 18 th, 2013...

14
Evaluating Performance of a Video Streaming Application using vlcj CS529 Project 3 April 18 th , 2013 1 Mark Hawthorne [email protected]

Upload: lora-cole

Post on 05-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Evaluating Performance of a Video Streaming Application using vlcj CS529 Project 3 April 18 th, 2013 1 Mark Hawthorne mhawthorne@wpi.edu

1

Evaluating Performance of a Video Streaming Application using vlcj

CS529 Project 3April 18th, 2013

Mark [email protected]

Page 2: Evaluating Performance of a Video Streaming Application using vlcj CS529 Project 3 April 18 th, 2013 1 Mark Hawthorne mhawthorne@wpi.edu

2

• Project Problem & Goals• Motivation & Importance• Solution• Background & Definitions• Implementation• Experimental Design• Results• Conclusions & Future Work

Agenda

Page 3: Evaluating Performance of a Video Streaming Application using vlcj CS529 Project 3 April 18 th, 2013 1 Mark Hawthorne mhawthorne@wpi.edu

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

Page 4: Evaluating Performance of a Video Streaming Application using vlcj CS529 Project 3 April 18 th, 2013 1 Mark Hawthorne mhawthorne@wpi.edu

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

Page 5: Evaluating Performance of a Video Streaming Application using vlcj CS529 Project 3 April 18 th, 2013 1 Mark Hawthorne mhawthorne@wpi.edu

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

Page 6: Evaluating Performance of a Video Streaming Application using vlcj CS529 Project 3 April 18 th, 2013 1 Mark Hawthorne mhawthorne@wpi.edu

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

Page 7: Evaluating Performance of a Video Streaming Application using vlcj CS529 Project 3 April 18 th, 2013 1 Mark Hawthorne mhawthorne@wpi.edu

7

Implementation - Server

Page 8: Evaluating Performance of a Video Streaming Application using vlcj CS529 Project 3 April 18 th, 2013 1 Mark Hawthorne mhawthorne@wpi.edu

8

Implementation - Client

Page 9: Evaluating Performance of a Video Streaming Application using vlcj CS529 Project 3 April 18 th, 2013 1 Mark Hawthorne mhawthorne@wpi.edu

9

Experimental Design

HTTP, RTP, RTSP

1 2(Ethernet LAN)

Page 10: Evaluating Performance of a Video Streaming Application using vlcj CS529 Project 3 April 18 th, 2013 1 Mark Hawthorne mhawthorne@wpi.edu

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

Page 11: Evaluating Performance of a Video Streaming Application using vlcj CS529 Project 3 April 18 th, 2013 1 Mark Hawthorne mhawthorne@wpi.edu

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

Page 12: Evaluating Performance of a Video Streaming Application using vlcj CS529 Project 3 April 18 th, 2013 1 Mark Hawthorne mhawthorne@wpi.edu

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)

Page 13: Evaluating Performance of a Video Streaming Application using vlcj CS529 Project 3 April 18 th, 2013 1 Mark Hawthorne mhawthorne@wpi.edu

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

Page 14: Evaluating Performance of a Video Streaming Application using vlcj CS529 Project 3 April 18 th, 2013 1 Mark Hawthorne mhawthorne@wpi.edu

14

Questions?