Why Opencast?

Opencast is an initiative driven by higher education institutions to empower…

>> institutions to make informed choices about capture, processing, and distribution infrastructure for audio/video.

>> faculty to teach courses and share knowledge with their students and learners worldwide without technology getting in the way.

>> students to access and shape media into a more meaningful tool for learning.

>> everyone to easily find and engage with educational video, audio, and other rich media from instructors and institutions around the world.

19  Aug
Letter of Intent

The Community Development Workgroup of the OCC has developed a template Letter of Intent (download template).  The LOI is intended to be used by each institution to communicate with administration and garner support for engaging in OCC activities.  The LOI enables each institution to declare its anticipated commitment and contributions to the OCC.  Completing an LOI is an important step in formalizing the Opencast Community and in technical planning for the Opencast Project.

Each institution who intends to collaborate on the project in some fashion is asked to download and complete the LOI and return it to Michelle Ziegmann at michelle@media.berkeley.edu.

LOI’s Received From:

  • University of California Berkeley
  • ETH Zurich
  • University of Osnabrück
  • University of Copenhagen

Posted by michellezee, filed under Community Documents. Date: August 19, 2008, 10:58 am | No Comments »

Opencast is a community project to build and deliver an Open Source enterprise-level, integrated and interoperable framework to produce, process, distribute, and preserve audiovisual objects in research, teaching and learning. In addition, Opencast supports and develops audio and video tools expanding the functionalities of the core framework. The Opencast community acts on an institutional and community-wide level in order to satisfy immediate local as well as future needs.

The overall solution will be mature and sustainable with the Opencast Community (OCC) ensuring viability for years to come. It will be scalable, modular and adaptable in order to meet individual institutional needs. Opencast will develop, use, and promote open standards to support interoperability and accessibility.

The OCC will encourage and elaborate on best practices for deployment, maintenance, and usage of audiovisual objects with the perspective of enabling rich engagement between the user and the content. Opencast provides a comprehensive and long-term solution for the handling of audiovisual objects in academic and other settings.

Posted by michellezee, filed under Community Documents. Date: August 18, 2008, 4:40 pm | No Comments »

14  Aug
Videoconference

Videoconference of the OpenCast technical meeting on August 12, 2008

OpenCast Videoconference

Posted by Don Olliff, filed under Uncategorized. Date: August 14, 2008, 1:53 pm | No Comments »

In order to ease the evaluation wether REPLAY meets a principal set of requirements and thus provides the grounds for an Opencast “core” implementation, ETH Zurich has compiled a matrix comparing the requirements gathered at the community meetings at Berkeley and Oxford to the featureset of REPLAY.

The analysis is made with respect to the version of REPLAY that will be running at ETH Zurich in December 2008. Many additional features are already planned but cannot be realized in 2008. However, preliminary support may already be built in. These are marked as “planned” on the list. We were unsure about a few requirements and tried to answer them as good as possible, they have however been marked with a question mark (?).

Feel free to post comments and questions to the mailing list.

Download REPLAY-OpenCast Requirements Analysis

Posted by tobias, filed under Requirements, Technology Projects. Date: August 8, 2008, 3:00 pm | No Comments »

Berkeley’s Next Generation Webcast/Podcast System

  1. Administrative application
    • Enterprise Integration
    • AuthN, AuthZ
    • Business rules
    • Monitoring Component
    • Participation Management/Course Set Up Component
    • Lecture and Event Component
  2. Scheduler
    • Starts and stops jobs for the media capture engine
    • Reports media capture job status to the admin app
  3. Tasker
    • Controls the media processing engine
    • Reports media processing job status to the admin app
  4. Media capture engine
    • Starts and stops media capture devices
    • Transfers media to a central location
  5. Media processing engine
    • Encodes and transcodes media
    • Trims media
    • Brands media
    • Publishes media to delivery channels

Subsystem implementation

For the Summer 2008 UC Berkeley pilot, the subsystems are implemented with the following technologies:

  1. The admin application is a Java web application.  See the “Administrative application internals” section below.
  2. The scheduler is a ruby script
  3. The tasker is a ruby script
  4. The media capture engine is implemented via Apple’s Podcast Producer
  5. The media processing engine is implemented via Apple’s Podcast Producer

