Category Archives: Updates

We’re Joining the SOPA/PIPA Blackout will join other organizations including the Internet Archive, Mozilla Foundation, and the Wikimedia Foundation in suspending core services for all EST hours on January 18th, 2012 to protest consideration of Stop Online Piracy Act (“SOPA”) and PROTECT IP Act (“PIPA”), two bills under active consideration in the U.S. Congress.  During this time our main page will redirect to Electronic Frontier Foundation’s home page which provides relevant background information on the issue and helpful call-to-action instructions.

However, we will have real-life presence at an Emergency NY Tech Meetup outside the Manhattan offices of U.S. Senators Schumer & Gillibrand.  Watch for User:GChriss, probably with a video camera in hand.

Our participation in the blackout is for the same reasons outlined by Kat Walsh, a Trustee of the Wikimedia Foundation:

“We depend on a legal infrastructure that makes it possible for us to operate.  And we depend on a legal infrastructure that also allows other sites to host user-contributed material, both information and expression.  For the most part, Wikimedia projects are organizing and summarizing and collecting the world’s knowledge.  We’re putting it in context, and showing people how to make to sense of it.

But that knowledge has to be published somewhere for anyone to find and use it.  Where it can be censored without due process, it hurts the speaker, the public, and Wikimedia.  Where you can only speak if you have sufficient resources to fight legal challenges, or if your views are pre-approved by someone who does, the same narrow set of ideas already popular will continue to be all anyone has meaningful access to.”

Many of our indexed meetings contain elements of “fair use” – a short audio segment, an illustrative graphic, or video clips embedded within presentations and discussions.  Inclusion of these elements as commentary/criticism on underlying ideas are classical examples of “fair use” provisions in the copyright act.  If SOPA and PIPA became law – a very real possibility – we would become vulnerable to politically-motivated takedowns – or even attacks on our existence – on material deemed as politically inconvenient.

Finally, we’re a small project that very much welcomes donations to keep us running.

Fixing Broken Functionality

From approximately 5-October until 23-November, in-browser video playback in OMwiki was completely broken.  Visitors were greeted with a “Video playback is broken at the moment. :-/” top-posted message, which leads to poor first impressions and undermines our overall credibility.  So, what happened and how can it be avoided in the future?

Click here to skip the tech breakdown.

What happened?
All video currently hosted on is encoded in the Ogg Theora format and is stored in the /archives subdirectory.  Currently, there is no content delivery network (CDN) in place, so all video originates from a single server.  This server utilizes oggz-chop, which is part of the oggz toolset — it’s one of several programs that manipulate Ogg files in helpful ways.  oggz-chop is a binary program that returns the very beginning of an Ogg Theora file proceeded immediately by the section of interest indicated by a query string appended to the URL request (/archives/video.ogv?query_string).  The query string contains the requested start/end time, and makes possible user-friendly jump-to-this-time URLs.  Thus, we achieve intelligent seeking.

Because oggz-chop is a binary program, it is sensitive to changes in the host operating system.  Sometime early October, our hosting provider migrated all shared hosting plans to a new compute cluster and operating system.  The migration was unannounced as there is a general expectation that shared hosting plans will not run executable binaries; most customers would not have noticed a difference.  Compiling natively on both the old and new clusters is disabled for security.

How was it fixed?
The new operating system lacked the shared library, a mandatory dependency.  Both libogg and oggz-chop where compiled on a binary-compatible machine and the resulting binaries were copied over.  This is a mostly-blind trail-and-error process.

I unsuccessfully attempted to create a single binary that contained both libogg and oggz-chop via static linking.  I found alternative route by including a runtime search path (export CFLAGS='-Wl,-rpath=/home/openmeet') such that oggz-chop could locate in a non-system directory.  Tweak some variable names in cgi.c, and voilà!

#define DOCUMENT_ROOT “/home/openmeet/public_html”
. . .
getenv (“PATH_INFO”); –change-to–> getenv (“REDIRECT_URL”);

[Post truncated for brevity 11-June-2012]

Known Issues: A Hacking Roadmap

Soo… welcome to the Announcements blog! I’m excited to introduce this blog as a venue that will provide project updates, context on OMwiki’s internal structure, and a discussion forum for other issues surrounding

To start, the following email summarizes many of the known issues with scalability.  If these issues can be properly addressed, I’m hoping that the amount of video indexed and delivered by can be increased by a few orders of magnitude.

