SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
Multi Streaming
Player
Android Praktikum SS 2014
Let us introduce ourselves
Dario Banfi:
BSc in computer science, University of Torino
2nd semester, MSc in informatics, TUM
Guillaume Chabin:
Double degree student at TUM and Telecom ParisTech
MSc in management and information systems, Telecom
ParisTech, France
3rd semester, MSc in informatics, TUM
Agenda
I. Project presentation
II. Demo
III. Project Flow
IV. Application presentation
A. Application architecture
B. Application user interface
C. From the prototype to the next version
V. Conclusion
The Project
Team: The Partner
■ Weptun GmbH
■ 60 apps developed
■ Munich based
■ 17 Employees, founded in 2010
■ Christoph Hausmann
■ CTO
The main goal
■ Realize a low latency video stream player
■ Multi-streaming playback to see more than one video at
once
Starting point
■ Existing backend
■ Custom streaming server: Orchestrator
■ JSON protocol for signaling and communicating with the client
applications
■ Real-time Transport Protocol (RTP) streaming protocol
■ Existing iOS application
■ Developed internally by Weptun
Before explaining how it works,
demo time!
http://youtu.be/N2ppsCCCulw
The project flow
The project flow
■ Compared to our first roadmap:
■ Content roughly the same
■ Workload not really well estimated for some tasks
■ 2 major surprises:
■ First media library chosen not compatible for multi
streaming
■ First user interface conflicting with the stream player
Preliminary tasks
■ Getting in touch with the network
protocols and the backend
■ RTP, SRTP, RTSP…
■ Video Codecs
■ How Orchestrator works
■ Researching on how to implement RTP
streaming on android
■ Android native MediaPlayer
■ Third party library in Java
■ Third party library in C/C++ with the NDK
Finding the right tools
■ libVLC
■ Stable and well supported
■ Very active community
■ Used in iOS application
■ No multistream capabilities in Android !
Finding the right tools (ctd)
■ FFMpeg
■ Open-source
■ Good documentation
■ Complete, cross-platform multimedia framework
■ Base of many video players
■ Our player is based on IjkPlayer (ffplay wrapper)
■ Some modifications to enable RTP streaming
■ Different ffmpeg compilation
■ Enable network streams
■ Enable the correct codecs & containers
Single RTP stream video player
■ Based on android.widget.VideoView,
with our custom FFMpeg MediaPlayer
■ Customized MediaController in order to
show specific controls
■ Ratio options and audio tweaks
Multi-Streaming Video Player
■ Integrate the single RTP stream into a
multi-streaming view
■ Optimize display area to show more
content
■ Complexity of handling the multiple
connections
Improvement of the QoS
■ Latency issue
■ Important area for further improvements
○ RAM and CPU limiting factor for multi-streaming
○ HD fullscreen still laggy for low-end smartphones
■ A dynamic or manual selection of the stream
quality
■ Set the maximal number of streams per screen
■ Benchmark of several players versions
The final
application
Architecture: Video player
■ Player based on IjkPlayer
■ Core of the application
■ C player built on top of ffplay,
■ JNI to create a Android
MediaPlayer-like library
■ compile with additional flags to enable RTP
■ Architecture for ARMV7, X86 and ARM V5
■ Easy to change the player in our implementation
Architecture: Video player (ctd)
Player displayed in a custom
Video View
■ Extends the video
SurfaceView
■ Customized MediaController
overlay
■ Controls of the player + additional features
■ Error overlay
Architecture: Server interaction
■ Server called Orchestrator
■ Implemented by Weptun,
closed code
■ Stream to a client upon
requesting
■ Bandwidth depending on the
size and the definition,
■ 10 MBit/s for HD videos
■ 1.5 Mbit/s SD videos.
Architecture: Server interaction (ctd)
■ UDP Hole Punching
■ Dedicated port to the server
■ Port:address mapping in the NAT
table,
■ Used to stream the data directly to
the client
■ 2 external libraries:
■ GSON , unserialize the JSON
messages
■ Android Asynchronous Http Client ,
for the REST exchanges.
If the client is behind a NAT, the server isn’t able to address him the stream !
Architecture: Application logic
■ Apps contains 3 activities:
■ Settings screen
■ Full screen player
■ Multistreamer Viewer (Main activity)
■ Main activity
■ Streams contained in fragment
■ “Page” with up to 4 streams
■ Informative fragment (connection errors
/ no stream)
■ Replace fragment for new stream view
Architecture: Application logic
Several level to share information
within the application
■ Shared preference
■ Configuration and favorite streams
■ Bundle in fragment replacement
■ Server Data: Singleton Class storing
the main information
■ eg the list of available streams
User interface: The Drawer Layout
■ Create a sliding menu
■ Open / Close from the home button
■ Nice callbacks, dynamic controls
■ Contains all features for the user
■ Often used with expandable list
■ Adapter to populate the list
■ 2 levels lists with 2 levels click listeners
■ Nice solution to display several
Listviews in the same activity
A suited UI in every situation
From the prototype to the POC
Single video streaming player Mandatory
Multi-streaming application Mandatory
Improvement of the multi streaming latency Nice to have
Encryption through SRTP Optional
Overlay text while playing videos Optional
List of the target features:
From the POC to the real product
Several improvements possible
■ Performance:
■ Enabling hardware accelerated video playback.
■ Optimization on the allocation of data in the ffmpeg
implementation
■ Modify the user interface depending on the final
use:
■ Entertraining-oriented services
■ Video-surveillance systems
Conclusion
■ Good introduction to android
framework
■ Many skills acquired
■ Linux tools and Native code integration
through NDK
■ Video streaming protocols
■ Async tasks and threads
■ Introduction to the startup
environment
■ Final product with a good video
experience
Thank you for your attention
Credits
The following resources are under CC licences
■ Android robot : http://commons.wikimedia.org/wiki/File:Android_robot.svg
■ Video Player designed by Nikhil Dev from the Noun Project
■ Check List designed by Sabine Wollender from the Noun Project
■ Server designed by Konstantin Velichko from the Noun Project
■ Video Camera designed by Drew Ellis from the Noun Project
■ Soccer Field designed by Erik Wagner from the Noun Project
■ Check Box designed by Rémy Médard from the Noun Project
■ Present designed by Megan Sheehan from the Noun Project
■ Magnifying Glass designed by vijay sekhar from the Noun Project
■ http://img3.wikia.nocookie.net/__cb20130109141609/logopedia/images/6/6d/VLC-Media-Player-Metro-icon.
png
■ ffmpeg logo: https://www.ffmpeg.org/ffmpeg-logo.png
■ Mountain Climbing designed by Juan Pablo Bravo from the Noun Project
■ Economic Growth designed by Adriano Gazzellini from the Noun Project
■ Window designed by Marek Polakovic from the Noun Project
■ Loading designed by Mateo Zlatar from the Noun Project
■ Beaker designed by Rohan Gupta from the Noun Project

