[This is a draft entry, updated on 6-Sept-2009]

Movable Type
Navigate to Preferences --> Comment --> "Limit HTML Tags" --> "Use my settings:" and enter the following:

    a href,b,i,br/,p,strong,em,ul,ol,li,blockquote,pre,video src poster autobuffer autoplay loop controls width height


WordPress
Apply this patch after every WP upgrade.  Also see WordPress Ticket #10151.


Blogger
Blogger.com does not permit direct upload of Ogg Theora via the 'Add Video' button in the post editor.  However, <video> tags are permitted in posts and comments, either stand-alone or with the mwEmbed playback wrapper.  To enable the latter using OpenMeetings.org clips, insert, just before </head>, the following line (use Layout --> Edit HTML):

    ⋮
    <script src='http://openmeetings.org/w/js2/mwEmbed/mv_embed.js' type='text/javascript'/>
    </head>

View an example.  (Also click on the closed-captioning button.)


MediaWiki
Install OggHandler, upload Ogg files through Special:Upload, then use [[File:Video.ogg]]-style syntax in wikipages.  Also check out the Add Media Wizard.
.

Reinventing Video at Penn State

| 2 Comments | No TrackBacks | Share On Facebook

Wi-Fi & This Old House

| No Comments | No TrackBacks | Share On Facebook
I recently had the opportunity to revamp the wireless system of a turn-of-the-century home/business establishment.  The impetus for the project was the inability of the off-the-shelf router, situated at the rear of the 1st floor, to service rooms on the 2nd and 3rd floors.

The solution was surprisingly straightforward: rather than installing multiple APs (running wires is $$) or placing repeaters/range extenders (iffy), all that was needed was a high-gain antenna attached to a router with adjustable transmit power.

The house has multiple walls made from "solid" wood, whereas newly-constructed homes tend to use lightweight building materials--the distinction is important when you consider RF attenuation and multipath propagation.  This was a low-budget project as home improvement funds were needed elsewhere on the property.  DSL is the standard-bearer for the neighborhood.

I choose to swap my WRT54GL ('L' for 'Linux') router for the old router: the former has detachable antennas and is fully supported by Tomato, which is significantly better than the stock firmware. The only item to note about installation of Tomato is that it took several attempts before the firmware was successfully flashed.  (While Linksys offers Linux-friendly hardware, they are were non-compliant with free copyright licenses and now face a lawsuit from settled a lawsuit with the Free Software Foundation.)  

A wall mount n-female 8 dBi patch antenna (which offers semi-hemispherical directional coverage and is advertised to mitigate multipath effects) was perfectly suitable.  Once the antenna is attached (see image), change the RX and TX antenna select to 'A' if connected as pictured or 'B' if connected to the other port.  Increase the TX power to ~200mW.  Note that antenna positioning is significant.

To finish the installation, place the router in PPPoE mode and change the DSL modem to bridge mode. Both changes are unnecessary if DHCP-based broadband is available.

Signal strength was excellent for a 3,200 sq. foot house, even on the 3rd floor.

[Edit: Minor copyediting and inclusion of the exact house size on 11-January-2008.]










Taped to this computer is a Westell 6100 DSL modem, router, and patch antenna.  Note the metallic RP-TNC plug to n- male adapter connecting the router to the antenna.  (High-res.)

Inspired in part by the "How to Digitize a LP" posting at the Internet Archive, I think a how-to-record-an-event guide is in order.  The below approach is the best blend of cost effectiveness, technical flexibility, and practicality that I have achieved thus far.  Suggestions for improvement are welcome.

Record video, record!
My Panasonic PV-DV73D digital video camcorder has been a champ over the years.  This particular camera provides good functionality (e.g., LCD panel, simple controls, quality built-in mic and light) without being a lug-over-the-shoulder burden.

Perhaps counter-intuitively, obtaining high-quality audio is more important than video in settings where words are important.  Audio should be monitored during recording such that any problems (e.g., background noise, ground loops, and clipping) can be identified and hopefully corrected.  In case the event is an iPod commercial, I recommend Creative EP-630 earbuds.  Room acoustics and any specialized audio equipment should be tested and mediated beforehand.  If standing next to an audio capture source, absolute silence is necessary lest viewers hear an errant Velcro strap, chuckle, or sneeze.

Multiple participants in the room may be accommodated either by tilt/pan/zoom of the camera frame or multiple stationary cameras.  I use a cheap telescoping tripod but need to buy a better one as my tilting is jerky and thus visually distracting.  Keep the camera lens clean with a lens cloth.  Room lighting is invariably "as is."  I have an extra large camera battery but do suggest using AC power whenever possible.  

