Application and Desktop Sharing. Omer Boyaci November 1, 2007

Similar documents
RTP Payload format for Application and Desktop Sharing

BASS Application Sharing System

Networking Applications

Chapter 28. Multimedia

15: OS Scheduling and Buffering

Lesson 5: Multimedia on the Web

Streaming (Multi)media

4 rd class Department of Network College of IT- University of Babylon

Lesson 5: Multimedia on the Web

DISTRIBUTED NETWORK COMMUNICATION FOR AN OLFACTORY ROBOT ABSTRACT

How to achieve low latency audio/video streaming over IP network?

CS519: Computer Networks. Lecture 5, Part 1: Mar 3, 2004 Transport: UDP/TCP demux and flow control / sequencing

Project Title: Design and Implementation of IPTV System Project Supervisor: Dr. Khaled Fouad Elsayed

Outline. QoS routing in ad-hoc networks. Real-time traffic support. Classification of QoS approaches. QoS design choices

ITEC310 Computer Networks II

Multimedia Collaboration and Application Sharing. Omer Boyaci June 5, 2008

Streaming Video over the Internet. Dr. Dapeng Wu University of Florida Department of Electrical and Computer Engineering

CSE 461 Module 10. Introduction to the Transport Layer

Multimedia Networking

Multimedia Networking

CS 457 Multimedia Applications. Fall 2014

RealMedia Streaming Performance on an IEEE b Wireless LAN

ID 730L: Getting Started with Multimedia Programming on Linux on SH7724

Stonelaw High School. Computing Science. BGE - Computer Systems

Performance and Scalability of WebRTC

SSL Encryption Secure network connections using data encryption between the camera and the network

Digital Media Capabilities of the Modero X Series Touch Panels

Multimedia Networking ECE 599

OSI Layer OSI Name Units Implementation Description 7 Application Data PCs Network services such as file, print,

OTOY Client API. The OTOY Client is launched from a URL, and supports a number of parameters to support different behaviour.

Tema 0: Transmisión de Datos Multimedia

SRG-300SE/301SE/201SE

ETSF10 Internet Protocols Transport Layer Protocols

Kommunikationssysteme [KS]

Lecture 2 Communication services The Trasport Layer. Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it

Android App for Smooth Multimedia Recording Service via the Frame Buffer

Popular protocols for serving media

Introduction to LAN/WAN. Application Layer 4

Multimedia Applications. Internet Technologies and Applications

Recommended Readings

Digital Asset Management 5. Streaming multimedia

NFD30 Network Dome Camera MPEG4 + Motion-JPEG Dual Mode, PoE, Audio, 300k CMOS, mm vari-focal lens Part No.:

W I S S E N T E C H N I K L E I D E N S C H A F T

RTP Protocol Transport of H.264 Video and MPEG I/II Layer 3 Audio

Streaming video. Video on internet. Streaming video, live or on demand (VOD)

RTP Protocol Transport of H.264 Video and AAC Audio

Unit 2 Digital Information. Chapter 1 Study Guide

Fundamentals of Video Compression. Video Compression

Remote Health Monitoring for an Embedded System

precise rules that govern communication between two parties TCP/IP: the basic Internet protocols IP: Internet protocol (bottom level)

CS 218 F Nov 3 lecture: Streaming video/audio Adaptive encoding (eg, layered encoding) TCP friendliness. References:

M4.2-R4: INTRODUCTION TO MULTIMEDIA

A Multimedia Streaming Server/Client Framework for DM64x

Data Representation and Networking

USER MANUAL. VIA IT Deployment Guide for Firmware 2.3 MODEL: P/N: Rev 7.

CSCD 433/533 Advanced Networks Fall Lecture 14 RTSP and Transport Protocols/ RTP

Configuring RTP Header Compression

NLVMUG 16 maart Display protocols in Horizon

The Video Broadcast. Blackboard Support Team V 2.0

Real-Time Protocol (RTP)

LANCOM Techpaper IEEE n Indoor Performance

IO [io] MAYAH. IO [io] Audio Video Codec Systems

EzyCast Mobile Mobile video, made simple.

521262S Computer Networks 2 (fall 2007) Laboratory exercise #4: Multimedia, QoS and testing

Mohammad Hossein Manshaei 1393

Why Study Multimedia? Operating Systems. Multimedia Resource Requirements. Continuous Media. Influences on Quality. An End-To-End Problem

Basic Architecture of H.323 C. Schlatter,

vsolution Cynap Pure Network Integration

Structured Streams: A New Transport Abstraction

Configuring RTP Header Compression