Isolation of Podcast Producer

Although Berkeley’s next generation webcast/podcast system uses Apple’s Podcast Producer, the design of the system ensures that its use remains an implementation detail of the media capture and processing layers.  Podcast Producer provides a workflow engine, for example, that will be *essentially unused by Berkeley’s next generation webcast/podcast system.  Rather than delegate workflow functionality to Podcast Producer, Berkeley’s next generation webcast/podcast system manages the media capture and processing workflows in the WebcastMessagingService (details below), thus allowing for cleaner separation of concerns and easier replacement.

* I write “essentially” because it is not possible to use the product while completely bypassing the workflow engine.  We therefore define each Podcast Producer workflow as a single “atomic” task which are pieced together into workflows defined and executed by Berkeley’s next generation webcast/podcast system.

Communication between subsystems

The admin application provides information to the scheduler and tasker via the iCal standard.
Capture and processing job messages are returned to the admin app via HTTP REST.

Administrative application internals

The administrative application itself is a thin user interface atop a set of services that manage the life cycle of a media file.  The services maintain and query the database of courses and events to be captured, the media files produced by those capture sessions, and the distribution channels to use in publishing the captured and encoded media.  As of December 2007, these services include:

  • WebcastService
    • Manages the Berkeley’s next generation webcast/podcast system domain model
    • Produces the iCal streams for consumption by the scheduler and tasker subsystems
  • WebcastMessagingService
    • Receives messages from the scheduler and tasker subsystems
    • Updates the Berkeley’s next generation webcast/podcast system domain model, creating new tasks as needed
    • All media processing workflows are defined here via pluggable handlers.  Workflows are executed via communication with the tasker.

The following services sit below the WebcastService and WebcastMessagingService layer, since these define non-domain or enterprise services.

  • CourseManagementService (a Sakai API with no dependencies on the rest of Sakai)
    • Provides academic session, course, scheduling, and instructor assignments
  • FrameworkServiceFacade
    • A “catch all” facade for various enterprise services needed by the internal services and the application UI.  These may be split into separate APIs if the single facade grows unwieldy.
    • Includes authentication, user directory lookups, authorization checks, and localization preferences.
    • This has already been implemented via the Sakai APIs, and can easily be implemented using other frameworks.  Implementations against Shibboleth and LDAP, for instance, should be trivial.

Anticipated areas of configurability

Berkeley’s next generation webcast/podcast system has a flexible capture capability domain object that models any kind of capture capability.  The default configuration includes audio, video, and screen capture, but these could be extended to include different kinds of video (HD vs. DV resolution), audio (stereo vs. mono), or a future media capture technology not currently available.  When podcasting became popular a few years ago, UC Berkeley learned the hard way that new kinds of media capture can emerge, and the capture and delivery system must be able to adapt to these new kinds of capture.  Our early video-only model did not accommodate new media capture types, so our applications and database schema suffered some ugly mutilation to adapt to this new kind of media.  Berkeley’s next generation webcast/podcast system is designed to accommodate new kinds of capture, making the system configurable for any combination of media capture types deployed on other campuses.

Media distribution channels in Berkeley’s next generation webcast/podcast system are also flexible and configurable.  The default configuration includes channels for iTunesU, YouTube, and our local webcast.berkeley.edu channel.  We are also considering adding a channel for bSpace, our local Sakai instance.  Adding distribution channels for other LMS’s should be a straightforward development task.

The workflow engine in Berkeley’s next generation webcast/podcast system is also highly configurable.  When a media capture or media processing job is handled (meaning that the job completed, or that it experienced a failure) by the scheduler or tasker, the administrative application is notified that the job has been handled.  Depending on the initial state of the job and the kind of notification passed to the administrative application, the workflow engine can create new jobs, cancel or restart existing jobs, or notify interested parties that the job has been handled.  The chain of actions taken by the workflow engine is infinitely configurable.  The current workflow engine is implemented as a state machine, but could be swapped for more full featured workflow engine to accommodate configuration via BPEL or another standard workflow description language.

Compromises of Configurability and SOA

