vLinkr

In 2007 and 2008, I worked on a project called vLinkr. What follows is a write-up of the initial idea and a few screen caps from the prototype.

vLinkr.com

vlinkr_screencap

vlinkr_screencap2

vLinkr’s mission is to enable online media publishers abilities on-par with YouTube and Brightcove while hosting media on their own server on their own terms.

To this end, vLinkr is developing a suite of open source audio and video publishing tools that integrate with popular open source content management systems (initially WordPress and Drupal). Since these tools will be open source, it is hoped that others will help to improve and extend these tools in both functionality and platform reach.

Serious yet small media publishers are under-served by video sharing sites along the lines of YouTube. YouTube in particular is geared towards lower quality, extremely short, often copyright infringing media. Many of these sites follow suit and furthermore retain rights to re-use the media which can be problematic.

On the other side of the spectrum exist companies such as Brightcove whose products are geared towards high end media producers. These tools offer significantly more functionality in the management and control the publishing of online media that larger media companies require. Unfortunately, these tools and services involve significant cost that is often beyond the reach of small media publishers. Also, these tools are often not on the forefront of available technical and social capabilities, rather focusing on generating additional revenue for existing media assets.

vLinkr’s suite of tools seeks to offer a no-compromise solution that is both packaged and open source. (Support and professional services may well enter into this mix.)

Along with the features offered by social media sites (sharing, cross-posting, podcasting, transcoding, ad insertion and commenting) vLinkr seeks to help invent a new type of online media involving audio and video.

The features that currently exist on social media sites can be thought of as retrofits of existing “Web 2.0” technologies onto audio and video content. Unfortunately, these features surround the content rather than integrate with the content. A large part of vLinkr’s mission will be to prototype and release technology that seeks to crack open audio and video and help to make it parse-able, internally searchable and generally more internet like than television/radio like. vLinkr seeks to make audio and video on the internet more than just audio and video on the internet.

One issue with the type of distributed media publishing that vLinkr seeks to support (as opposed to aggregated publishing such as occurs on sites like YouTube) is that the media and is not indexed as well which can make it less “findable”.

This leads to the second portion of vLinkr’s service which is a centralized media data aggregation service. Using existing content syndication and content update infrastructure (RSS and pingback), this service will index most major online media publishing sites along with any individual media site that someone wishes to be added. Additionally, it will leverage the enhanced capabilities of the vLinkr publishing tools increasing the available metadata (audience viewing behavior, comment indexing and so on). These enhanced capabilities will attempt to be standardized so that other developers of publishing tools may generate this enhanced metadata and submit this enhanced metadata as well.

This data aggregation service while offering search and browse capabilities is not intended to be a destination or gateway site, rather it will be primarily used to offer a second set of tools that a media publisher may use on their site to offer search and related content. This will bring the capabilities available more in-line with those offered on existing social media sites and making distributed media more “findable”.

vLinkr believes that competitors in this space (Google Video, Blinkx, MeFeedia, Yahoo Video and so on) make the mistake of bringing the indexed content into their site. vLinkr believes this is somewhat unethical and may be considered copyright infringement. vLinkr, on the other hand will not display the media rather it will just index and link to it therefore helping those using vLinkr tools (and compatible tools) make their media more relevant and findable.

The centralized vLinkr service will have significantly lower infrastructure needs than it’s competitors and will be able to move quickly towards enhanced capabilities not having to house and transcode the media itself.

In terms of capital generation, this data in aggregated form may be sold to advertisers, marketers, media researchers and other interested parties. It may also be used to help target ad placements in content generated by vLinkr users should those users decide to allow advertising.

Any and all feedback or inquiries are encouraged and appreciated.

Google Glass Circular Video Buffer #throughglass

Having recently had a chance to get hacky with Google Glass, I put together an app that I have been wanting for quite a while. For now it is called Circular Buffer. Essentially it is a 15 to 20 circular frame buffer (Glass camera preview frames). Taping on the “Save” button writes out the frames to an MP4 with H.264 video using JavaCV giving you a video file with the last 15 or 20 seconds #throughglass. (Right now the video files do not have sound and are stored on the “sdcard” of the device. That means that you have to connect via USB and use the “adb” tool to download the files.)