NSC15-WG Network Camera Motion-JPEG + MPEG4, Day/Night, Audio, 300k CMOS, 54 Mbps Wireless g Part No.:

Video compression software

CS 640: Introduction to Computer Networks. Today s Lecture. Page 1

MITIGATING THE EFFECT OF PACKET LOSSES ON REAL-TIME VIDEO STREAMING USING PSNR AS VIDEO QUALITY ASSESSMENT METRIC ABSTRACT

Transport protocols Introduction

Using the VQE-S Application Monitoring Tool

MISB EG Motion Imagery Standards Board Engineering Guideline. 24 April Delivery of Low Bandwidth Motion Imagery. 1 Scope.

Operating System Support for Multimedia. Slides courtesy of Tay Vaughan Making Multimedia Work

Agenda. What are we looking at? Introduction. Aim of the project. IP Routing

Lightworks Import Won't Recognize my FLV Files Posted by Blue11msu - 17 Feb :41

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

Technical Q&A. Questions & Answers. Last updated: February 28th, 2003 Rev: 1.1

TS Manipulator Requirement Specifications & High Level Design Document. George Mason University

Introduction. Application Performance in the QLinux Multimedia Operating System. Solution: QLinux. Introduction. Outline. QLinux Design Principles

Open Network Laboratory

DCCP (Datagram Congestion Control Protocol)

CSC 401 Data and Computer Communications Networks

A MULTIPOINT VIDEOCONFERENCE RECEIVER BASED ON MPEG-4 OBJECT VIDEO. Chih-Kai Chien, Chen-Yu Tsai, and David W. Lin

Turn On Windows Firewall Manually Windows 7 Remote Desktop Connection

CS 260: Seminar in Computer Science: Multimedia Networking

Ch 4: Multimedia. Fig.4.1 Internet Audio/Video

Week 7: Traffic Models and QoS

Simply Good Pictures Engelmann Media GmbH

Turn On Windows Firewall Manually Windows 7 Remote Desktop Through

CS 4390 Computer Networks. Transport Services and Protocols

Lecture 19 Media Formats

I/O. CS 416: Operating Systems Design Department of Computer Science Rutgers University

CT506 LANforge-FIRE VoIP Call Generator

Multimedia Storage Servers

OPERATING SYSTEMS & Network OVERVIEW. 1: OS & Network Overview

Transcription:

Application and Desktop Sharing Omer Boyaci November 1, 2007

Overview Introduction Demo Architecture Challenges Features Conclusion

Application Sharing Models Application specific + Efficient - Participants need application - Application has to be modified Generic - Inefficient (sometimes) + Participants don't need application + All applications are supported

Application Sharing Models Application specific + Efficient - Participants need application - Application has to be modified Generic - Inefficient (sometimes) + Participants don't need application + All applications are supported

Overview Introduction Demo Architecture Challenges Features Conclusion

Application Sharing Sharing an application with multiple users There is only one copy of the application Participants do not need application itself Briefly, participants receive screen updates send keyboard and mouse events Desktop sharing is also supported.

Screenshot

Screenshot (2)

Screenshot (Overlapped Windows) 1 2 4 3

Screenshot (Multicast App. Tool) 1 2 4 3 4

Screenshot (Ultra VNC) 1 2 4 3 4

Screenshot (App & Desk Sharing) 1 2 4

Supported Platforms/OS Windows *nix Mac OS X * is Java based. Server + -+ - * + + +

Overview Introduction Demo Architecture Challenges Features Conclusion

Demo Demo

Overview Introduction Demo Architecture Challenges Features Conclusion

System Architecture /Server Software Architecture

System Architecture /Server Software Architecture Screen Updates

System Architecture /Server Software Architecture Keyboard Mouse Events

(Viewer) Architecture can Connect to server Wait for incoming connections supports TCP UDP (+Multicast)

(Viewer) Architecture receives these commands Open new window Window size changed Pixel update Close window sends BFCP (Binary Floor Control Protocol) commands Keyboard and mouse events

Windows Server Architecture Server Main Thread User space 0 Kernel space X 300,500 Y 200,600 Window coordinates Mirror Driver

Windows Server Architecture Server Main Thread User space Kernel space X 320,340 Y 100,200 X 320,340 Y 100,200 X 320,340 Y 100,200 X 320,340 Y 100,200 2 X 300,500 Y 200,600 Window coordinates Mirror Driver

Windows Server Architecture Server Main Thread User space Kernel space X 320,340 Y 100,200 X 320,340 Y 100,200 X 320,340 Y 100,200 2 X 300,500 Y 200,600 Window coordinates Mirror Driver

