MediaStream ● Overview ● Definitions ● getUserMedia() ● Recording ● Cloning/composition.

Slides:



Advertisements
Similar presentations
Adobe AuditionProject 7 guide © 2012 Adobe Systems IncorporatedHow to apply Adobe Audition sound effects 1 Adobe Audition is an audio application designed.
Advertisements

Evan Roggenkamp VoIP/IP Telephony.  Designed for ISDN networks originally  Tuned to work over TCP/IP  Protocol Suite Built With: (some of them)  H.
11 Halloween, 2011 Cullen Jennings
TouchDevelop Chapter 5-7 Chapter 5 Audio Chapter 6 Camera, Graphics and Video Chapter 7 Sensors Mengfei Ren.
It provides a framework for embedded multimedia facilities in java enabled mobile devices.
Reza hooshangi ( ). short history  One of the last major challenges for the web is to enable human communication via voice and video: Real Time.
By Eric Kim, Amanda Champion, Katelyn Jacobsen, Lekha Bahri, Jennifer Koo, and Doo Young Yoo.
 Currently there is no software solution that combines video and animation in to one platform.  Every single change drag changes in all of the environments.
Delivering Object- Based Audio Visual Services Hari Kalva, Javier Zamora, and Alexandros Eleftheriadis Columbia University, Packet Video 99.
Company : Pav technologies Technical Advisor : Greg Mayers, Michael Bruggeman, Peretz Dissen. Academic Advisor : Dr. Yuval Elovici Team members :  Ravit.
Video Conference Training. Agenda Where to get help? Selecting Presentation or Conference mode Crestron Rooms - Turning on the Room Crestron Rooms - Adjusting.
SiS Technical Training Development Track Technical Training(s) Day 1 – Day 2.
Tom Des Lauriers Associate Professor De Vry University.
1 Securing Network Resources Understanding NTFS Permissions Assigning NTFS Permissions Assigning Special Permissions Copying and Moving Files and Folders.
CS371m - Mobile Computing Audio.
Portfolio Manager ® Learning Objectives In this session, you will learn about EPA’s ENERGY STAR Portfolio Manager tool and how to: –Edit property.
Introduction to SDP Issues. Content Background Goals SDP Primer RTP Primer Use cases “New” Functionalities in SDP Multiple RTP Streams in SDP Decision.
File System. NET+OS 6 File System Architecture Design Goals File System Layer Design Storage Services Layer Design RAM Services Layer Design Flash Services.
© 2007 ReadyTalk www.readytalk.com1598 Wynkoop, Denver, CO 80202www.readytalk.com Conferencing Service You shouldn’t need a degree in computer.
In association with Technion and Qualcomm. Project supervisor: Tatyana Finkel. Technion Israel Institute of Technology.
 Parts of the OnSync environment  Can be moved or closed  Each have their own purpose and provide moderator (or attendees) with additional functionality.
Recovery Manager Overview Target Database Recovery Catalog Database Enterprise Manager Recovery Manager (RMAN) Media Options Server Session.
1 Client API Goals: evolvable, easy to use Design decision: –event-driven, non-blocking programming model –Data items are immutable Main data structure:
CLUE Framework Status and Issues IETF89 - London March 5, 2014 Mark Duckworth draft-ietf-clue-framework-14 1.
1-1 Embedded Network Interface (ENI) API Concepts Shared RAM vs. FIFO modes ENI API’s.
Windows Movie Maker Getting Started. What is Windows Movie Maker? Windows Movie Maker allows a user to capture (import) audio, create a narration, add.

