Producer Server

Audio, Video, Screen or File

Podcast Producer Marriott Library What is it?

• An Apple Inc. Solution • Automates the process of content ingestion, production & publishing. • Options... - Local audio, video & screen recording - Remote audio, video & screen recording - Direct file submission What is it? Content Creation Life Cycle Capture Encode Deliver What is it? Content Creation Life Cycle Capture Encode Deliver

Podcast Capture

QuickTime Player

Command Line What is it? Content Creation Life Cycle Capture Encode Deliver

Web Interface

iPhone Application

Custom Application What is it? Content Creation Life Cycle Capture Encode Deliver

iSight/Webcam

Camcorder

Microphone What is it? Content Creation Life Cycle Capture Encode Deliver

VGA Frame Grabbers

Digital Video Converters

Devices What is it? Content Creation Life Cycle Capture Encode Deliver

QuickTime

Commercial

Open Source What is it? Content Creation Life Cycle Capture Encode Deliver

iTunes U

YouTube

Campus Web/Streaming How it Works?

1

Podcast Capture

Use software to initiate capture or submit file How it Works?

Podcast Capture

2

Remote Capture

Captures audio, video or screen with remote Mac How it Works?

Podcast Capture

3

Remote Capture Shared Uploads captured/submitted file to shared file system How it Works?

4 Cluster

Podcast Capture

Remote Capture Shared File System Sends job(s) to Xgrid Cluster to process according to workflow defined How it Works?

Publishing Servers

5

Xgrid Cluster

Podcast Capture

Remote Capture Shared File System Sends results to publishing servers How it Works?

Publishing Servers 6

Xgrid Cluster iTunes U

Podcast Capture

Streaming Servers

Remote Capture Web Servers Shared File System Components

• Podcast Producer Server - Part of Mac OS X 10.5 Server - Provides central point of administration - Manages Camera Agents - Provides Access Control & Centralized Management - Accepts files to be processed on Xgrid cluster Components

• Podcast Capture - Mac OS X 10.5 client & server application - Used to record audio, video or screen - Submit files to a workflow - Bind camera agent to server Components

• podcast command-line tool - Located at:

/usr/bin/podcast - Provides client-side functionality for recording and submitting files.

- Podcast Capture is GUI front-end for command line tool Components

• Podcast Producer Agent - Located at:

/usr/libexec/podcastproducer/pcastagentd - Process controlled by server - Responsible for recording audio & video

from attached camera % /usr/libexec/podcastproducer/pcastagentd -h

pcastagentd (version 75)

usage: /usr/libexec/podcastproducer/pcastagentd [-h] [-v] [-s] [-f file_output_path]

-h (help usage) -v (print version and application validity) -s (disables submission post-process step, enabled by default) -f file_output_path (runs an ad-hoc capture on this machine)

example: /usr/libexec/podcastproducer/pcastagentd -s -e Components

• Shared File System - Required by Podcast Producer Server - Agents use it to upload files to be processed by server - Used to store cached copies of workflows

- Used to store generated

- Supports & NFS Components

• Workflows - Heart of Podcast Producer System - A template that defines customizable tasks for encoding & publishing Components

• Workflows (More) - Branding - Intro, Extro & Watermarks, etc.

- Metadata - Course Name, Instructor Name, etc. Example Into

- Encoding - Defines formats & settings

- Publishing - Defines where content gets published

- Effects - Composer, text, transitions, etc. Example Extro Scalability

- Uses Xgrid to process workflows ✦ Software created by Apple to allow a network of Mac’s to engage in Scalability

- Supports Xsan for storage or server growth

Podcast Data Volume

Metadata Controller(s)

Podcast Producer Encoding Server(s)

Camera Agents Security Model

/usr/bin/podcast Shared Secret pcastagentd Server Admin Clients • SSL AES SSL

Podcast Producer Authentication Open Directory of users & groups Key Database Server

FTP

Xgrid Controller Shared File System SSL (owned by Xgrid user) BEEP/Kerberos Xgrid Xgrid Agents

Blog Mail Server Web Server

iTunes Registry iTunes U QTSS Publishing Security Model Advanced Encryption Standard (AES) - Camera

/usr/bin/podcast Shared Secret pcastagentd Server Admin Clients • SSL AES SSL

Podcast Producer Authentication Open Directory of users & groups Key Database Server

FTP

Xgrid Controller Shared File System SSL (owned by Xgrid user) BEEP/Kerberos Xgrid Xgrid Agents

Blog Mail Server Web Server

iTunes Registry iTunes U QTSS Publishing Security Model Secure Sockets Layer (SSL) - Server Admin & Xgrid Agents

/usr/bin/podcast Shared Secret pcastagentd Server Admin Clients • SSL AES SSL

Podcast Producer Authentication Open Directory of users & groups Key Database Server

FTP

Xgrid Controller Shared File System SSL (owned by Xgrid user) BEEP/Kerberos Xgrid Xgrid Agents

Blog Mail Server Web Server

iTunes Registry iTunes U QTSS Publishing Security Model BEEP & Kerberos - Xgrid Authentication

/usr/bin/podcast Shared Secret pcastagentd Server Admin Clients • SSL AES SSL

Podcast Producer Authentication Open Directory of users & groups Key Database Server

FTP

Xgrid Controller Shared File System SSL (owned by Xgrid user) BEEP/Kerberos Xgrid Xgrid Agents

Blog Mail Server Web Server