This is a “native” Android app rather than the approved of method of writing Glass apps using the Mirror API. In order to use it, you have to either launch it through the Android developer tools (adb) or install “launchy” (https://github.com/kaze0/launchy).


Test Video

Interested in trying it out or building on it, go for it: https://github.com/vanevery/Circular-Buffer.

Video Comments – Revisited

A few years ago, John Schimmel and I worked on an in-time commenting system for video. Specifically we made a WordPress Plugin that interfaced with the built-in WordPress commenting system including user authentication, spam prevention, and so on.

Unfortunately, it no longer works out of the box because we used the QuickTime plugin for video and support for that is waning in the browser space.

Yesterday, I did a quick and dirty update to allow the plugin to use HTML5 video rather than QuickTime. To my delight, it mostly works: Video Commenting Test (try in Safari or Chrome as the video is MP4/h.264).

What still needs to be done is to update the Admin interface to allow multiple video sources and mime type selections for HTML5 video and removing the QuickTime specific portions.

Also, I would love to put an HTML5 canvas on top of this and let people make spacial in-time!

If you are interested, I put it up on GitHub (make sure you use the html5 branch). Pull requests are welcome!

Android Live Streaming courtesy of JavaCV and FFMPEG

For the last little or should I say, long while I have been working on wrangling a solution for live streaming from Android that is both decent quality and extensible. For those of you interested, the litter in my GitHub account documents various previous attempts.

As far as I can tell, most folks that are streaming live video from Android are relying upon the video captured by the MediaRecorder and underlying classes and doing a bit of trickery with the file either while it sent to the server or on the server for distribution. This is fine but it doesn’t give hooks into the actual video frames before they are encoded and sent over the network.

Recently, I came across Samuel Audet’s amazing open source JavaCV project. In that project Samuel is wrapping FFMPEG’s underlying libraries (avcodec, avformat, and so on) using his equally amazing JavaCPP project to expose their functionality to any Java application.

Finally, after a few weeks of experimentation and little (actually a LOT) of help from Samuel himself, I have something working!

Running the live streaming app on a Galaxy Camera
Running the live streaming app on a Galaxy Camera

App and resulting stream on desktop via Wowza Media Server and Flash

There is a quick example of writing a file up on the JavaCV site which provides the foundation: https://code.google.com/p/javacv/source/browse/samples/RecordActivity.java

I have the beginnings of a full blown project (which needs some updating based on the above example) up on GitHub: https://github.com/vanevery/JavaCV_0.3_stream_test

Re: Networked Video in 10 Years : Networked Video == Parseable Video | Not sLop

Interesting, I just got some comment spam on this post from January 2007: Networked Video in 10 Years : Networked Video == Parseable Video | Not sLop.

In the post, I describe the proceedings from a breakout group at that year’s Beyond Broadcast conference.  My conclusion was that online video needs to be more than just video online, that it needs to be parseable (indexed and hyper-linkable and so on).

Unfortunately, for the most part, online video now, is pretty much the same as it was then.  Typically it exists on a web server as a file, is embedded in a web page with a bit of textual information around it and that’s it.  Not a lot of interactivity or time based meta-data as part of it.  Certainly not parseable in the way described in the post.  No easy way to link to specific content or to associate content on the page with any particular point in time in the video.

Fortunately, while that is still mostly the case, it isn’t always the case.  The good folks at Mozilla have been working on an open source JavaScript library called Popcorn.js that allows any time based media (audio/video) to execute code, manipulate a page, display other content and so on.   They have even created a GUI interface so you don’t have to be a JavaScript programmer in order to take advantage.  Nice!

I spent last week, during ITP’s Teach Yourself JavaScript Together, getting familiar with Popcorn and then gave a workshop that showed it (as part of an overall HTML5/JavaScript media workshop).  If you are interested, here is the talk (jump in a little more than 2 minutes):

YouTube Link and the notes are here.

Bringing in a generic H.264 stream to Wirecast (via Wowza and Wirecast’s Generic IP Camera support)

Wirecast is truly a studio in a box. It has a great support for multiple cameras, mixing live and recorded sources, graphic overlays and so on. Recent versions even allow you to bring in live feeds from IP cameras including support for specific Axis cameras.

Since I am a big fan of IP cameras and Axis in particular this is great news. Unfortunately Wirecast doesn’t have direct support for most models and I had to dig quite a bit to get things to work using their “Generic” IP camera support.

First test was to get a straight H.264 encoded into Wowza and then out to Wirecast. To do this, I used the Flash Media Live Encoder and set it publish to “rtmp://localhost:1935/img” (I have Wowza running on my local machine and an application called “img” which is a copy of Wowza’s “live” application). I set the Stream name in FMLE to “media.sav” which is what Wirecast is looking for by default.

In Wirecast’s Source Settings, I added a new IP Camera and set it’s IP address to: “127.0.0.1:1935” and choose “Generic” as the type.

Viola! It works, the video is being captured and encoded by FMLE, sent to Wowza and pulled into Wirecast as a Generic IP camera. In this manner, I can have live cameras via FMLE from anywhere in the world brought live into my final stream.

(Big thanks to Steve McFarlin the developer of the LiveU iPhone broadcasting app for his post on Wirecast’s Forum detailing how he got his software working.)

Local Report 2012 | Creative Time Reports

The piece that I helped Robert Whitman create is up on Creative Time.  

We had 90 or so callers send in video and make phone calls via a custom iPhone app, Android app and regular phone number over the course of an hour.

Check it out: http://creativetimereports.org/2012/10/18/local-report/

Obscura Cam now in the Android market!

I am happy to report that the app I have been working on in collaboration with Witness and the Guardian Project is now available in the Android Market.

The app, Obscura Cam is the outcome of the first phase of our
Secure Smart Cam
project to create smart phone camera software which allows for greater privacy and security in the capturing and sharing of media.

Of course, it is all open source