Although the WebcastService is an abstract swappable interface, the current implementation relies on having all course information, including instructors, locations, and meeting times, in a single database rather than joining local data with course data provided via a service.  This deviation from an otherwise service oriented architecture is a compromise that stems from a lack of messaging from our campus SIS.  During our initial design work, we tried delegating all course-related queries to the CourseManagementService rather than copying this information into the Berkeley’s next generation webcast/podcast system’s database tables.  Although a normalized, service-oriented approach to querying course data made theoretical sense, it turned out to be problematic due to the difficulties our campus’ “pull” model imposed on applying business rules on course data changes.

For example, we have a business rule at UC Berkeley that states that a course should no longer be captured if a new instructor is added to a course and that instructor has not yet submitted an electronic approval for capturing this course.  This situation could be handled by implementing a messaging system (such as JMS) to alert the system to the “new instructor” event, but since we have no such messaging infrastructure at UCB and implementing one is out of scope for the Berkeley’s next generation webcast/podcast system development project, using SOA for course data was not an option.  The most efficient means we had to determine what data has changed was to keep a local copy of the data, and periodically compare it to the data defined in the SIS.

Another compromise we made relates to the configurability of business rules.  One example from UC Berkeley deals with the requirement that a department or organization pay for video capture, but not for audio capture.  This rule affects both the service implementation (don’t include course X in the schedule of lectures to be captured, since it hasn’t been paid for) and the user interface (don’t display a checkbox next to course Y, since it does not meet in a video enabled location).  We suspect that other institutions will have different rules regarding payment, but we chose to ignore this obvious opportunity for configurability in order to speed delivery of our pilot application.

Authorization features have also been simplified to speed development.  Our initial authZ requirements call for only three roles: Course Manager, Special Event Manager, and Super User.  These are very course-grained; the Course Manager, for instance, can manage all courses, and there is no means to limit course administration to a subset of courses. We realize that this simplified scheme will be inadequate for many institutions, including our own, but it will meet our requirements for the first phase of our deployment.

Posted by adam, filed under Technology Projects. Date: August 6, 2008, 8:48 am | No Comments »

To view images from the Opencast working meeting held at Oxford University on July 11-12, please visit Flickr.com. UC Berkeley has it’s own photostream under opencastprojects, but there is also an opencast group where we can all share photos. If you would like to upload images to this group, please join through Flickr. You will need to have a yahoo account to sign-in.


Created with Admarket’s flickrSLiDR.

Posted by christina, filed under Events, News, Uncategorized. Date: August 5, 2008, 4:21 pm | No Comments »

General Principles

  1. Leverage a variety of centralized IT resources
    Opencast will have the ability to leverage the institution’s existing IT infrastructure, including:

    • Authentication
    • Learning Management System
    • Data Systems (e.g. student info, registrar)
    • Platform preference
  2. Sustainable, scalable IT infrastructure
  3. Leverage open source technology when available
  4. Standards-based
    The Opencast system will be based on standards wherever possible, such as:

    • Media formats
    • Level of media quality
    • Tagging formats (e.g. delicious style)
    • Metadata format (e.g. RDF format)
    • Citations format (e.g. Latex/Bibtex)
  5. Ease of use
    Opencast will be easy to use for faculty and students, including the following components:

    • Minimum interference with the instructor’s teaching
    • Multiple User Interfaces, depending on the role of the user, so that they only see what they need
  6. Published, accessible technical documentation
    • Well-documented code
    • Community-generated tutorial repository

System Requirements

Infrastructure

  • Ability to integrate with institutional authentication system
  • Ability to integrate with and leverage existing LMS
  • Ability to integrate with institutional data
  • Roles-based distributed administration/clearly defined roles
  • Flexible and expandable storage
  • Flexible and expandable bandwidth
  • Ability to work in a clustered server environment
  • Ability to support different media capture devices and methods
  • Open APIs
  • Ability to support multiple platforms
  • Ability to integrate with post production facilities/tools
  • Versioning of media files and of metadata
  • Provide different pricing models/captured media