Contenu connexe

Tendances

Os Koziarsky
Os KoziarskyOs Koziarsky
Os Koziarskyoscon2007
 
Web APIs, the New Language Frontier
Web APIs, the New Language FrontierWeb APIs, the New Language Frontier
Web APIs, the New Language FrontierRestlet
 
Efficient development workflows with composer
Efficient development workflows with composerEfficient development workflows with composer
Efficient development workflows with composernuppla
 
Vagrant up-and-running
Vagrant up-and-runningVagrant up-and-running
Vagrant up-and-runningJoe Ferguson
 
YouTube Software - Video Editing
YouTube Software - Video EditingYouTube Software - Video Editing
YouTube Software - Video EditingMyspeedhub
 
Perforce's Rich Client Framework
Perforce's Rich Client Framework  Perforce's Rich Client Framework
Perforce's Rich Client Framework Perforce
 
Continuing Evolution of Perl: Highlights of ActivePerl 5.14
Continuing Evolution of Perl: Highlights of ActivePerl 5.14Continuing Evolution of Perl: Highlights of ActivePerl 5.14
Continuing Evolution of Perl: Highlights of ActivePerl 5.14ActiveState
 
Efficient development workflows with composer
Efficient development workflows with composerEfficient development workflows with composer
Efficient development workflows with composernuppla
 
