Upload
jabari-holmer
View
266
Download
0
Tags:
Embed Size (px)
Citation preview
Helix Summit 2007 2
IntroductionsIntroductions
• We support open software, open communities, and an open world
• Peter Krenesky• Lead Software Engineer• Tech Lead for OLPC projects @ OSL
Helix Summit 2007 3
SummarySummary
• Python API Overview• Helix Player On the OLPC:
• Watch & Listen
• ProducerSDK On the OLPC: • Produce• Teleconference
• Future Plans:• Audio Presentations Via Producer
Helix Summit 2007 4
Pykit - OverviewPykit - Overview
• Python Modules• HxPlay• HxRecord
• Capture• Editing• Encoding
Helix Summit 2007 5
Pykit - Design GoalsPykit - Design Goals
• Simplify the interface• Hide engine initialization• Hide initialization of components
• Resizing• Seeking
• Reuse as much as possible• Start from pyplayer• Feature implementations borrowed from splay
Helix Summit 2007 6
HxPlay - OverviewHxPlay - Overview
• Ported to atlas• Target: player_kit_python• Code cleanup
• Added new features• QuickSeek• Video Site Resizing• Playlist support• Color Controls
Helix Summit 2007 7
HxPlay - Player sampleHxPlay - Player sample
Import hxplayhxplay.init()player = hxplay.open(“foo.mp3”)
player.start()
Helix Summit 2007 8
HxPlay – Incomplete HxPlay – Incomplete FeaturesFeatures
• Support other than Linux
• Support for Multiple Players
• Audio Formatting
• Audio Visualization
Helix Summit 2007 9
HxRecord - OverviewHxRecord - Overview
• New Python Bindings Around ProducerSDK
• Target: player_kit_python_hxrecord
• ProducerSDK modifications• Porting to atlas• Adding features
Helix Summit 2007 10
HxRecord - Design GoalsHxRecord - Design Goals
• Match ProducerSDK workflow
• Full featured
• Simplicity
• Merger with hxplay
Helix Summit 2007 11
HxRecord - Code SampleHxRecord - Code Sample
dictionary = { ‘pluginType’ :
’avFileInput’ , ’filename’ : ’foo.avi’
}input = hxrecord.createInput(dictionary)encodingjob.setInput(input)
Helix Summit 2007 12
HxRecord – RoadmapHxRecord – Roadmap
• Bindings Mostly Complete
• Debug Ported ProducerSDK
• Merge ProducerSDK components with Atlas
• Merge HxRecord and HxPlay
Helix Summit 2007 13
ProducerSDK - Current ProducerSDK - Current HierarchyHierarchy
EncodeSVCMediaPlayback
Class Factory
Video Output (sites)
Container Classes
Class Factory
Video Output (sites)
Container Classes
Atlas ProducerSDK
Helix Summit 2007 14
ProducerSDK – Intermediate ProducerSDK – Intermediate StepStep
EncodeSVCMediaPlayback
Class Factory
Video Output (sites)
Container Classes
Class Factory
Video Output (sites)
Container Classes
Atlas
Helix Summit 2007 15
ProducerSDK - Planned ProducerSDK - Planned HierarchyHierarchy
EncodeSVCMediaPlayback
Class Factory
Atlas
Video Output (sites)
Container Classes
Helix Summit 2007 16
PyKit - Current HierarchyPyKit - Current Hierarchy
HxRecord
EngineInitialization
HxPlay
EngineInitialization
Helix Summit 2007 17
PyKit - Planned HierarchyPyKit - Planned Hierarchy
HxRecordHxPlay
HxEngine
PyKit
Helix Summit 2007 18
Helix Player on the OLPCHelix Player on the OLPC
• Named “Watch and Listen” after the activity that children are doing.
• Lots of possible features but need to keep it simple
Helix Summit 2007 20
Watch & Listen - FeaturesWatch & Listen - Features
• Standard Playback Buttons• Seeking via slider• Screen size toggles• Metadata display• Playlist Support
Helix Summit 2007 21
The OLPC JournalThe OLPC Journal
• Stores a history of what a child has done
• Activities can be resumed
• Files have a mime-type
• Only place where Watch & Listen can be launched
Helix Summit 2007 23
W & L - Features We’d Like W & L - Features We’d Like to Addto Add
• Visualizations for audio Playback
• Keyboard Shortcuts
• Sharing - Collaboration among children
Helix Summit 2007 24
Sharing - OverviewSharing - Overview
• It’s a collaboration tool not just a laptop!
• Shared learning experiences
Helix Summit 2007 25
Watch & Listen - Watch & Listen - MulticastingMulticasting
• Positives• Scales very well for 1:M transmission
• Negatives• Server is a large image• Simultaneous multicasts may degrade mesh
Helix Summit 2007 26
W & L - Synchronized W & L - Synchronized ViewingViewing• Positives
• Doesn’t require a much larger image
• Negatives • Limited Scaling• Must all have access to video
• Keeping video synchronized is difficult
Server
Helix Summit 2007 27
Produce - OverviewProduce - Overview
• Capture - video and audio• Encoding• Simple Video Editing
• Cropping• Resizing• Cutting & Joining videos• Add Audio Tracks
Helix Summit 2007 30
Teleconference - OverviewTeleconference - Overview
• Audio and video Teleconferencing using Helix
• Senior Capstone Project• Year long project required for graduation
Helix Summit 2007 31
Teleconference - OverviewTeleconference - Overview
• Will use both HxRecord & HxPlay
• 1:1 Video and or Audio at usable rates
• CPU power bigger issue than bandwidth
• M:N Conferencing may not be possible with CPU limitations
Helix Summit 2007 32
Teleconference - 1:1 Teleconference - 1:1 WorkflowWorkflow
Child 1
Producer (out)
Player (in)
Child 2
Player (in)
Producer (out)
Helix Summit 2007 33
Teleconference - M:N Teleconference - M:N ChallengesChallenges• Every Participant adds 2 streams
• Videos must be decoded and drawn to screen
• Audio must be multiplexedChild 1
Producer (out) Child2
Child3
Producer (in)
Player (in)
AudioCombined Stream
Helix Summit 2007 34
Teleconference – Special Teleconference – Special RequirementsRequirements
• All communication between laptops must use Python dbus• XO has special libraries for locating and communicating with peers on the mesh
• Plugins will be required for both Producer and Player
Helix Summit 2007 35
Webcaster – OverviewWebcaster – Overview
• PowerPoint + Recorded Audio
• Proposed project • Will probably be done in pieces as class projects
Helix Summit 2007 36
RecapRecap
• Python API – A lot of momentum
• Helix On the OLPC: • Watch & Listen• Produce• Teleconference• Audio Presentations Via Producer
Helix Summit 2007 37
Questions?Questions?
• Peter Krenesky• Email: [email protected]• Web: http://osuosl.org
• Ribosome Targets:• Player_kit_python• Player_kit_python_hxrecord
• http://laptop.org