MediaStream ● Definitions ● Common operations with example code (recording, cloning,...) ● Topics for discussion ● I prepared a few ● Suggestions from.

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

11 Halloween, 2011 Cullen Jennings
CHAPTER 15 WEBPAGE OPTIMIZATION. LEARNING OBJECTIVES How to test your web-page performance How browser and server interactions impact performance What.
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.
IT skills: IT concepts: Web client (browser), Web server, network connection, URL, mobile client, peer-to- peer application This work is licensed under.
Introduction to a Programming Environment
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.
Introduction to SDP Issues. Content Background Goals SDP Primer RTP Primer Use cases “New” Functionalities in SDP Multiple RTP Streams in SDP Decision.
Slide title 70 pt CAPITALS Slide subtitle minimum 30 pt RTP usage in WebRTC Part 1: API and Topologies draft-ietf-rtcweb-rtp-usage-03 RTCWEB Interim June.
© 2007 ReadyTalk www.readytalk.com1598 Wynkoop, Denver, CO 80202www.readytalk.com Conferencing Service You shouldn’t need a degree in computer.
 Parts of the OnSync environment  Can be moved or closed  Each have their own purpose and provide moderator (or attendees) with additional functionality.
CLUE Framework Status and Issues IETF89 - London March 5, 2014 Mark Duckworth draft-ietf-clue-framework-14 1.
Writing various AJAX forms in Drupal 7 1. Overview of Form API 2. Ctools 2.1 Ctools features 3. Ajax 3.1 Ajax Forms in Drupal 4. Putting it all together.
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.

Triggers A Quick Reference and Summary BIT 275. Triggers SQL code permits you to access only one table for an INSERT, UPDATE, or DELETE statement. The.
Slide title minimum 48 pt Slide subtitle minimum 30 pt RTCWEB Terminology A Discussion of relation between RTCWEB Media Protocol Terminology and the PeerConnection.
A synchronous choice getUserMedia options. Problem RTCPeerConnection requires MediaStreams (and MediaStreamTracks) in order to negotiate streams MediaStreams.
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.
ISES Discipline Collection Fall 2007 – Segment 1.
 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.
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 ● Overview ● Definitions ● getUserMedia() ● Recording ● Cloning/composition.
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
Dan Nealey Scott Batura
XMLHttp Object.
Chapter 14 User Datagram Program (UDP)
Blackboard Collaborate
Topic: Java Security Models
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
Big Blue Button A Canvas Workshop
Computer Communication & Networks
Chapter Topics Chapter 5 discusses the following main topics:
Chapter 14 User Datagram Protocol (UDP)
Control Structures (Structured Programming) for controlling the procedural aspects of programming CS1110 – Kaminski.
CIS 136 Building Mobile Apps
CIS 136 Building Mobile Apps
Chapter 5: Methods Starting Out with Java: From Control Structures through Objects Third Edition by Tony Gaddis.
Lecture 2 Part 2 Process Synchronization
JavaScript & jQuery AJAX.
Concurrency: Mutual Exclusion and Process Synchronization
Chapter 6 – Methods Topics are:
Chapter 14 User Datagram Program (UDP)
TREx ESC Coordinator Training
Chapter 5: Methods Starting Out with Java: From Control Structures through Objects Third Edition by Tony Gaddis.
Control Structures (Structured Programming) for controlling the procedural aspects of programming CS1110 – Kaminski.
Chapter 5: Methods Starting Out with Java: From Control Structures through Objects Third Edition by Tony Gaddis.
Hyperledger Fabric NodeSDK
Threads and concurrency / Safety
Presentation transcript:

MediaStream ● Definitions ● Common operations with example code (recording, cloning,...) ● Topics for discussion ● I prepared a few ● Suggestions from the WG

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

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

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); }

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 – Issues ● 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();

Topics for Discussion ● What happens if the user doesn't (or cannot) grant permission to all requested media types? ● Immutable MediaStream objects ● B-side behavior if A-side disables a track ● Should a multi-track MediaStream “end” if the user physically disconnects a camera? ● Recording ●...