Windows Server Architecture X 3 2 0,3 4 0 X 3 2 0,3 4 0 X 3 2 0,3 4 0 Y 4 0 0,5 0 0 Y 4 0 0,5 0 0 Y 4 0 0,5 0 0 t im e s t a m p t i m e s t a m p t im e s t a m p P NG PN G T h r e a d -1 T h r e a d -2 Server Main Thread T h r e a d -3 User space K e rn e l s p a c e X 320,340 Y 400,500 X 4 2 0,4 4 0 Y 2 0 0,6 0 0 X 320,340 Y 450,550 2 W i n d o w coordinates

Overview Introduction Demo Architecture Challenges Features Conclusion

Challenges Different client bandwidths/speeds Late Joiner The effects of packet loss Reliable multicast

Multimedia Support (Movies)

Multimedia Support (Movies) Our system uses to compress and transmit the region updates is lossless and effective for computer generated images but ineffective for real world captures like pictures or movies JPG is more suitable for photographic images However, JPG is lossy and not effective for computer generated images (text, line, shapes,...) Our system should use both

Multimedia Support (Movies) Composite image comparing JPEG and : notice artifacts in JPEG versus solid background.

Multimedia Support ( vs JPG) Image Size Size x 360x150 162K 150 140 130 120 Size 4x 720x300 648K 110 100 90 JPG 80 70 60 50 40 30 20 10 0 1:4 1:20 Size x 1:5 1:30 Size 4x

Multimedia Support ( vs JPG) FPS KB/s 22.5 1100 20 1000 900 17.5 800 15 700 JPG 12.5 JPG 600 500 10 400 7.5 300 5 200 2.5 100 0 0 Size x Size 4x Size x Ethernet (60Mb/s) Size 4x

Multimedia Support ( vs JPG) KB/s FPS 22.5 400 20 350 17.5 300 15 250 JPG 12.5 JPG 200 10 150 7.5 100 5 50 2.5 0 Size x Size 4x 0 Size x Wireless (4Mb/s) Size 4x

/JPG Detection Algorithm -1,0,1 Region> 40,000px? coordinates Size counter YES Time Stamp New Region? YES Create a record & Start Checking NO Continue Checking NO Detected? YES Use Detected Format Region record

Sharing a Movie (Media Player)

Sharing a Movie File Capturing from the Frame Buffer is expensive. Instead Transcode the movie on the fly to JPGs FFmpeg (subproject of mplayer) FFmpeg is a complete solution to record, convert and stream audio and video. It includes libavcodec, the leading audio/video codec library. FFmpeg is developed under Linux, but it can compiled under most operating systems, including Windows. FFmpeg-Java (subproject of FMJ) Java wrapper (JNA: Java Native Access)

Sharing a Movie (Our Method)

Sharing a Movie File Movie File (wmv,mpg,divx) decodenextframe() encodeframetojpg() FFmpeg-Java JPG images Java Streaming Server Java UDP/Multicast Java

Demo Demo Multimedia Support

Challenges Different client bandwidths/speeds Late Joiner The effects of packet loss Reliable multicast

Different Bandwidths/Speeds S e r v e r M a in T h r e a d 3Mbps Thread -3 X 3 2 0,3 4 0 X 3 2 0,3 4 0 Y 4 0 0,5 0 0 Y 4 0 0,5 0 0 ti m e s t a m p t i m e s t a m p PN G Thread -2 X 3 2 0,3 4 0 Y 4 0 0,5 0 0 t im e s t a m p 2Mbps X 3 2 0,3 4 0 X 3 2 0,3 4 0 X 3 2 0,3 4 0 Y 4 0 0,5 0 0 Y 4 0 0,5 0 0 Y 4 0 0,5 0 0 t im e s t a m p t i m e s t a m p t im e s t a m p PN G P NG PN G C lie n t Thread -1 1Mbps

Different Bandwidths/Speeds Possible Solutions Slowest one Average speed Fastest one

Different Bandwidths/Speeds Possible Solutions Slowest one Problem: Penalize everybody except the slowest Average speed Fastest one

Different Bandwidths/Speeds Possible Solutions Slowest one Problem: Penalize everybody except the slowest Average speed Possible solution Fastest one

Different Bandwidths/Speeds Possible Solutions Slowest one Problem: Penalize everybody except the slowest Average speed Possible solution (Can we do better?) Fastest one

Different Bandwidths/Speeds Possible Solutions Slowest one Problem: Penalize everybody except the slowest Average speed Possible solution (Can we do better?) Fastest one The best solution bandwidths are fully utilized