Events are best recorded either to digital video (DV) tape in SP mode or directly to a hard disk via Firewire IEEE 1394a live capture.  Keep tapes absolutely clean, humidity-controlled, and far away as possible from magnetic fields.

Live streaming via Icecast is possible.  (As a huge aside, I would love to see a mobile cameraperson icecasting from a Wi-Fi zone, perhaps using embedded technology like a football helmet.)  I should also mention that my Cowon A2 is capable of recording audio/video from an arbitrary source, albeit at limited quality settings and in a proprietary format.

For those serious about filming anything and everything, Current TV's filming guide will transform you into the consummate semi-professional cameraperson.


March video, march!
Use of DV will require a Firewire-enabled system.  I use a Belkin F5U506 ExpressCard.  The following BASH command on a Linux (live) distro usually works for me:

    [user@machine ~]$ dvgrab -format raw -interactive -showstatus somefilename
     (-duration is also a handy option)

This realtime capture command will produce a series of 1GB .dv files rather than a monolithic single file.  I prefer this behavior as 1GB is a practical transport size and possible file corruption is confined to a single 1GB chunk.

The demands on disk space are unforgiving.  By my calculations:

4min, 51.5 sec standard DV = 1GB on disk; 60min = 1 tape in SP mode = 12.36GB
2 hr meeting = 24.72GB on disk, then ×2 for Cinlerra export + finished .ogg ≈ 50GB
500GB HDD @ $90 USD ≈ 20 2-hour events (w/o file intermediates) ≈ $4.5 / hour
md5sum is perfect for tracking file integrity; FIFO pipes are problematic.

Using full-fledged DV may seem to be overkill when the finished product is delivered à la YouTube, but consider the following:
  1. The encoding result is better when starting from non-compressed originals.
  2. You will have the full-quality original in case you record something that surprises you.

Compress video, compress!
I recommend Theora video and Vorbis audio in an Ogg container file with an ".ogg" file extension.  The Xiph.Org Foundation requests using ".ogv" to denote "Ogg Video" but I think doing so undermines the reputation of Ogg as a multiplex-ready specification.

I do reduce video resolution but keep quality settings high and the frame rate untouched.  I suggest using 352×240 resolution: moderate file sizes, sufficient to communicate body language, and not aesthetically overdemanding on speaker(s).  I have no interest in switching to high-definition video.

When all is ready, I use the following command:

    [user@machine ~]$ ffmpeg2theora -o uploadme.ogg -v 6 --optimize -x 352 -y 240 --aspect 4:3 -f dv -c 2 -a 8 --artist "Me" --title "The Title" --date "Last week" --location "Down by the River" --organization "Me"  --copyright "The license"  --nice 20 preparedsource.dv

'prepared_source.dv' may be either 'cat *.dv | ffmeg2theora ... -' input or an edited DV composite file; I use DV exported from Cinelerra.  I will save Cinelerra editing instructions for a future posting.  In a nutshell, I am not crazy about Cinelerra (esp. the name itself and GUI non-standardization) and look forward to future Lumiera development.

The command encodes in near-realtime on my 64bit 2.17GHz laptop, which is to say the entire process is time-consuming.  Fortunately, two simultaneous encodings are possible on a dual-core system and ffmpeg2theora is amenable to batch processing.  The command will transform 720×480@29.97fps NTSC DV (4:3 DAR, 9:10 PAR) → 352×240@29.97fps Theora (4:3 DAR, 1:1 PAR), resulting in a slight blurring effect as the PAR is changed.  The alternative would be to add letterboxing, but nobody will be able to tell the difference anyway.

Thusnelda (a spec-compliant Theora branch under rapid development) is a terific improvement to standard Theora.  Unfortunately, it seems many decoders "in the wild" were not actually Theora-compliant to begin with, so Thusnelda is not yet an option...


Publish!
The Internet Archive is the most innovative library I am aware of.  Your video will find a long-lived and happy home sitting next to many, many others on the digital book-shelf.

    Login → Upload → use the "files over 100 MB" link → "Create Item!" → upload to the FTP subdirectory → click the activation link → place item in "Open Source" movie collection (a misnomer) → edit item details.

The "Metadata editor" is fairly straightforward.  Do change "Format" to "Ogg Theora" on the initial submission so that thumbnails and the in-browser playback applet are properly displayed.  Also, consider embedding authorship information directly in the opening sequence as visual metadata is good professional practice.