Policy Support & Participation Management

  • Protect intellectual property
  • Manage releases from students, faculty and presenters
  • Free/open formats (software, standards, licenses)
  • Ability to ensure copyright compliance according to local guidelines/laws
  • Ability to communicate copyrights to end users
  • Provide/incorporate institutional policies regarding rights to publish
  • Define and configure roles according to institutional needs
  • Ensure ADA (Americans with Disabilities Act) compliance
  • Ability to automatically invite instructors to podcast

Media capture

  • Automated and scheduled media capture
  • Record on demand, no preschedule
  • Capture lecture with minimum intervention
  • Ability for presenter to control capture (e.g. start, stop, pause)
  • Easy to use, central location to schedule recordings
  • Ability to capture supplemental media
  • Automated course calendar/production schedule
  • Know if my course is in podcast-capable room
  • Highly reliable capturing
  • Upload in batch
  • Feedback on where in the process content is
  • Flexible, multiple and/or simultaneous sources of capture (doc cameras, smart boards, video)
  • Ability to choose type of capture (audio, video, etc.)
  • Ability to upload in multiple formats
  • Automated notification when, where capture is not working
  • Have a master control panel for all capture facilities

Metadata/tagging/search

  • Apply standardized metadata to all content
  • Automated and synched metadata from existing data systems (student info, registrar, directories, etc)
  • Update metadata after publishing
  • Updates to metadata propagate through all distribution channels
  • Attribute ownership
  • Delegate support and admin tasks (renaming/fixing metadata)
  • Tag content
  • Collaborative tagging (enable peers/viewers to add tags)
  • Search by transcript
  • Search by slides
  • Find specific parts within a lecture
  • Search across multiple lectures
  • Search across institutions and repositories
  • Navigate easily through content
  • Access to associated content (syllabus, reading list)
  • Versioning of metadata
  • Create ontologies of similar terms

Media enhancement

  • Add supplemental media
  • Organize content
  • Able to edit (remove portions, capture subsection)
  • Capture and insert content into existing content
  • Attach additional media (slides, pdf, etc) at specific points in video
  • Automated transcription of audio, synched with video (captioning)
  • Automatic chaptering with slide information
  • Annotate/bookmark specific points in lecture video
  • Add translations (subtitles)
  • Simple media enhancement tools (e.g. adjust brightness, noise filter)
  • Links to university library resources embedded as citations

Publishing/distribution

  • Flexibility to encode and publish according to institution’s deadlines
  • Integrate with multiple distribution repositories using standardized metadata mappings and open APIs
  • Schedule release of media by date
  • Ability to publish to multiple distribution channels and in multiple formats
  • Ability to unpublish from multiple distribution channels
  • Incorporate media on course page, ePortfolio, marketing
  • Enable privacy, specify and restrict access
  • Manage social network around media
  • Notification when media is available

Consuming/reusing media

  • Share specific segments of content with others
  • Embed specific segments into assignments, discussion posts, etc.
  • Link media into course syllabus
  • Ability to organize and create playlist of media for reuse
  • Annotate/bookmark specific points in lecture video
  • Accessible from any device
  • Rate content
  • Best of breed content
  • View same lectures from previous semesters
  • Content subscription model
  • Users can tell which lectures they have seen
  • Know in advance which lectures will be webcast
  • Market programs/events with audio/video
  • Translated content
  • Comparative/juxtapositioning analytic tools
  • Allow learners to provide feedback to the instructor 

Production & branding

  • Institutional branding
  • Custom branding
  • Self-branding (faculty can put link to own website)

Archiving

  • Long term content management formats
  • Archive content indefinitely
  • Archive content in a format that is open/transferable to a new system
  • Ability to choose a media capture format to use
  • Archive source media

Statistics

  • Get viewership stats/analytics
  • Performance stats for system
  • Track media capture assets (cameras, VGA, etc) and their usage
  • Understand media use by learners

Posted by adam, filed under Requirements. Date: August 5, 2008, 1:50 pm | No Comments »

Posted by adam, filed under Requirements. Date: August 5, 2008, 1:03 pm | No Comments »

Posted by adam, filed under Requirements. Date: August 5, 2008, 12:44 pm | No Comments »

Posted by adam, filed under Requirements. Date: August 5, 2008, 12:43 pm | No Comments »

« Previous Entries