Different Bandwidths/Speeds Thread Main Server 3Mbps Thread -3 X 3 2 0,3 4 0 X 3 2 0,3 4 0 Y 4 0 0,5 0 0 Y 4 0 0,5 0 0 ti m e s t a m p t i m e s t a m p PN G Thread -2 X 3 2 0,3 4 0 Y 4 0 0,5 0 0 t im e s t a m p PN G 2Mbps X 3 2 0,3 4 0 X 3 2 0,3 4 0 X 3 2 0,3 4 0 Y 4 0 0,5 0 0 Y 4 0 0,5 0 0 Y 4 0 0,5 0 0 t im e s t a m p t i m e s t a m p t im e s t a m p PN G P NG PN G Thread -1 1Mbps

Different Bandwidths/Speeds Server Main Thread 2Mbps Thread -2 3Mbps Thread -3 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 timestamp timestamp timestamp timestamp timestamp timestamp Thread -1 1Mbps

Challenges Different client bandwidths/speeds Late Joiner The effects of packet loss Reliable multicast

Late Joiner Force server to generate full screen update

Late Joiner Force server to generate full screen update Problems Misbehaving clients can degrade performance If Join/Leave rate is high, too much burden on server Solution Generate full screen updates if really necessary Otherwise start the new client from last full screen update

Different Bandwidths/Speeds Thread -1 X 320,340 X 320,340 Y 400,500 Y 400,500 timestamp timestamp 1Mbps Server Main Thread 2Mbps Thread -2 3Mbps Thread -3 8Mbps Thread -4

Different Bandwidths/Speeds Thread -1 X 320,340 X 320,340 Y 400,500 Y 400,500 timestamp timestamp 1Mbps Server Main Thread 2Mbps Thread -2 FR I 3Mbps Thread -3 8Mbps Thread -4

Different Bandwidths/Speeds Server Main Thread 2Mbps Thread -2 3Mbps Thread -3 8Mbps Thread -4 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 timestamp timestamp timestamp timestamp timestamp timestamp timestamp Thread -1 1Mbps

Different Bandwidths/Speeds Server Main Thread 2Mbps Thread -2 3Mbps Thread -3 8Mbps Thread -4 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 timestamp timestamp timestamp timestamp timestamp timestamp timestamp Thread -1 1Mbps

Different Bandwidths/Speeds Server Main Thread 2Mbps Thread -2 3Mbps Thread -3 8Mbps Thread -4 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 timestamp timestamp timestamp timestamp timestamp timestamp timestamp timestamp Thread -1 1Mbps

Different Bandwidths/Speeds Server Main Thread 2Mbps Thread -2 3Mbps Thread -3 8Mbps Thread -4 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 timestamp timestamp timestamp timestamp timestamp timestamp timestamp timestamp Thread -1 1Mbps

Different Bandwidths/Speeds Server Main Thread 3Mbps Thread -3 8Mbps Thread -4 2Mbps Thread -5 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 timestamp timestamp timestamp timestamp timestamp timestamp timestamp timestamp Thread -2 2Mbps Thread -1 1Mbps

Different Bandwidths/Speeds Server Main Thread 3Mbps Thread -3 8Mbps Thread -4 2Mbps Thread -5 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 X 320,340 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 Y 400,500 timestamp timestamp timestamp timestamp timestamp timestamp timestamp timestamp Thread -2 2Mbps Thread -1 1Mbps

Challenges Different client bandwidths/speeds Late Joiner The effects of packet loss Reliable multicast

The effects of Packet Loss This problem applies to Multicast UDP The images can be large Regular desktop can be ~900KB ~600 Ethernet packets One packet loss wastes all image

The effects of Packet Loss Solution Small images Around ~1500 bytes Consist of a few scanlines Disadvantages Increased CPU usage (client&server) Lower compression ratio (%20 lower) Advantages One packet loss = no update for a few scanlines

The effects of Packet Loss

Challenges Different client bandwidths/speeds Late Joiner The effects of packet loss Reliable multicast

Reliable Multicast RTP Library stores last N rtp packets s send NACK for lost packets RTP Library resend the requested packets

The effects of Packet Loss

Overview Introduction Demo Architecture Challenges Features Conclusion

Recording s can record the whole/part session Anybody can play these files locally These files can be streamed to receivers via streaming server Streaming server supports multiple receivers Also late joiners

Listening waits for incoming connections It can display windows from multiple user Can be used for RGB cable replacement

Overview Introduction Demo Architecture Challenges Features Conclusion

Conclusion Application sharing allows users to share a single application with multiple participants. Participants don't need the application. It is not specific to a single application. Extra features like recording is added.

Thanks Questions?