Integração Contínua com PHPCI
Integração Contínua com PHPCIIntegração Contínua com PHPCI
Integração Contínua com PHPCIThiago Paes
 
Professional PHP: an open-source alternative for enterprise development [Kort...
Professional PHP: an open-source alternative for enterprise development [Kort...Professional PHP: an open-source alternative for enterprise development [Kort...
Professional PHP: an open-source alternative for enterprise development [Kort...Combell NV
 
Build & deploy PHP application (intro level)
Build & deploy PHP application (intro level)Build & deploy PHP application (intro level)
Build & deploy PHP application (intro level)Anton Babenko
 
How to Port Your .NET Applications to Linux Using Mono Tools for Visual Studio
How to Port Your .NET Applications to Linux Using Mono Tools for Visual StudioHow to Port Your .NET Applications to Linux Using Mono Tools for Visual Studio
How to Port Your .NET Applications to Linux Using Mono Tools for Visual StudioNovell
 
ASP.NET on zLinux: A New Workload
ASP.NET on zLinux: A New WorkloadASP.NET on zLinux: A New Workload
ASP.NET on zLinux: A New WorkloadNovell
 
Drupal 8 - Improving your development workflow
Drupal 8 - Improving your development workflowDrupal 8 - Improving your development workflow
Drupal 8 - Improving your development workflowvaluebound
 
Composer - The missing package manager for PHP
Composer - The missing package manager for PHPComposer - The missing package manager for PHP
Composer - The missing package manager for PHPTareq Hasan
 
Infrastructure as Data with Ansible
Infrastructure as Data with AnsibleInfrastructure as Data with Ansible
Infrastructure as Data with AnsibleCarlo Bonamico
 
Chromium: NaCl and Pepper API
Chromium: NaCl and Pepper APIChromium: NaCl and Pepper API
Chromium: NaCl and Pepper APIChang W. Doh
 
Practical PHP Deployment with Jenkins
Practical PHP Deployment with JenkinsPractical PHP Deployment with Jenkins
Practical PHP Deployment with JenkinsAdam Culp
 

Tendances (20)

Os Koziarsky
Os KoziarskyOs Koziarsky
Os Koziarsky
 
Web APIs, the New Language Frontier
Web APIs, the New Language FrontierWeb APIs, the New Language Frontier
Web APIs, the New Language Frontier
 
Efficient development workflows with composer
Efficient development workflows with composerEfficient development workflows with composer
Efficient development workflows with composer
 
Vagrant up-and-running
Vagrant up-and-runningVagrant up-and-running
Vagrant up-and-running
 
YouTube Software - Video Editing
YouTube Software - Video EditingYouTube Software - Video Editing
YouTube Software - Video Editing
 
Perforce's Rich Client Framework
Perforce's Rich Client Framework  Perforce's Rich Client Framework
Perforce's Rich Client Framework
 
Continuing Evolution of Perl: Highlights of ActivePerl 5.14
Continuing Evolution of Perl: Highlights of ActivePerl 5.14Continuing Evolution of Perl: Highlights of ActivePerl 5.14
Continuing Evolution of Perl: Highlights of ActivePerl 5.14
 
Titanium Desktop Intro
Titanium Desktop IntroTitanium Desktop Intro
Titanium Desktop Intro
 
Efficient development workflows with composer
Efficient development workflows with composerEfficient development workflows with composer
Efficient development workflows with composer
 
Integração Contínua com PHPCI
Integração Contínua com PHPCIIntegração Contínua com PHPCI
Integração Contínua com PHPCI
 
Professional PHP: an open-source alternative for enterprise development [Kort...
Professional PHP: an open-source alternative for enterprise development [Kort...Professional PHP: an open-source alternative for enterprise development [Kort...
Professional PHP: an open-source alternative for enterprise development [Kort...
 
Build & deploy PHP application (intro level)
Build & deploy PHP application (intro level)Build & deploy PHP application (intro level)
Build & deploy PHP application (intro level)
 
How to Port Your .NET Applications to Linux Using Mono Tools for Visual Studio
How to Port Your .NET Applications to Linux Using Mono Tools for Visual StudioHow to Port Your .NET Applications to Linux Using Mono Tools for Visual Studio
How to Port Your .NET Applications to Linux Using Mono Tools for Visual Studio
 
Evolve18 | Kanika Gera | "Eureka" : Adobe Sensei in AEM search for multilingu...
Evolve18 | Kanika Gera | "Eureka" : Adobe Sensei in AEM search for multilingu...Evolve18 | Kanika Gera | "Eureka" : Adobe Sensei in AEM search for multilingu...
Evolve18 | Kanika Gera | "Eureka" : Adobe Sensei in AEM search for multilingu...
 
ASP.NET on zLinux: A New Workload
ASP.NET on zLinux: A New WorkloadASP.NET on zLinux: A New Workload
ASP.NET on zLinux: A New Workload
 
Drupal 8 - Improving your development workflow
Drupal 8 - Improving your development workflowDrupal 8 - Improving your development workflow
Drupal 8 - Improving your development workflow
 
Composer - The missing package manager for PHP
Composer - The missing package manager for PHPComposer - The missing package manager for PHP
Composer - The missing package manager for PHP
 
Infrastructure as Data with Ansible
Infrastructure as Data with AnsibleInfrastructure as Data with Ansible
Infrastructure as Data with Ansible
 
Chromium: NaCl and Pepper API
Chromium: NaCl and Pepper APIChromium: NaCl and Pepper API
Chromium: NaCl and Pepper API
 
Practical PHP Deployment with Jenkins
Practical PHP Deployment with JenkinsPractical PHP Deployment with Jenkins
Practical PHP Deployment with Jenkins
 

En vedette

Video is key for Flipped Learning: the experience at UP Valencia
Video is key for Flipped Learning: the experience at UP ValenciaVideo is key for Flipped Learning: the experience at UP Valencia
Video is key for Flipped Learning: the experience at UP ValenciaCarlos Turró Ribalta
 
Pedagogical innovation at Universitat Politècnica de València
Pedagogical innovation at Universitat Politècnica de ValènciaPedagogical innovation at Universitat Politècnica de València
Pedagogical innovation at Universitat Politècnica de ValènciaCarlos Turró Ribalta
 
Hacia una nueva docencia ... caso UPV
Hacia una nueva docencia ... caso UPVHacia una nueva docencia ... caso UPV
Hacia una nueva docencia ... caso UPVCarlos Turró Ribalta
 
FFMPEG on android
FFMPEG on androidFFMPEG on android
FFMPEG on androidYoss Cohen
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksSlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShareSlideShare
 

En vedette (8)

Video is key for Flipped Learning: the experience at UP Valencia
Video is key for Flipped Learning: the experience at UP ValenciaVideo is key for Flipped Learning: the experience at UP Valencia
Video is key for Flipped Learning: the experience at UP Valencia
 
Pedagogical innovation at Universitat Politècnica de València
Pedagogical innovation at Universitat Politècnica de ValènciaPedagogical innovation at Universitat Politècnica de València
Pedagogical innovation at Universitat Politècnica de València
 
Hacia una nueva docencia ... caso UPV
Hacia una nueva docencia ... caso UPVHacia una nueva docencia ... caso UPV
Hacia una nueva docencia ... caso UPV
 
Live streaming in Android
Live streaming in AndroidLive streaming in Android
Live streaming in Android
 
FFmpeg presentation
FFmpeg presentationFFmpeg presentation
FFmpeg presentation
 
FFMPEG on android
FFMPEG on androidFFMPEG on android
FFMPEG on android
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Similaire à Multi Streaming Player

Video streaming on e-lab
Video streaming on e-labVideo streaming on e-lab
Video streaming on e-labrneto11
 
Video Streaming
Video StreamingVideo Streaming
Video StreamingVideoguy
 
GStreamer support in WebKit. what’s new?
GStreamer support in WebKit. what’s new?GStreamer support in WebKit. what’s new?
GStreamer support in WebKit. what’s new?philn2
 
GStreamer support in WebKit. What's new? (GStreamer Conference 2015)
GStreamer support in WebKit. What's new? (GStreamer Conference 2015)GStreamer support in WebKit. What's new? (GStreamer Conference 2015)
GStreamer support in WebKit. What's new? (GStreamer Conference 2015)Igalia
 
Approaches to Building Media Streaming Applications
Approaches to Building Media Streaming ApplicationsApproaches to Building Media Streaming Applications
Approaches to Building Media Streaming ApplicationsGlobalLogic Ukraine
 
Varnish at the BBC
Varnish at the BBCVarnish at the BBC
Varnish at the BBCgrahamlyons
 
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...Paolo Saviano
 
Android - Application Framework
Android - Application FrameworkAndroid - Application Framework
Android - Application FrameworkYong Heui Cho
 
An hour with WebRTC FIC UDC
An hour with WebRTC FIC UDCAn hour with WebRTC FIC UDC
An hour with WebRTC FIC UDCQuobis
 
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using KurentoFIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using KurentoFIWARE
 
FIWARE Tech Summit - Stream Processing with Kurento Media Server
FIWARE Tech Summit - Stream Processing with Kurento Media ServerFIWARE Tech Summit - Stream Processing with Kurento Media Server
FIWARE Tech Summit - Stream Processing with Kurento Media ServerFIWARE
 
Android beyond the smartphone
Android beyond the smartphoneAndroid beyond the smartphone
Android beyond the smartphoneChris Simmonds
 
Streaming Media West 2017 - HTML5 Workshop
Streaming Media West 2017 - HTML5 WorkshopStreaming Media West 2017 - HTML5 Workshop
Streaming Media West 2017 - HTML5 WorkshopErica Beavers
 
Getting Started with Amazon AppStream
Getting Started with Amazon AppStreamGetting Started with Amazon AppStream
Getting Started with Amazon AppStreamAmazon Web Services
 
A Study on FFmpeg Multimedia Framework
A Study on FFmpeg Multimedia FrameworkA Study on FFmpeg Multimedia Framework
A Study on FFmpeg Multimedia Frameworkijtsrd
 
ExoPlayer for Application developers
ExoPlayer for Application developersExoPlayer for Application developers
ExoPlayer for Application developersHassan Abid
 
Criteo Labs Infrastructure Tech Talk Meetup Nov. 7
Criteo Labs Infrastructure Tech Talk Meetup Nov. 7Criteo Labs Infrastructure Tech Talk Meetup Nov. 7
Criteo Labs Infrastructure Tech Talk Meetup Nov. 7Shuo LI
 

Similaire à Multi Streaming Player (20)

Video streaming on e-lab
Video streaming on e-labVideo streaming on e-lab
Video streaming on e-lab
 
Video Streaming
Video StreamingVideo Streaming
Video Streaming
 
GStreamer support in WebKit. what’s new?
GStreamer support in WebKit. what’s new?GStreamer support in WebKit. what’s new?
GStreamer support in WebKit. what’s new?
 
GStreamer support in WebKit. What's new? (GStreamer Conference 2015)
GStreamer support in WebKit. What's new? (GStreamer Conference 2015)GStreamer support in WebKit. What's new? (GStreamer Conference 2015)
GStreamer support in WebKit. What's new? (GStreamer Conference 2015)
 
Approaches to Building Media Streaming Applications
Approaches to Building Media Streaming ApplicationsApproaches to Building Media Streaming Applications
Approaches to Building Media Streaming Applications
 
Varnish at the BBC
Varnish at the BBCVarnish at the BBC
Varnish at the BBC
 
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
 
Android - Application Framework
Android - Application FrameworkAndroid - Application Framework
Android - Application Framework
 
An hour with WebRTC FIC UDC
An hour with WebRTC FIC UDCAn hour with WebRTC FIC UDC
An hour with WebRTC FIC UDC
 
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using KurentoFIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
 
Android presentation
Android presentationAndroid presentation
Android presentation
 
FIWARE Tech Summit - Stream Processing with Kurento Media Server
FIWARE Tech Summit - Stream Processing with Kurento Media ServerFIWARE Tech Summit - Stream Processing with Kurento Media Server
FIWARE Tech Summit - Stream Processing with Kurento Media Server
 
Android beyond the smartphone
Android beyond the smartphoneAndroid beyond the smartphone
Android beyond the smartphone
 
Streaming Media West 2017 - HTML5 Workshop
Streaming Media West 2017 - HTML5 WorkshopStreaming Media West 2017 - HTML5 Workshop
Streaming Media West 2017 - HTML5 Workshop
 
Getting Started with Amazon AppStream
Getting Started with Amazon AppStreamGetting Started with Amazon AppStream
Getting Started with Amazon AppStream
 
A Study on FFmpeg Multimedia Framework
A Study on FFmpeg Multimedia FrameworkA Study on FFmpeg Multimedia Framework
A Study on FFmpeg Multimedia Framework
 
DSA Day 2 PPT.pdf
DSA Day 2 PPT.pdfDSA Day 2 PPT.pdf
DSA Day 2 PPT.pdf
 
ExoPlayer for Application developers
ExoPlayer for Application developersExoPlayer for Application developers
ExoPlayer for Application developers
 
Criteo Labs Infrastructure Tech Talk Meetup Nov. 7
Criteo Labs Infrastructure Tech Talk Meetup Nov. 7Criteo Labs Infrastructure Tech Talk Meetup Nov. 7
Criteo Labs Infrastructure Tech Talk Meetup Nov. 7
 
Mm sys 2013-demo
Mm sys 2013-demoMm sys 2013-demo
Mm sys 2013-demo
 

Dernier

High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).pptssuser5c9d4b1
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSISrknatarajan
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)simmis5
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSRajkumarAkumalla
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 

Dernier (20)

High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 

Multi Streaming Player

  • 2. Let us introduce ourselves Dario Banfi: BSc in computer science, University of Torino 2nd semester, MSc in informatics, TUM Guillaume Chabin: Double degree student at TUM and Telecom ParisTech MSc in management and information systems, Telecom ParisTech, France 3rd semester, MSc in informatics, TUM
  • 3. Agenda I. Project presentation II. Demo III. Project Flow IV. Application presentation A. Application architecture B. Application user interface C. From the prototype to the next version V. Conclusion
  • 5. Team: The Partner ■ Weptun GmbH ■ 60 apps developed ■ Munich based ■ 17 Employees, founded in 2010 ■ Christoph Hausmann ■ CTO
  • 6. The main goal ■ Realize a low latency video stream player ■ Multi-streaming playback to see more than one video at once
  • 7. Starting point ■ Existing backend ■ Custom streaming server: Orchestrator ■ JSON protocol for signaling and communicating with the client applications ■ Real-time Transport Protocol (RTP) streaming protocol ■ Existing iOS application ■ Developed internally by Weptun
  • 8. Before explaining how it works, demo time! http://youtu.be/N2ppsCCCulw
  • 10. The project flow ■ Compared to our first roadmap: ■ Content roughly the same ■ Workload not really well estimated for some tasks ■ 2 major surprises: ■ First media library chosen not compatible for multi streaming ■ First user interface conflicting with the stream player
  • 11. Preliminary tasks ■ Getting in touch with the network protocols and the backend ■ RTP, SRTP, RTSP… ■ Video Codecs ■ How Orchestrator works ■ Researching on how to implement RTP streaming on android ■ Android native MediaPlayer ■ Third party library in Java ■ Third party library in C/C++ with the NDK
  • 12. Finding the right tools ■ libVLC ■ Stable and well supported ■ Very active community ■ Used in iOS application ■ No multistream capabilities in Android !
  • 13. Finding the right tools (ctd) ■ FFMpeg ■ Open-source ■ Good documentation ■ Complete, cross-platform multimedia framework ■ Base of many video players ■ Our player is based on IjkPlayer (ffplay wrapper) ■ Some modifications to enable RTP streaming ■ Different ffmpeg compilation ■ Enable network streams ■ Enable the correct codecs & containers
  • 14. Single RTP stream video player ■ Based on android.widget.VideoView, with our custom FFMpeg MediaPlayer ■ Customized MediaController in order to show specific controls ■ Ratio options and audio tweaks
  • 15. Multi-Streaming Video Player ■ Integrate the single RTP stream into a multi-streaming view ■ Optimize display area to show more content ■ Complexity of handling the multiple connections
  • 16. Improvement of the QoS ■ Latency issue ■ Important area for further improvements ○ RAM and CPU limiting factor for multi-streaming ○ HD fullscreen still laggy for low-end smartphones ■ A dynamic or manual selection of the stream quality ■ Set the maximal number of streams per screen ■ Benchmark of several players versions
  • 18. Architecture: Video player ■ Player based on IjkPlayer ■ Core of the application ■ C player built on top of ffplay, ■ JNI to create a Android MediaPlayer-like library ■ compile with additional flags to enable RTP ■ Architecture for ARMV7, X86 and ARM V5 ■ Easy to change the player in our implementation
  • 19. Architecture: Video player (ctd) Player displayed in a custom Video View ■ Extends the video SurfaceView ■ Customized MediaController overlay ■ Controls of the player + additional features ■ Error overlay
  • 20. Architecture: Server interaction ■ Server called Orchestrator ■ Implemented by Weptun, closed code ■ Stream to a client upon requesting ■ Bandwidth depending on the size and the definition, ■ 10 MBit/s for HD videos ■ 1.5 Mbit/s SD videos.
  • 21. Architecture: Server interaction (ctd) ■ UDP Hole Punching ■ Dedicated port to the server ■ Port:address mapping in the NAT table, ■ Used to stream the data directly to the client ■ 2 external libraries: ■ GSON , unserialize the JSON messages ■ Android Asynchronous Http Client , for the REST exchanges. If the client is behind a NAT, the server isn’t able to address him the stream !
  • 22. Architecture: Application logic ■ Apps contains 3 activities: ■ Settings screen ■ Full screen player ■ Multistreamer Viewer (Main activity) ■ Main activity ■ Streams contained in fragment ■ “Page” with up to 4 streams ■ Informative fragment (connection errors / no stream) ■ Replace fragment for new stream view
  • 23. Architecture: Application logic Several level to share information within the application ■ Shared preference ■ Configuration and favorite streams ■ Bundle in fragment replacement ■ Server Data: Singleton Class storing the main information ■ eg the list of available streams
  • 24. User interface: The Drawer Layout ■ Create a sliding menu ■ Open / Close from the home button ■ Nice callbacks, dynamic controls ■ Contains all features for the user ■ Often used with expandable list ■ Adapter to populate the list ■ 2 levels lists with 2 levels click listeners ■ Nice solution to display several Listviews in the same activity
  • 25. A suited UI in every situation
  • 26. From the prototype to the POC Single video streaming player Mandatory Multi-streaming application Mandatory Improvement of the multi streaming latency Nice to have Encryption through SRTP Optional Overlay text while playing videos Optional List of the target features:
  • 27. From the POC to the real product Several improvements possible ■ Performance: ■ Enabling hardware accelerated video playback. ■ Optimization on the allocation of data in the ffmpeg implementation ■ Modify the user interface depending on the final use: ■ Entertraining-oriented services ■ Video-surveillance systems
  • 28. Conclusion ■ Good introduction to android framework ■ Many skills acquired ■ Linux tools and Native code integration through NDK ■ Video streaming protocols ■ Async tasks and threads ■ Introduction to the startup environment ■ Final product with a good video experience
  • 29. Thank you for your attention
  • 30. Credits The following resources are under CC licences ■ Android robot : http://commons.wikimedia.org/wiki/File:Android_robot.svg ■ Video Player designed by Nikhil Dev from the Noun Project ■ Check List designed by Sabine Wollender from the Noun Project ■ Server designed by Konstantin Velichko from the Noun Project ■ Video Camera designed by Drew Ellis from the Noun Project ■ Soccer Field designed by Erik Wagner from the Noun Project ■ Check Box designed by Rémy Médard from the Noun Project ■ Present designed by Megan Sheehan from the Noun Project ■ Magnifying Glass designed by vijay sekhar from the Noun Project ■ http://img3.wikia.nocookie.net/__cb20130109141609/logopedia/images/6/6d/VLC-Media-Player-Metro-icon. png ■ ffmpeg logo: https://www.ffmpeg.org/ffmpeg-logo.png ■ Mountain Climbing designed by Juan Pablo Bravo from the Noun Project ■ Economic Growth designed by Adriano Gazzellini from the Noun Project ■ Window designed by Marek Polakovic from the Noun Project ■ Loading designed by Mateo Zlatar from the Noun Project ■ Beaker designed by Rohan Gupta from the Noun Project