Category Archive: Articles
Recently I've been spending some time improving MediaCoder's support for Intel MSDK encoder, the GPU acclerated H.264 and MPEG-2 encoder from the chip giant. A new revision of MediaCoder (before I can finish and implement all the major improvements in my mind and release MediaCoder 2012), is released containing several improvements including slight performance boost when using Intel MSDK encoder to perform hardware accelerated encoding. Actually the performance of Intel MSDK encoder is astonishing. This comes from the good implementation of the underlying multimedia facilities of Intel Media SDK framework, as well as the multi-threaded design of MediaCoder, espeically its built-in large circulla frame buffer used for efficiently transferring raw audio and video data from decoder to encoder. Here I give some tips for using Intel MSDK encoder in MediaCoder. Read the rest of this entry >>
MediaCoder started to adopt Intel Media SDK in early 2010. By using the GPU accelerated encoder provided by the SDK, MediaCoder achieved significant increase in H.264 and MPEG-2 encoding speed, which reaches up to 5 times faster than encoding with x264 or FFmpeg. Being able to off load the heavy encoding computations to GPU, MediaCoder can better use the CPU to perform I/O operations, task management，audio decoding/encoding, stream multiplexing and most importantly video decoding which is also computational complex and obviously there are too many long-existing or legacy formats to have the GPU implementation for all of them. Comparing to nVidia's CUDA accelerated H.264 encoder, Intel's implementation provides much better visual quality, which makes the GPU accelerated video encoding acceptable by industrial customers, especially those of MediaCoder KTV Edition who perform massive transcoding for serious business use.
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:
- No need to expose the whole file to the encoding machine with OS file sharing.
- It's possible to implement segmented + distributed transcoding
- 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.
- The transcoding agents need no storage for intermediate data during transcoding. The frames are transmited over LAN, encoded and send back over LAN.
In order to further develop with Intel Media SDK, I decided to upgrade my hardware. Intel provides a 50% money back of the hardware purchase to support its Intel software partners. So I can pick up some powerful components. Read the rest of this entry >>
MediaCoder Dropbox a new way to share your transcoding settings (Stanley posted on February 6th, 2011 )
MediaCoder Dropbox is a simplistic user interface of MediaCoder which can be used to convert media files for a specific purpose so easily and conveniently. The appearance and transcoding parameters of a MediaCoder dropbox are defined by an XML file which can be on local disk, on remote server or embedded in any web pages. With this mechansim, users can create, publish and share their specific transcoder. Using MediaCoder dropbox is even easier. Simply load a dropbox whether local or remote, and drop media files into it and you can start transcoding. Read the rest of this entry >>
Today MediaCoder has been tested with Intel Concurrency Checker, as was invited by Intel Software Partner Program. According to the reports sent back by Intel, the Computed Scaling value of MediaCoder is 2.6 and 3.71 for without and with task parallelization respectively, which reaches and surpasses the suggested minimum value for 8-core processors.