PodcastProducer.org Articles http://podcastproducer.org Podcast Producer Community admin@podcastproducer.org admin@podcastproducer.org Copyright 2010 podcastproducer.org Geeklog Thu, 27 May 2010 10:09:03 +0200 en-gb Epiphan updates their VGA2USB Drivers http://podcastproducer.org/article.php/20100527095844379 http://podcastproducer.org/article.php/20100527095844379 Thu, 27 May 2010 09:58:44 +0200 http://podcastproducer.org/article.php/20100527095844379#comments News Still no 64-bit support, but some fixes. The new version is 3.24.7, so it looks like they skipped publishing 3.24.6.<br /> Changes in 3.24.7<br /> <br /> • Support for the new revision of VGA2USB LR hardware<br /> • A number of QuickTime issues have been fixed (Actual Resolution mode, crash at certain resolutions)<br /> <br /> Changes in 3.24.6<br /> <br /> • Support for DVI video modes that are not divisible by 4<br /> <br /> You can download the driver at:<br /> <br /> <a href="http://www.epiphan.com/products/VGA2USBT-3.24.7.dmg">http://www.epiphan.com/products/VGA2U...3.24.7.dmg</a><br /> <br /> We would like to here your experiences with these updat ... Scaling your Xgrid cluster http://podcastproducer.org/article.php/20100509002518696 http://podcastproducer.org/article.php/20100509002518696 Sun, 09 May 2010 00:25:18 +0200 http://podcastproducer.org/article.php/20100509002518696#comments How To Adding more Xgrid agents to your cluster might not be always as straightforward as it seems. It might not even improve the performance, or worse, decrease performance. Here are some considerations and instructions on when and how to scale your Xgrid cluster. '''When should you expand your Xgrid cluster?''' Simply adding an Xgrid agent doesn't make your movies being encoded faster. You have to consider parallel tasks in your workflow. For example, the 'publish to iTunes U' task will have to wait until the encoding task is finished, so these can tasks can not run in parallel. The different encoding tasks all wait for the 'intro' task to be finished and will then run in parallel. The more parallel tasks your have in a workflow, the more efficient your Xgrid cluster can be used. Another way of achieving parallel jobs is by submitting multiple Podcast Producer jobs at the same time. A single task will not run faster when you have more Xgrid agents available. When calculating how many Xgrid agent you want to use, you will have to know how long your Podcast Producer workflows take to complete, how many jobs you will be submitting and how fast you want the material to be available after submitting. The speed of the workflow you can measure very accurately by running some tests. Make sure you test with different length recordings to get a good average. Also, you will need to maximize the CPU utilization if you want to know how many jobs a single Xgrid agent can run in a certain amount of time. To do this you will need to submit more jobs simultaneously. You could, for example, submit 20 jobs to Podcast Producer and measure the time for one Xgrid agent to finish all the jobs and divide the total time by 20 to get the time per job. To calculate your cluster: ''( T x J ) / M = A'' ''T = time for one job to complete'' ''J = amount of jobs simultaneously (at peak time)'' ''M = maximum time for material to be available'' ''A = Xgrid agents needed'' Of course this is only a ball park number, but it's a starting point. If your using one XServe for measuring speed and your adding a Mac pro or iMac to the cluster, these numbers will differ. '''What kind of machines should you add?''' What does it matter? Adding any machine is surely better than not adding any, right? Consider the following situation: you just added a low-end Mac mini to help out with the encoding. At peak times it picks up some jobs when the first Xgrid agent is at its max capacity. Now you only submit two jobs: one short recording that is being picked up by the first Xgrid agent and one long recording that needs to be processed as fast as possible that is now being picked up by the Mac mini agent. You see the problem here? Now your important long job is stuck on the Mac mini and this could take a while. In the end it would have been faster for this job not to have the Mac mini around. When adding machines to your cluster take into account that they are not just 'helping out' when it gets busy, they are taking on complete tasks and will not return until they are done. So make sure that the machines you add are up for the job. There are ways of scoring machines for particular tasks, so Xgrid can decide intelligently where the jobs should go, but that is out of the scope of this article. '''NFS or Xsan?''' All the Xgrid agents in a cluster will need to access the same storage to be able to run your jobs. Podcast Producer 2 has made it very easy by automatically adding an NFS share for the Podcast Producer shared volume. Over a dedicated Gigabit ethernet this is fast, but only unlimitedly scalable. Your Podcast Producer server's (or NFS server's) network interface is the bottleneck here. After 6 or 7 agents (depending on your network) performance will not go up anymore. The costs of implementing an Xsan storage will be considerably higher, but it brings great benefits. Access to the storage will be a lot faster, with standard two 4 Gb Fibre channel connections on a Fibre Channel card you will have very fast throughput. The storage is scalable, so you can add storage to the volume, without migrating all the data. Adding Xgrid (Xsan) agents will not decrease the performance like with NFS. And last, but not least, with Xsan you can configure your Podcast Producer and Xgrid services to be redundant, so you will not have a single point of failure here. Adding Xsan to your Podcast Producer environment has great benefits, but will also make system maintenance more complex. Also take into account that when you want to use Xsan, you are limited to using XServe or Mac pro machine, because these are the only Mac machines that take the necessary Fibre Channel cards. Please check out http://www.xsanity.com/ for more information and support on Xsan. '''Adding Xgrid agents''' Once you have decided how, what and how many agents you want to add, we can start adding them to the cluster. Make sure that all software that you might need in your workflows is installed on the agent and that the agent has the same system version as your Xgrid controller/Podcast Producer server. You can use both Mac OS X Server and client as long as you're not using any server-specific software in your workflows. All the binaries used in a standard Podcast Composer workflow are available on both Server and Client. If the agent you want to add is a server the steps are fairly simple. First bind your server to the Open Directory server that the Podcast Producer server is also bound to. In the default installation this is also the Podcast Producer server. In Server Admin you go to Xgrid and click on the 'Configure Xgrid Service...' button. In the following steps make sure you select 'Join a grid' and fill in the required information. Server Admin will configure this server as an Xgrid agent and your done. When you are connecting a Mac OS X Client you will need to do a few more steps. • First bind the machine to the Open Directory server using System Preferences - Accounts - Login Options - Network Account Server. • Once you have added the OD server, you will need to bind the machine. Click on the 'Edit' button in System Preferences - Accounts - Login options. Then select 'Open Directory Utility...', this will open the Directory Utility app. Double-click on 'LDAPv3', select your OD server in the list and click 'Edit'. Now click on the 'Bind' button and fill in your Open Directory details. • Once the computer is bound to OD you can go to System Preferences - Sharing and select 'Xgrid sharing'. Click on 'Configure' and select your controller. Make sure the Authenticated Method is set to 'Single Sign on'. Without single sign on, your xgrid might work, but Podcast Producer won't be able to run jobs on the agent. • Start Xgrid sharing by ticking the box. On the Xgrid controller you should now see the new Xgrid agent in Xgrid Adm ... How to setup PcP2 with Active Directory http://podcastproducer.org/article.php/20100429001851465 http://podcastproducer.org/article.php/20100429001851465 Thu, 29 Apr 2010 00:18:51 +0200 http://podcastproducer.org/article.php/20100429001851465#comments How To If you've ever tried to setup Podcast Producer or Podcast Producer 2 and found yourself dropping f bombs left and right, you're not alone. Although PcP2's documentation clearly states that it works with Active Directory, there is no clear way on how to get the two working together. We have this working at Northwestern University's School of Education and Social Policy. http://www.sesp.northwestern.edu/ Step 1. Make sure you have the DNS entry that you desire setup and ready to go prior to the install. Also, forward and reverse records must be working perfectly. Please confirm the DNS record is correct by running sudo changeip -checkhostname You should see something similar to the following: podcast (192.168.1.2) Primary address = 192.168.1.2 Current HostName = podcast.myorganization.org DNS HostName = podcast.myorganization.org The names match. There is nothing to change. dirserv:success = "success" Step 2. Insert the Snow Leopard Server disk and reboot off the DVD. Format the drive. Install Snow Leopard Server. Step 3. Upon reboot, click through the defaults, setup your IP and use your active directory domain as your search base, i.e myorganization.org. Be careful NOT to setup either a bind to AD or to setup OD as a master server. Click custom setup and uncheck binding to AD or setting up an OD master server. Instead, just select "Manually Setup Users and Groups". Finally, run Software Update and apply all available patches. Step 4. When the install is complete, and the updates have been applied, bind to AD. Next, in the Terminal run sudo dsconfigad -enablesso to enable sign-sign on. Next, run the command serveradmin settings teams:enableClearTextAuth = yes ) This allows clear text authentication to AD. This must be done because of a limitation in the authentication of PcP2 to AD. (It's a good idea to login to the server with your an Active Directory account, open the Terminal and run klist -ek to verify your Kerberos credentials. Step 5. Open Server Admin from the Server Tools folder inside of Applications. Connect to your remote host. Enable Mail, NFS, OD, PCP, QT Streaming, Web and XGrid Step 6. Setup Open Directory. - Next to role: Connected to another directory, click Change. - Remain connected to AD and setup OD master - Set your LDAP admin name to be the same as your local Admin account. This isn't required, however, I've found it easier to keep the two the same. Click through the defaults until you finish. - LDAP search base is the AD record of the machine i.e. - dc=podcast,dc=myorganization, dc=edu - Click on Info and make sure that Kerberos is not running. This shouldn't be running because we are using AD's Kerberos realm. Step 7. Next we will setup NFS - Share Library/PodcastProducer (THIS DIRECTORY DOES NOT EXIST UNTIL YOU CLICK ON THE PODCAST PRODUCER SERVICE, THEN CLICK CONFIGURE. DOING THIS WILL CREATE THE DIRECTORY. DO NOT DO ANYTHING MORE THAN MERELY START THE CONFIG PROCESS TO INVOKE THE CREATION OF THE DIRECTORY) - Hit share - Enable Automount - Use LDAP domain - Share over NFS - Map to Shared Library folder (use the LDAP admin account to bind) - Protocol options - Make sure afp, smb and ftp are off. - NFS on: Select Export this item to a virtual interface/NIC - Export to a particular subnet that what to have access. - Map root to root - Start NFS Step 8. Configure XGrid - Run setup assistant - Host a grid - Bind with an AD account. This should be a regular domain account with no special privileges. Step 9. Next to last step, we will setup the Podcast Producer service. - DO NOT CLICK CONFIGURE PP. Instead, click on Settings and change Podcast Library to /Library/PodcastProducer/Shared - Xgrid username - Standard Domain user. Should be the same as what was used in the XGrid section of this document. - Change Admin shortname to the short name of your admin account - Start the Podcast Producer Service Step 10. In this step, we will configure the Web portion, which is the wiki/blog service - Click on Sites - In the hostname field, name the site default - Click on the duplicate button (the button that looks like two over lapping windows) - Change the host name of the duplicate to the FQDN of the website, then change the port to 443 - Click back on the "default" web entry. Click on Web Services. Make sure Wikis, Blogs, Calendars and Mail are all turned off. Click on Aliases. Click the + button on URL Aliases and Redirects. Choose RedirectMatch for the Type. The pattern should be ^(.*)&#36; The Path should be: https://podcast.myorganization.org/&#36;1 - Click the secure web host entry. (the one with the FQDN and is secure on port 443). Click Web Services. Make sure that Wikis, Blogs and Calendar are all checked. - Finally, start the Web service. Step 11. Configuring the Mail Service. - Click Settings - Click on Relay - Check the option to Accept SMTP relays only from networks that your trust. The only entries permitted to relay should be 127.0.0.0/8 (localhost) and any other network that has access to your Podcast Producer service. - Start the Mail service. Step 12. Configure QT Streaming Service - Start Quicktime Streaming service General trouble shooting: PcP2 is highly dependent on XGrid. XGrid seems to be the Achilles Heel of PcP2. If you are submitting jobs successfully and find that that XGrid is failing, you can try deleting krb_cc in/var/pcast/serve/and then restarting the PcP serv ... Setting up a Podcast Producer server http://podcastproducer.org/article.php/20100424105545942 http://podcastproducer.org/article.php/20100424105545942 Sat, 24 Apr 2010 10:55:45 +0200 http://podcastproducer.org/article.php/20100424105545942#comments How To We have been covering more advanced topics up until now, but there have been a few requests for a basic description on how to setup a Podcast Producer server. For the purpose of this article I a.m assuming that you don't have any experience with Podcast Producer, but that you do have a basic understanding of Mac OS X Server and network administration.<br><br> The Apple developers working on Podcast Producer have done an amazing job in making the setup extremely easy in Podcast Producer 2. Where you had to configure all the different services in Podcast Producer 1 yourself, you can be up and running with Podcast Producer 2 with just a few clicks.<br><br> Lets start with a clean server install, you will need to have a fixed IP address and a DNS hostname. This is important, you will need a fully qualified domain name for your server with a reverse record. If you don't have this in your network already, you will need to set this up on your Podcast Producer server. I cannot stress this enough: If DNS is not perfect, you WILL run into trouble.<br><br> I am assuming that you have an IP address and a hostname supplied by an existing DNS server i.e. 192.168.1.10 / podcast.mycompany.com<br><br> Go through the installation and basic setup steps of your newly installed OS X Server. Don't select any services to configure from the wizard, not even Open Directory. Just give it the IP (+network info) and hostname, thats all. Once you have the server running, install any update that might be waiting for you. This is the best time to bring your system completely up to date, you can't mess things up yet.<br><br> Before we start configuring the server, we are going to check if the DNS records are working like they should. In Terminal.app type the following:<br><br> <code>&gt;hostname</code> (this should return http://podcast.mycompany.com)<br><br> <code>&gt;host podcast.mycompany.com</code> (this should return 192.168.1.10)<br><br> and<br><br> <code>&gt;host 192.168.1.10</code> (this should return podcast.mycompany.com)<br><br> Of course you will be using your own IP and domain name for this. If these results don't match, stop here! Do not go any further, because you will run into trouble later. Fix your DNS settings and make sure everything is ok before you continue. As an alternative to these commands, you could also use the built-in changeip tool to perform these checks:<br><br> <code>sudo changeip -checkhostname</code><br><br> Once you are sure that the DNS results are OK, you can continue. Now comes the fun and easy part, setting up Podcast Producer. Thats right! No setting up Open Directory or Xgrid madness, just straight to the fun bits. Open up Server Admin and go to the Server &gt; Settings &gt; Services Tab. Select 'Podcast Producer' and hit 'Save'. Now the Podcast Producer service is in the services list and you can select it there. Select the 'Overview' tab and click the button 'Configure Podcast Producer'.<br><br> <img width="620" height="429" src="http://podcastproducer.org/images/articles/20100424105545942_1.png" alt=""><br><br> Going through these steps in the wizard will setup an Open Directory service, Xgrid, NSF and Podcast Producer.<br><br> <b>Open Directory</b><br> If no Open Directory server is configured, the Podcast Producer setup wizard will automatically configure one. It will use the information it gets from DNS about its hostname (see, I told you this was important) to setup Open Directory and Kerberos. It will add a user to the directory that will be used for xgrid. All tasks performed by Podcast Producer in Xgrid will be run with the rights of this user. Kerberos is also setup as part of this step and it is used to authenticate the Xgrid clients. Without Kerberos, Podcast Producer will start, but jobs will fail.<br><br> <b>Xgrid</b><br> The server is configured as an Xgrid controller AND agent. This way you will have an Xgrid cluster with at least one agent in it. The wizard also configures an NFS share and adds an automount record to the directory info. This used to be a bit of a pain on Leopard Server, but know it happens automagically.<br><br> <b>Podcast Producer</b><br> Finally Podcast Producer is set up, with as default path for the Shared Filesystem /Library/PodcastProducer/Shared. The Xgrid and xgriduser info is configured and the service is started. Now you have a running Podcast Producer server<br><br> <b>Your first recording</b><br> You can now use Podcast Capture on any Snow Leopard system to make or submit a recording. Lets first make a user on the server that you will use for submitting podcasts. Open Workgroup Manager and make sure that you are connected to the LDAP directory<br><br> <img width="296" height="177" src="http://podcastproducer.org/images/articles/20100424105545942_2.png" alt=""> <br><br> Add a new user and fill in the shortname, Full Name and password. For good measure, also fill in the user's email address in the Info tab.<br><br> To make a recording, open Podcast Capture on a computer that has an iSight or camera attached and is connected to the same network as the server. You can find Podcast Capture in /Applications/Utilities. Any iSight, DV-camera or UVC-compatible USB camera will do. Alternatively, any camera that has it's own Quicktime plugin (like the Epiphan *2USB framegrabbers) should also work. Give Podcast Producer the server address and the credentials of the user you just added to the directory. You can now make your recording. When you are creating test recordings (to test a workflow for example) it is important to make sure the recordings are at least 10 seconds long. The default workflows use an intro and if your movie is too short the transitions between the intro and main content will fail.<br><br> <b>Binding a camera</b><br> A bound camera can be controlled (start/pauze/stop) from another computer using Podcast Capture, the command-line tool pcast or the Podcast Producer web interface. Binding a camera sets up a trust between the client computer and the Podcast Producer server. You will need admin credentials for the client computer and the server to be able to bind it to the server.<br><br> Open Podcast Capture and go to Preferences &gt; Audio/Video. Select the 'Start Sharing...' button and give your local credentials, after that fill in a camera name and server address/credentials and select 'Start Sharing'. Now the client computer is bound to the server and you can select it as a camera in Podcast Capture or the Podcast Producer web interface. Podcast Capture does not have to be running on the remote camera computer.<br><br> <b>Monitoring Xgrid jobs</b><br> In the /Applications/Server folder on your server you will find the application Xgrid Admin. You can use this application to monitor the state of your Xgrid cluster and jobs. Once you have authenticated with Directory Administrator credentials select your Xgrid (there should be only one) and you will be able to see a list of xgrid agents connected to the xgrid. By default Xgrid Admin only reports half the amount of processors available then are in the system. This is to regulate the amount of tasks that are run simultaneously on each system. So don't be alarmed that Xgrid Admin shows only two available processors in a 4 core machine, this is by design.<br><br> <img width="620" height="339" src="http://podcastproducer.org/images/articles/20100424105545942_3.png" alt=""> <br><br> The status of the Xgrid agents are indicated by colors:<br><br> Colorless = controller or agent is offline<br> Green = agent is working<br> Yellow = agent is available but not running<br> Red = agent is unavailable<br><br> Under the tab 'jobs' you will be able to see a list of all jobs in the queue. All jobs that are running or failed will stay in this list, the jobs that succeeded will disappear from the list after a short time.<br><br> The status of the Xgrid jobs are also color coded:<br><br> Colorless = job is pending<br> Gray = job is submitting<br> Green = job is running<br> Red =job is failed or canceled<br> Blue = job is complete<br><br> Double-clicking on a job in the list reveals a list of tasks that have been submitted to the grid as part of that job. When you are troubleshooting a failed job, this will show you which task of the job failed. You can get more detailed information about a failed job from the logs. Podcast Producer 2 writes out a special log when a job failed in /Library/Logs/pcastserverd/DiagnosticReports/. In the log file Podcast Producer writes all sdout and stderr returned by the tasks that ran as part of the job. This will hopefully give you a good idea as to why the job failed.<br> ... Deploying Podcast Producer 2 in the Humanities Division at the University of Chicago http://podcastproducer.org/article.php/20100409220812147 http://podcastproducer.org/article.php/20100409220812147 Wed, 14 Apr 2010 22:08:12 +0200 http://podcastproducer.org/article.php/20100409220812147#comments How To We have deployed a <a href="https://coral.uchicago.edu:8443/display/humcomp/Podcast+Producer+Overview">custom video and audio recording and distribution system</a> based on Podcast Producer 2 in the <a href="http://humanities.uchicago.edu/">graduate division of the Humanities</a> at the <a href="http://www.uchicago.edu">University of Chicago</a>. Unlike many other organizations using Podcast Producer, we do not automate the recording of classes. Our system is primarily used to make ad hoc recordings of lectures and presentations and as a way to disseminate video material from faculty research projects. Additional goals of our system are to responsibly collect archival metadata and media for each recording and to ease the distribution of HTML5 compatible video and audio via our primary CMS (Drupal &amp; WordPress), static websites, mobile devices and custom RSS. <br><br> Since we wanted to leverage Podcast Producer as much as possible to meet these goals we tried to keep our changes to the standard workflow to a minimum. Media is still forwarded to the system as before using (preferably) the bundled screen-capture feature in QuickTime X on the Mac or the Podcast Capture web interface for Windows. Following the upload we require our users to fill out a web form to collect additional metadata about their movie. Once this is done we provide a page with links to their MPEG-4 and Ogg encoded media in multiple sizes, custom embed codes which can be dropped into WordPress, Drupal and static websites, links to dynamically generated pages hosting their media, a custom RSS feed and an opportunity to revise their current metadata, if needed. Please see <a href="https://coral.uchicago.edu/display/humcomp/Podcast+Producer+Samples">this page</a> for sample video and audio. The sections below provide more detail on each of these features. <br><br> <b>Encoding</b> <br><br> The Library feature introduced in Podcast Producer 2 gave us a chance to distance ourselves from the tedium of custom workflow design. Rather than modify workflows by hand to make calls to external scripts, as we did in an earlier Podcast Producer implementation, we periodically access media and metadata directly from the Podcast Producer 2 Library feeds for further processing. In our current system, any workflow that publishes to the Library with an "Apple TV" video or an "Audio" encoding will be automatically re-encoded and submitted to our metadata system. The primary benefit of this system is that we can continue to use Podcast Composer (a workflow once edited by hand can no longer be edited by Podcast Composer). Podcast Composer lets us easily create 'branded' workflows with specific intro and outro sequences and watermarking. Below is a flowchart of the submission and encoding process for a video: <br><br><br> <a href="https://coral.uchicago.edu/download/attachments/28246345/humcast2-flowchart.png">Encoding Flowchart</a> <br><br><br> For video content, we encode two versions: a "small" (max. 320x240) and a "large" (max. 640x480) version, both targeted for inline playback (the latter version is also suitable for podcasts) . For each version, we encode to MPEG-4 H.264 and Ogg Theora. The H.264 video is encoded by calling pcastaction encode on the source video. The ogg video is encoded by calling ffmpeg2theora on the previously encoded H.264 of the same version (web or podcast). A similar process is used for audio. As part of the encode process, .info files are created containing technical metadata about the various formats (height, width, size). The .info files are later parsed and the technical metadata submitted to our database. Finally, we keep an additional "Apple TV" encoded 720p/24fps source video for archival purposes. <br><br><br> <b>Metadata Collection Interface</b> <br><br> After the encoding process completes, the submitter is notified by email and directed to a form to gather additional metadata on their recoding. We are interested in a number of different attributes of the recording, but we have tried to make our metadata cleanly map onto "Dublin Core" (http://dublincore.org/). Below is a list of the fields we capture: <br><br> <ul> <li><b>Title</b> This is initially set to what was submitted with the recording</li> <li><b>Description</b> This is initially set to what was submitted with the recording</li> <li><b>Owner</b> If a submitter is a member of mutliple Open Directory podcast groups, they can assign ownership to one of these groups.</li> <li><b>Department/Sponsor</b> The department, center or group which sponsored the recording</li> <li><b>Subject/Keywords</b> These keywords make it into the itunes-compatible RSS feed we generate</li> <li><b>Date of Recording</b></li> <li><b>Location</b> Defaults to Chicago, IL</li> <li><b>RSS Series</b> Allows the user to assign a recording to be included in a named RSS feed</li> <li><b>Language</b> Primary language of the presentation (pop-up selection)</li> <li><b>Publisher</b> The University of Chicago</li> <li><b>Rights</b> Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License</li> </ul> <br><br> <b>Distribution</b> Content is distributed through a number of different systems. We generate an iTunes-compatible RSS feed that also contains additional Dublin Core metadata fields. This feed can be subscribed to in iTunes, another feed reader, or potentially act a source for automatically populating iTunesU or other applications. <br><br> We allow our users to embed their content in a blog or other website provided by <a href="http://humanities.uchicago.edu/facultystaff/#humcomp">Humanities Computing</a> using embed tags generated by the metadata collection interface. Below is a screenshot showing HTML and WordPress/Drupal embed tags, as well a Preview page and direct links to the media. <br><br><br> <a href="https://coral.uchicago.edu/download/attachments/28246345/distribution.png">Podcast Manager Screenshot</a> <br><br><br> The embed code we have created is an HTML5 video (or audio) tag with fallback to flash for browsers that do not support HTML5 (*cough* Internet Explorer *cough*). Chrome and Safari will use the video/mp4 version, while Firefox will use the video/ogg version. Internet Explorer, or older versions of FireFox and Safari will use the flash <a href="http://www.longtailvideo.com/players/">JW Player</a>. Below, you can see the structure of the tag: <br><br> <pre><code> &lt;video width='320' height='180' controls='controls'&gt; &lt;source src='http://...mp4' type='video/mp4' /&gt; &lt;source src='http://...ogv' type='video/ogg' /&gt; &lt;embed src='http://..player.swf?image=http://..png&amp;amp;file=http://..mp4&amp;amp;q=r.swf' type='application/x-shockwave-flash' allowscriptaccess='always' allowfullscreen='true' width='320' height='180' /&gt; &lt;/video&gt; </code></pre> <br><br> <b>Challenges/Future</b> <br><br> We have approximately 150 audio and video recordings currently in our system. The number of unique users is still fairly low, but the system has proven useful. One of the major challenges we've faced is convincing users that it is worth their time to enter the additional metadata we request. We do require at least an initial pass at the form before we present the user with their distribution options, but this alone can't enforce the quality of the entered metadata. Another second major challenge we've faced is the complexity of the testing regime for the embed code. <br><br> Our code is licensed under <a href="http://www.opensource.org/licenses/ecl2.php">Educational Community License, Version 2.0</a>. We are happy to share our code, though it will likely require fairly significant customization for your environment. Please contact elijah (AT) uchicago (DOT) edu if you are interested in our code or have further technical questions about our customizati ... Dynamic Workflow Chaining (10.6.3) http://podcastproducer.org/article.php/20100407221014160 http://podcastproducer.org/article.php/20100407221014160 Wed, 07 Apr 2010 22:10:14 +0200 http://podcastproducer.org/article.php/20100407221014160#comments How To For Stanford-School Of Medicine MediaFlow project we needed to chain Podcast Producer workflows dynamically,i.e. making calls to specified workflows from other workflows. This article describe how to reproduce this process (10.6.3)<br> <strong>Disclaimer</strong>: If you are not familiar with the command line,property lists and Podcast Producer workflows (e.g. pcastaction)you might find this article challenging, but then you probably won't have any interest for it anyway =) <br><br><strong>Objective</strong>: Have a master_workflow.pwf call a second_workflow.pwf where second_workflow is choosen from a pool of existing workflows already uploaded in Podcast Producer Server.<br> <br><strong>A) master_workflow modifications</strong> <br>Edit the template.plist in the master_workflow bundle <pre><code> vi /path/to/master_workflow.pwf/Contents/Resources/template.plist </code></pre> <br> This is the XML needed in your taskSpecification block in order to chain the workflows <br> caveats: --prb and --input are Apple provided Dynamic properties, be sure to understand what they point to. <br> Watchout for Task Dependencies (DependsOnTasks) <pre><code> &lt;key&gt;taskSpecifications&lt;/key&gt; &lt;dict&gt; &lt;key&gt;dynamic-submit-workflow&lt;/key&gt; &lt;dict&gt; &lt;key&gt;arguments&lt;/key&gt; &lt;array&gt; &lt;string&gt;workflow&lt;/string&gt; &lt;string&gt;--prb=&#36;&#36;GLOBAL::Library Bundle Path&#36;&#36;&lt;/string&gt; &lt;string&gt;--input=&#36;&#36;Content File Name&#36;&#36;&lt;/string&gt; &lt;string&gt;--workflow=&#36;&#36;workflow_1&#36;&#36;&lt;/string&gt; &lt;string&gt;--user=PODCAST_USER&lt;/string&gt; &lt;string&gt;--password=PASSWORD&lt;/string&gt; &lt;/array&gt; &lt;key&gt;command&lt;/key&gt; &lt;string&gt;/usr/bin/pcastaction&lt;/string&gt; &lt;/dict&gt; &lt;/dict&gt; </code></pre> You also need to specify your property in the UserRequirements block. In this example it'd be: <pre><code> &lt;key&gt;userRequirements&lt;/key&gt; &lt;array&gt; &lt;string&gt;workflow_1&lt;/string&gt; &lt;/array&gt; </code></pre> Don't forget to upload/re-upload your modified master_workflow <pre><code> &#36; &gt; pcast --installworkflow --path /Path/to/master_workflow.pwf &#91;--overwrite&#93; </code></pre> <strong>B) Generate a plist to use when submitting the file(s) to be processed by the chained workflows.</strong><br> In our case we generate this file dynamically, hence the title of the article (doh!). <pre><code> vi /path/to/user_metadata.plist </code></pre> This is what you should have in your plist <pre><code> &lt;dict&gt; &lt;key&gt;workflow_1&lt;/key&gt; &lt;string&gt;NAME_OF_THE_WORKFLOW_AS_IT_APPEARS_IN_SERVER_ADMIN&lt;/string&gt; &lt;/dict&gt; </code></pre> Note that unlike the "podcast" command the "pcastaction workflow" command needs to be fed the podcast *name* and *not* its UUID. <br><br><strong>C) Use the plist generated in B) to start your workflows chain with the podcast cli tool.</strong><br> Note that unlike the pcastaction workflow command the podcast cli tool requires the workflow UUID. <pre><code> &#36; &gt; pcast --submit --file /path/to/file/to/submit --workflow_uuid master_workflow_UUID --metadata /path/to/user_metadata.plist</code></pre> <strong>Recommended Reading</strong><br> <br>Podcast Producer : Writing Actions <br> http://developer.apple.com/mac/articles/server/writingpodcastactions.html <br> Podcast Producer Administration <br> http://images.apple.com/server/macosx/docs/Podcast_Producer_Admin_v10.6.pdf <br> <strong>Notes</strong><br> -We successfully chain 3 workflows but there is no reason why you shouldn't be able to chain more <br>-When in trouble check logs...including /Library/Logs/pcastserved/DiagnosticReports <br>-Watch your chained workflows progress in Xgrid Admin. <br>-To see the syntax and options to chain workflows <pre><code> &#36; &gt; pcastaction help workflow </code> ...</pre> Mac OS X Server 10.6.3 available http://podcastproducer.org/article.php/20100329233315265 http://podcastproducer.org/article.php/20100329233315265 Mon, 29 Mar 2010 23:33:15 +0200 http://podcastproducer.org/article.php/20100329233315265#comments News Apple has released updates for Mac OS 10.6 Server and Client. It took a little while, but they are finally available for download. It's good to see that there are some Podcast Producer related fixes and improvements. • stability and reliability of Podcast Capture remote camera recordings • submitting content into Podcast Producer using mv and cp command-line tools • preventing time drift when capturing dual-source video in Podcast Capture • using Internet Explorer with web-based calendar, wiki, email rules and password reset • previewing and capturing dual-source video in Podcast Capture You can find more information and download the updates at: Client: http://support.apple.com/kb/DL1018 Server: http://support.apple.com/kb/DL1 ... podcastproducer.org moved server http://podcastproducer.org/article.php/2010030821171334 http://podcastproducer.org/article.php/2010030821171334 Mon, 08 Mar 2010 21:17:13 +0100 http://podcastproducer.org/article.php/2010030821171334#comments News The site was down today for a short time, due to a little struggle with new hosting. <a href="http://Podcastproducer.org">http://Podcastproducer.org</a> is now moved and up and running again on a new server. Sorry for the downtim ... Using Epiphan devices with 64-bit Macs http://podcastproducer.org/article.php/20100119133258505 http://podcastproducer.org/article.php/20100119133258505 Tue, 19 Jan 2010 13:32:58 +0100 http://podcastproducer.org/article.php/20100119133258505#comments News Epiphan has a range of devices for screen capture compatible with Quicktime. They work like regular Quicktime input devices, so you can use them with Podcast Capture.<br /> The Epiphan devices come with a 32-bit Kernel extension. If you are using an application that is walking the 64-bit path, you will not be able to use the Epiphan device as input within that application. You can see this with Quicktime Player. If you open Quicktime Player and you start a new recording, you will not be able to see the Epiphan device. If you now close Quicktime Player, select it in the Finder and open the info box (Command-i), you can check a button 'Open in 32-bit mode'. If you now open Quicktime Player again and start a new recording you will be able to see the Epiphan device.<br /> <br /> Podcast Capture runs in 32-bit, so you won't have any trouble with that application using the Epiphan devices. If you want to bind the computer to the Podcast Producer server you have to be a little bit careful. Again, using the Podcast Capture application it should work because this app walks the 32-bit path. If you are trying to use the command line 'pcast' way, you will run into trouble. Using pcast, it will try to use the 64-bit frameworks, so it won't be able to see your Epiphan device. The solution is pretty simple, just use Podcast Capture to bind your camera.<br /> <br /> If you find it important that Epiphan comes with a 64-bit version of their driver, please let them know at www.epiphan.c ... Quartz Composer Fundamentals and Podcast Producer Webcast http://podcastproducer.org/article.php/20100113132207745 http://podcastproducer.org/article.php/20100113132207745 Wed, 13 Jan 2010 13:22:07 +0100 http://podcastproducer.org/article.php/20100113132207745#comments News <a href="http://Maclearning.org">http://Maclearning.org</a> will host a webcast on Quartz Composer Fundamentals and Podcast Producer. The webcast will be presented by Bob Bajwa, Training Development Executive Apple Canada Inc. For more information go to <a href="http://maclearning.org/userpage.php?page_id=14">http://maclearning.org/userpage.php?page_id=14 ...</a>