If you can help tackle these issues, or know somebody who can, please leave a comment either here or on my talk page.

Thanks!  -George

From:       “George Chriss” <GChriss -at->
Date:       Wed, July 21, 2010 6:12 pm
To:       “SFC Board” <board -at->
Cc:       metavid-l -at-

Video publication is a very manual process; production workflow is a process that definitely needs to be hacked.  The following is a list of things that would help, and that I need help with:

A) Recording
I’ve taken prosumer-grade cameras about as far as possible —
currently, I’m using a Canon FS22 with 2×32GB flash.  More expensive cameras don’t really help: they become cost-prohibitive in terms of scale, are less discrete, a pain to travel with, and don’t offer much advantage in visual quality at web resolutions.  The largest shortcomings of the FS22 are that it requires ‘modcopy‘ to fix 16:9 aspect ratios during file-import, long recordings are split across multiple files, there is an accumulative as-recorded time drift vs. real-world time, and the mic-in preamp often picks up line noise with XLR sources (impedance issues?).  Other than that, it’s a pretty good

I submitted a CC Catalyst application to fund hacking of Elphel
open-source, open-hardware cameras
This will be a really fun project if funded!

The Elphel cameras could be set to request the event of the event title, speaker names/affiliations, CC license, “who’s speaking right now?”, etc., as this takes time to dig up after-the-fact.

There’s also a lot of work to be done developing reference
documentation for properly-equipped meeting spaces.  I’ve started sketching out arrangements of in-room equipment (OMwiki:Gear), and more equipment documentation is on it’s way.

B) Editing
Cinelerra is a mess, but it’s the only viable way to edit video
professionally using all-FLOSS software.  The majority of editing time on non-XLR recordings is spent on sound cleanup, as was the case with FCX.  The remainder of the time is spent drafting graphic title slides (GIMP), scanning for sections that should be removed, and, if necessary, manually re-syncing audio from a secondary audio source (can Audacity do this?).

I’m looking forward to trying out VideoLAN Movie Creator or,
eventually, Lumiera, but I haven’t attempted either yet.  Blender might be an option if it supported piped YUV output, as is the case with Cinelerra — I don’t trust built-in encoders.

After a Theora video is rendered via the YUV4MPEG pipe, I merge-in audio (oggz-merge), create a Skeleton (oggz-chop), validate the file (oggz-validate), create a .torrent file (BT Mainline + WINE — could valid files be produced from the command line?), created an animated GIF (see below), then upload to the Internet Archive.  A script to automate this process shouldn’t be tooo hard to draft…

C) Internet Archive (IA)
In-page playback is busted, as is automated animated + static
thumbnail creation for files that are submitted as Ogg Theora. Both issues will need to be resolved by IA staff, but recommendations on the following items might be helpful:
-Edits of the .js file responsible for rendering the element,
especially in the absence of a H.264 derived file.
ffmpeg recently changed the ‘-padtop’-style syntax for thumbnail generation — I haven’t figured out how to create thumbnails with the most-recent versions.

Additionally, there are a number of IA metadata fields that are
manually calculated and entered, such as a Unix timestamp for the date of the event, wgs84 geo-coordinates, user-generated md5sum hash (to check against incomplete uploads, file corruption, tampering), and a few other fields that could be integrated with the upload script and/or Elphel metadata.

After publication is complete, I download a copy of the meeting from the IA to, create a new page in the ‘Stream:’ namespace, then supply the URL of the just-downloaded video.  Then, I upload the animated thumbnail (MediaWiki), overwrite the MediaWiki-generated static thumbnail with the original animated thumbnail (SSH), and rotate-in the meeting as a Featured Meeting and add it to the Visual Finding Aid. I then enter the Unix timestamp into the appropriate MySQL field (phpMyAdmin) such that videos are searchable according to date, which is busted at the moment (see below).

I am embarrassed to say that I generate fully-specified Media RSS feeds by hand, and that I accidentally deleted some many-item feeds.

The MetaVidWiki extension needs to be rewritten for ‘Stream:’ asset management, compatibility with other platforms (e.g., Universal Subtitles), and integration with the latest Kaltura embedded player.  Right now, this means that some of the MetaVidWiki controls are busted, such as advanced search, automatic caption scrolling, and “jump to” hyperlinks.  On the plus side, in-browser video remixing is starting to come online.