Microsoft Access 2013 Simplify Data Entry with Forms Chapter 3.
Java Objects and Classes. Overview n Creating objects that belong to the classes in the standard Java library n Creating your own classes.
Slide title minimum 48 pt Slide subtitle minimum 30 pt RTCWEB Terminology A Discussion of relation between RTCWEB Media Protocol Terminology and the PeerConnection.
ECE122 Feb. 22, Any question on Vehicle sample code?
Lecture 9: AJAX, Javascript review..  AJAX  Synchronous vs. asynchronous browsing.  Refreshing only “part of a page” from a URL.  Frameworks: Prototype,
A synchronous choice getUserMedia options. Problem RTCPeerConnection requires MediaStreams (and MediaStreamTracks) in order to negotiate streams MediaStreams.
1 1999/Ph 514: Flow of Control EPICS Flow of Control Marty Kraimer APS.
IMovie 10 Overview. Importing Files from a Video Camera into iMovie 1.Plug the camera into a wall outlet using the power supply. (Some cameras will not.
PeerConnection PeerHandler MediaPlayer UserMedia- Controller MediaStream MediaStreamCenter PeerHandler- Gstreamer StreamMediaPlayer- PrivateGstreamer.
 Goal ◦ Add the functionality in MiniSIP for a client to be able to stream 2 different videos from 2 different video cameras in a conversation with other.
Portfolio Manager ® Learning Objectives In this session, you will learn about EPA’s ENERGY STAR Portfolio Manager tool and how to: –Edit property.
Chapter 3: Relational Databases
1 EPICS Flow of Control: EPICS Workshop at IHEP, Beijing, August 2001 EPICS Flow of Control Marty Kraimer APS.
Introduction to metadata for IDAH fellows Jenn Riley Metadata Librarian Digital Library Program.
MP4 help session Hoang Nguyen. Outline Scenarios Media Synchronization requirement FF/RWND vs. Seek Media synchronization GUI Demo steps (posted next.
CS371m - Mobile Computing Audio. Audio on Device Devices have multiple audio streams: – music, alarms, notifications, incoming call ringer, in call volume,
MediaStream ● Definitions ● Common operations with example code (recording, cloning,...) ● Topics for discussion ● I prepared a few ● Suggestions from.
Mobile File Systems.
Multi camera.
Audio and Haptic Feedback
Video API and Coding Graduate Seminar Dr. Jinan Fiaidhi
Media Stream Track Suspend/Resume/Remove/Stop
Distributed File Systems
Klara Nahrstedt Spring 2009
Sharing Content through Multiple Channels
How to work with audio Inserting and deleting audio tracks
Dan Nealey Scott Batura
XMLHttp Object.
Chapter 14 User Datagram Program (UDP)
Blackboard Collaborate
Scripts & Functions Scripts and functions are contained in .m-files
BRINGING REALTIME MEDIA CAPABILITIES TO YOUR INTERFACE WITH WEBRTC
Auditing in SQL Server 2008 DBA-364-M
Chapter 14 User Datagram Protocol (UDP)
Library Technology Conference: Building Exhibits
CIS 136 Building Mobile Apps
CIS 136 Building Mobile Apps
Using dial-in conferencing
Lecture 2 Part 2 Process Synchronization
Lecture 5: Functions and Parameters
Chapter 14 User Datagram Program (UDP)
Threads and concurrency / Safety
Presentation transcript:

MediaStream ● Overview ● Definitions ● getUserMedia() ● Recording ● Cloning/composition

Overview MediaStream MediaStreamTrackList MediaStreamTrack n tracks audio tracks precede video tracks a track can either be enabled or disabled

Definitions (API level) ● MediaStream ● Represents stream of media data ● High-level – platform managed for performance ● Contains a list of tracks ● May end ● MediaStreamTrack ● Can consist of multiple channels of parallel data (5.1 audio) ● An instance can only belong to one MediaStream ● Can be enabled or disabled

MediaStream - Discussion ● Immutable MediaStream objects ● Track enabling/disabling ● B-side behavior if A-side disables a track ● Muted vs. disabled ● Should a multi-track MediaStream “end” if the user physically disconnects a camera? ●...

getUserMedia() ● Requires user consent to produce a LocalMediaStream object ● Arguments ● Options object (nullable) ● Success callback (nullable) ● Error callback (nullable) ● Example: Request an audio/video stream and show a self-view (no error handling)

getUserMedia() - Example navigator.getUserMedia({"audio": true, "video": true}, successCallback); function successCallback(stream) { // show the stream selfView.src = URL.createObjectURL(stream); }

getUserMedia() - Discussion ● What happens if the user doesn't (or cannot) grant permission to all requested media types? ● Behavior if MediaStreamOptions is null ●...

Recording ● API entry point: MediaStream.record() ● MediaStreamRecorder ● getRecordedData(cb) - callback to retrieve recorded data ● Example: Record five seconds of a MediaStream

Recording - Example var recorder = stream.record(); setTimeout(function () { recorder.getRecordedData(blobCallback); }, 5000); function blobCallback(blob) {... }

Recording - Discussion ● getRecordedData() can be called multiple times ● UA must continue to record until the MediaStream ends ● Developer can not dispose a MediaStreamRecorder without ending the corresponding MediaStream ● Old recording approach ● Possible to stop a MediaStreamRecorder ● Synchronous data retrieval may be problematic ●...

Cloning ● Use the MediaStream() constructor ● Why? ● Create new MediaStream objects (without prompting user) ● Example: Clone a MediaStream to show the original in a self-view, and send the clone over a PeerConnection.

Cloning - Example var streamClone = new MediaStream(stream.tracks); selfView.src = URL.createObjectURL(stream); peerConn.addStream(streamClone); // toggle video off streamClone.tracks[1].enabled = false;

Composition ● Again, use the MediaStream() constructor ● Example: Record the audio conversation in a p2p conference with two peers to a single file.

Composition - Example var combinedAudioStream = new MediaStream( peerConn.localStreams[0], peerConn.remoteStreams[0]); var recorder = combinedAudioStream.record();

Cloning/composition - Discussion ● Synchronization ●...