MediaFlow is a set of integrated hardware and softwarecomponents that allow simultaneous control, capture, formatting,processing, and distribution of AV content generated ineducational spaces.
MediaFlow• Consists of ﬁve components ‣ Core AV Systems (CS) ‣ Core IT Systems (CS) ‣ Maestro ‣ MediaFlowProxy (MFP) ‣ StreamGrabber (SG)
MediaFlow• 1000+ hardware components• 8 miles of dedicated AV ﬁber• 150,000+ lines of code
Timeline System Research, Design, Architect August 2007 Software Development Begins September 2009 Construction Ends December 2009 AV/IT Installation Begins January 2010 Technology “burn in cycle” begins July 1, 2010 AV/IT systems tested & deployed July 31, 2010 Maestro User Training August 1, 2010 Begin teaching August 16, 2010
History • 25+ years of capture • 3,000 hours captured per year • Enabling technology
Capture & Distribution Goals• Automate the capture of all core classes and events• Consolidate event & curriculum data - report to LCME• Support self capture & externally produced media• 5pm deadline for classroom content delivery• Open standards
OwnersExecutive Business Sponsor(s) Business Owner Lead Engineer - MFDavid Gaba Jenn Stringer Carter YoungbloodTodd FerrisMichael Halaas Technical Architect CS, MF CS Systems EngineerHenry Lowe Andy Wasklewicz Jaime GagoNiraj Dangoria IRT Project Manager AV EngineerBusiness Stakeholders Pauline Brutlag Bindu MadhavaBrian Tobin (EdTech)Mary Ayers (EdTech) Systems Architect Maestro OperationsJamie Tsui Don Mitchell – IRT Trent TanakaCindy Irvine (OME)Dianna Jouan (Course Admin)Richard Renn (Public Web)
Media Flow Users Role Users Per Year Lecturers 500 Students 1000 Course Directors & Coordinators 75 SET Staff 10 Public Views ???
Old Process1 4 Receive request; contact Print door sign and post classroom support to if on door they can provide taping2 5 Track down taper last minute Obtain video release from speaker3 6 Schedule event Video encoded and manually posted
New Process1 4 Receive request; contact System generates video release classroom support to if email; speaker signs electronically they can provide taping2 5 Schedule change is reﬂected in Speaker chooses auto start or electronic door sign manually starts, extends, ends session via AMX panel in classroom3 6 Session owner (requester) enters Video ﬁle is automatically encoded; session information into Maestro distributed once system has veriﬁed “signed” video release
MediaFlow Data R25 SchedulingData Maestro DB CurrMIT Coursework iTunesU ?????
MediaFlow - Core AV• Two years of design• One of most complex AV installs in the United States• 1000+ hardware components• Eight miles of ﬁber
MediaFlow - MediaFlowProxy• Link between Maestro and core systems• Provides data for digital signs• Provides delay/start/stop/extend functionality• Collaboration with Apple• Java, Tomcat, MySQL
MediaFlow - StreamGrabber• Interface between MFP and network encoders• Collaboration between Stanford and Telestream• Objective C, C++, C
Workﬂows Video post-production Preﬂight• Extract Audio Track From PipeOutScreencap Generate Title Slide 10 sec duration Encode Stanford Logo 4 ScreenCap-960x540 Split Split PipeOutCam into N pieces Split PipeOutScreencap into N pieces Split PipeOutCam into N pieces PipeOutScreencap automation into N pieces Master Encode Join Source Audio&Copyright Encode H.264 Encode H.264 Piece N Title Encode H.264 Piece 2 Slide Encode PiP Piece 1 Encode PiP PipeOutScreenCap Encode Source Scale Encode PiP Encode Copyright Audio for Mp4 PipeOutScreenCap Piece N Flattening for Mp4 PipeOutScreenCap Piece 2 Audio&Copyright Encode H.264 Piece 1 Encode H.264 Encode H.264 Piece 2 Piece N Title Slide Encode H.264 Piece 1 BG-Cover Encode H.264 Encode H.264 Piece N Encode Piece 1 Piece 2 Audio&Copyright Encode Title Slide 4 ScreenCap-960x540 Publish Audio Track Encode Encode Title Slide 4 Stanford Logo 4 4 Cam-640x360 Cam-640x360 Cat Intro and Cat Intro and N PiP Encoded N PiP Encoded PipeOutScreencap PipeOutCam Pieces Pieces Delete Audio from Delete Audio from PipeOutCam PiP PiP PipeOutScreencap encoded encoded Cat Intro and N Encoded PipeOutScreencap Cat Intro and Pieces N Encoded PipeOutCamPieces Delete Audio from Delete Audio from MV PipeOutCam encoded encoded MV PipeOutScreencap back to PipeOutScreencap PipeOutCam $$pipeout_sourcefolder$$ back to Generate $$pipeout_sourcefolder$$ PictureInPicture Annotate Annotate Annotate Mix in Audio Mix in Audio with offsets with offsets Mix in Audio with offsets Publish Encoded PipeOutCam Publish Encoded PipeOutScreencap Publish Encoded PiP End Workﬂow Maestro Status Postﬂight
Video Output• H.264, MP4 wrapper• Three different video “types”• Playable on computer, mobile devices
Media Asset Management• Automated ingestion of assets• Automated tagging of assets• Multiple levels of categorization
Designing Maestro• Use cases (64)• Flow diagrams• UI wireframes (whiteboard, omnigrafﬂe)• Rolling Orange reﬁnements• Iterations based on feedback from users
Maestro: Agile Development• Feature list --> time estimates --> project plan• Quick two-week development cycles• Interspersed with bug-ﬁx cycles• Daily stand-ups (Scrum)
Maestro QA• Team of 4 student QA Testers• Developed test cases based on spec• Tested every test case on new features• Set aside a logical portion of cases for smoke tests• Fogbugz for case tracking• Google Doc for test cases
Extensibility • Publishing platform • iCal, RSS, Atom • Social media
Open Source• Open sourcing code and systems design• Evaluating licensing options• October release