You are not "sharing" video insomuch as you are irrevocably publishing it.  Please bear this in mind, especially in light of potentially-thorny legal issues inseparable from event recording (e.g., recording consent, defamation, and copyright infringement).


Closing thoughts
Most of my friends--even civically-minded ones--have not given cultural preservation serious thought.  I hope these technical instructions will prove helpful in enabling the broadcast and subsequent analysis of important yet relatively unknown events to many others, including those on the far side of physical, language, and temporal barriers.  

-George

P.S.: Elephants never forget.

[Updated link to Current TV on 17-Dec-2008]

I now twitter...

| No Comments | No TrackBacks | Share On Facebook
My initial impression on twitter was "who cares?"  Although, I could see it being useful in a time-critical environment (24 comes to mind).

But alas, I have signed up and now twitter under GChriss.  Let's see how long I last.

Happiness with Cowon A2

| No Comments | No TrackBacks | Share On Facebook

I have been the proud owner of a Cowon A2 for a month and a half, and I recommend it to anyone looking for an under-$300, Linux-friendly multimedia device. The thing plays/records music and voice, acts as a 30GB USB HDD, displays photos, displays plain text files, plays/records FM radio, copies files from other USB devices, performs scheduled recordings, acts as a musical alarm clock, and outputs/records to/from an arbitrary composite video source. All on a 9cm x 5.5cm LCD screen with a sleek interface and killer battery life.

I stumbled across the A2 after pouring over the PortablePlayers wiki article provided by the Xiph.Org Foundation. Originally I had in mind an iPod nano-esque device capable of playing open-format podcasts, but was soon wooed over to the iPhone-sized device.

I am going to skip reporting on every available feature, as Cowon manual-writers have already provided a comprehensive write-up. But I am going to give a few pointers to help *nix users get started quickly. (Yes, that category includes Mac users.)


General comments:
-The built-in stereo speakers are crisp but only effective in a quiet room at full volume.
The stubby joystick is robust but requires a delicate touch for proper navigation. I suggest using a plastic screen protector such as this fine product. As with most electronics, dropping the product will likely break it.

-The A2 is based on a heavily-modified Linux kernel and the sources are available per the GNU General Public License. Unfortunately, a critical portion of the kernel source is deemed proprietary and thus, as far as I am aware, the A2 only boots a Cowon-provided OS. Upgrading to the most recent firmware is A Good Thing. I am admittedly jealous of the fast-paced iPhone toolchain development given that Cowon is now in 'mostly just bugfixes' mode.

-Audio recording (via radio, built-in mic, external mic, or external source) is in mono/stereo 64/128/192 kbps MP3 only. Video recording is in a proprietary Microsoft format. Both formats may be transcoded via mencoder.

-UTF-8 text display is unsupported and will result in funky character substitution.

-The input/output jacks are strangely cable-dependent (i.e., signal transmission only works with use of provided cables). As a workaround, invest in A/V cable couplers such as this fine product. While on the topic of cables, FM radio reception is somewhat weak. The wire leading to the earbuds is the antenna and must be attached for any radio reception.


Encoding Tips:
The following encoding command is useful for creating a A2-compatible movie from a DVD. Higher bitrates and resolutions may be possible but are generally excessive. I have not yet tried including subtitles. Note that mencoder needs to be compiled with Xvid and MP3 encoder support. Be sure that you have legal permissions for any copyright-protected content. Also note that use of an MP3 encoder without royalty payment is for academic purposes only.


$ mencoder dvd://1 -ovc xvid -xvidencopts pass=1 -alang en -vf scale -zoom -xy 480 -oac copy -ofps 24000/1001 -o /dev/null && mencoder dvd://1 -ovc xvid -xvidencopts pass=2:bitrate=1000 -alang en -vf scale -zoom -xy 480 -oac mp3lame -lameopts vbr=3 -ofps 24000/1001 -o your_movie_a2play.avi

A few skipped frames is nothing to worry about. And as anyone who has encoded highly-compressed video can tell you, the process is ssllooooowwww...

If you are interested in ripping an audio CD for the purpose of personal data backup, Grip is a very neat program.


Located under Config --> Encode --> Encoder:
Encoder executable: /usr/bin/oggenc
Encoder command-line: -o %m -a %a -l %d -t %n %w -N %t -G %g -d %y --quality=10
Encode file extension: ogg

I would think that the A2 comes with some helpful Windows-based features, but that would be another review. In closing, I like it. :-)

-George
[Original posting 15-October-2007. Corrected LCD dimensions on 16-October-2007.]