November 24th, 2011

MediaCoder on the way to a distributive transcoder

Finally MediaCoder is stepping on its way to becoming a distributive transcoder. I decided to design a frame level distributing mechanism instead of file-level distributing. The system is made up of a master, which performs decoding and data distribution, and one or more agents, which receive raw video frame, encode them and send the encoded stream back to the master. Users will feel like still using a desktop version of MediaCoder, while the encoding is actually done on another one or more machines. This approach has several advantages:

  1. No need to expose the whole file to the encoding machine with OS file sharing.
  2. It’s possible to implement segmented + distributed transcoding
  3. The decoding is still done by a Windows box (where MediaCoder runs), which has better decoding capability. This also helps to unify the decoding standard in a distributed transcoding system.
  4. The transcoding agents need no storage for intermediate data during transcoding. The frames are transmited over LAN, encoded and send back over LAN.

However, nothing is perfect. The downsides are:

  1. A fast (Gigabyte) LAN is required. Otherwise, the transmission of raw video frame over LAN will be the bottleneck of the system
  2. The master will have heavy load if there are too many agents to be fed

Currently the finished work is still limited. The MediaCoder Agent is written from scratch and only supports x264 meanwhile. It’s OS portable already however and I decided to make it open-source. So that some one will help with the improvement and porting hopefully.

Here is what current implementation can do and the limitations:

  1. MediaCoder Agent wait for incoming connection from MediaCoder upon running
  2. When MediaCoder is put into the new “Distributive” mode, it will off-load video encoding to MediaCoder Agent running on the other machine or locally.
  3. During the transcoding in distributive mode, MediaCoder decodes video into raw frames, send the frames to the agent over TCP and wait for the agent to return encoded stream in the return channel
  4. MediaCoder Agent can literally run on any OS (32 or 64 bit) with x264 installed (in /usr/bin by default, the location can be altered in MediaCoder’s Settings dialog)
  5. Audio encoding is not off-loaded and still done locally
  6. Currently only x264 is tested and only a single agent is supported

Read the rest of this entry »

October 18th, 2011

MediaCoder VP8/FLV Edition is updated to build 5196

Just a moment ago MediaCoder VP8/FLV Edition build 5196 is released. This version fixed the breakage of VP8 encoding. The recent update of FFmpeg causes a new DLL file swresample-0.dll missing in the installer. Without this DLL file, FFmpeg will silently refuse to work and causes the muxing failed when producing webm files. Now everything is in order.

Home Page of MediaCoder VP8/FLV Edition

October 18th, 2011

The startup crashing bug in recent build 5195 has been fixed

Finally another new post here. ;-) I’m surprised that the previous post was half a year ago. Time goes so fast! I want to say that I am still actively working on MediaCoder.

Recently I attempted to upgrade libSDL from version 1.2  (which has no release for one year) to version 1.3, the under-development version that looks so fancy on their new website. MediaCoder mainly uses SDL for displaying video and the graphics of Dropbox mode wholy depends on the library. However, this action brings some unexpected behavior into MediaCoder. I have downgraded the libSDL and build 5196 has this issue fixed. The new build has also fixed most anonying bugs in Dropbox mode, though I don’t know whether it’s ever used by some one after I created it months ago. ;-)

Refer to the changelog for more info of the update.

April 18th, 2011

AudioCoder 2011 is released! Yet the fastest batch audio transcoder on multi-core processors!

AudioCoder 2011 (formally named MediaCoder Audio Edition) is released lately. With support of up to 8 concurrent tasks, converting a bunch of your favorite songs can be faster than ever. As a test of converting a whole music album from APE+cuesheet to HE-AAC on a Intel i7-i2600 CPU shows, 16 songs only takes 16 seconds to complete. Besides the super fast conversion speed, AudioCoder 2011 also supports fast 2-pass audio normalization based on the ReplayGain calculation algorithm which perfectly keeps the transcoded audio at the same average volume level.

Click here to get AudioCoder 2011 now!

April 15th, 2011
April 9th, 2011

MediaCoder 2011 R2 released with support of VP8 encoding and WebM container.

MediaCoder 2011 R2 is released. In this release, support for VP8 video format and WebM container format is added. The VPX encoder 0.9.6.1 is used for encoding VPX video stream which can be muxed into MKV and newly added WebM container formats.

Read the rest of this entry »