iTunes Registry iTunes U QTSS Publishing Default File Formats QuickTime • Audio - AAC (MPEG-4 Audio) - AMR Narrowband - QUALCOMM PureVoice (QCELP) - And many others... • Video - H.264 (aka MPEG-4 Part 10 or AVC) - MPEG-4 (aka MPEG-4 Part 2) - H.263 - DV NTSC and PAL - And many others... 3rd Party File Formats Commercial • Telestream Episode Podcast http://www.episodepodcast.com - Adds support for other popular file formats ✦ Windows Media 9 (VC-1, WMA Pro, WMV, Intellistream MBR)

✦ Flash 8 (Flash FLV & Flash SWF) & Flash 9 (H.264)

✦ WMA & MP3 (aka MPEG-1 Audio Layer 3)

✦ 3GPP & 3GPP2 3rd Party File Formats Open Source Open Source - Alternate Encoders HandBrake http://handbrake.fr/ FFmeg http://ffmpeg.org

Installing and using FFmpeg on Mac OS X Article http://stephenjungels.com/jungels.net/articles/ffmpeg-howto.html

VLC http://ffmpeg.org Options for Capture

• Podcast Capture - A GUI application that requires Mac OS X 10.5 - Allows recording of audio, video, screen and file submission - Supports selecting workflow & metadata, title & description. Options for Capture

• QuickTime Player - Requires Mac OS X 10.5 & QuickTime Pro being activated - Allows recording of audio, video and file submission - Supports selecting workflow & metadata, description. Demonstration Options for Capture

• /usr/bin/podcast - The workhorse of Podcast Producer - A command-line utility, actually a ruby script

$ less /usr/bin/podcast

#!/usr/bin/env ruby

# # Copyright (c) 2006-2007 Apple Inc. All Rights Reserved. # # IMPORTANT NOTE: This file is licensed only for use on Apple-labeled # and is subject to the terms and conditions of the Apple Agreement # accompanying the package this file is a part of. You may not port this file to # another platform without Apple's written consent. Options for Capture

• /usr/bin/podcast - Options: Listing camera’s & workflows - returns an XML .

podcast --listworkflows

podcast --listcameras

$ podcast --user pcastuser --server podcast-producer-server.scl.utah.edu --listworkflows Enter password for pcastuser: workflows name Options for Capture

• /usr/bin/podcast - Options:

Start, stop, pause and resume camera’s

podcast --start camera_name [--audio_only]

podcast --stop camera_name --metadata metadata_file_path --workflow workflow_name

podcast --pause camera_name

podcast --resume camera_name

Submit Files podcast --submit --file file_path [--file file_path] --workflow workflow_name [--metadata metadata_file_path] Options for Capture

• Web Front-End - Written in Ruby on Rails, & developed by Apple France SE ✦ https://server:8143 - Supports multiple browsers, platforms & OS versions Options for Capture

• iPhone App - PCP Remote http://harlekins.org/PodcastProducerRemote/Podcast_Producer_Remote.html - Remotely browse cameras bound to Podcast Producer - Start, stop, pause, cancel and also submit a recording to a workflow - Create audio recordings on iPhone & upload to Podcast Producer Demonstration Initial PcP Project

• Limited funding via Innovation Grant • Podcast Producer Server - 3 GHz Quad-Core Xeon w/8GB RAM - NFS Local Storage - 2 TB - Xgrid Controller • Xgrid Agents - 5 Power Mac Dual G5 w/2 GB RAM & 160 GB Storage Initial Project A/V Setup Instructor PC Instructor Mac Audio Mixer Wireless Microphone

Audio Out Audio Out Audio Out

In

Out

Out

VGA

Audio

VGA

Podcast Producer USB DV VGA Out Camera Agent

USB KVM

VGA Frame Grabber DV

Transmitter IR

FireWire

Analog Out

Infrared Transceiver Analog DV Converter PTZ Analog Camera Project A/V Setup Rev 1 Instructor PC Instructor Mac Audio Mixer Wireless Microphone

Audio Out Audio Out Audio Out

In

Out

Out

VGA

Audio

VGA

Podcast Producer USB DV VGA Out Camera Agent

USB KVM

VGA Frame Grabber DV

Transmitter IR

FireWire

Analog Out

Infrared Transceiver Analog DV Converter PTZ Analog Camera Initial Camera Agents

• Camera Agents - Two setups in MMC 1705a & 1745 - Worked w/campus shop for enclosure - Components ✦ Metal Boxes - Enclosures ✦ , 1.66GHz Intel Core Duo ✦ Cannon VC-C50i/VC-C50iR ✦ Canopus ADVC-55 Analog-to-Digital Video ✦ Epiphan USB2VGA ✦ ART PowerMIX II MIXER ✦ Audio-Technica ATW-3110 Wireless ✦ MicroSet Omnidirectional Condenser Headworn Microphone Wired for UniPak Transmit ✦ IRTrans USB Device Marriott Library Renovation Project • Caused delays in deploying Podcast Producer - Not Enough Time Very, very busy with setting new lab, classrooms & moving computers, servers, staff, etc.

- Classroom Closed & Challenges 1705a classroom closed for Advanced Studio Will be moved to 1725 classroom

- 1745 had problems with network due to construction.

- New classrooms deployment delays Marriott Library Renovation Project • New Classrooms - 1130 & 1150 Classrooms Much simpler. Tie into existing A/V system.

Use VGA output from video switcher

Use Audio output from video mixer

Audio from Output audio VGA mixer from Output video switch USB DV

VGA Frame Grabber Camera Agent Camera Agent Locations Our PcP Project - Plans

Plans Automate Recording Process Developing system to automatically start & stop recording lectures Pilot Project Continue working with staff & faculty on pilot to record, encode & publish lectures Publishing to Campus Services Work with others on campus to publish to campus services Additional Campus Camera Agents Work with others on campus to use their own camera agents Directory Services Bind server to campus directory service (LDAP or AD) Questions?