Fast H.264 transcoding

I am working on (sort of) a VOIP app for mobile with video support. Most modern smartphones are equipped with a hardware H.264 encoder / decoder. However, most of them only support a limited number of encoding profiles. In particular, I am interested in SVC, which is usually not supported. The simplest solution is to use a software encoder. But, obviously, it has its flaw.

I recently got the idea to create a hybrid hardware + software encoder. Which consists of a hardware encoder and a "small software editor".

I know (in general terms) that H.264 works in terms of macroblocks. The coded stream contains instructions for macroblocks: either a full retransmission (in the form of jpeg-like data), its motion parameters, or just nothing.

A complete software transcoding will process such a coded stream, parse / implement it and execute on its graphical data, and then encode the resulting image, which includes processing each macroblock, deciding on a strategy, generating motion vectors and finally encoding all instructions.

The idea is to do a "shallow" conversion. I'm, however, about parsing the incoming codestream, but instead of executing its instructions - just use them as a source for the encoder, that is, encode them in a complex H.264 encoding scheme with the required accuracy (that is, bitrate), etc., Without actually analyzing the image, finding motion vectors, etc.

Basically it uses decoder + encoder but with a shortcut so that the actual image is not generated by the decoder and not parsed by the encoder.

Is it possible? Was there an attempt to do something similar?

+3


source to share


1 answer


I do not think that's possible. I've heard similar suggestions from people with a basic understanding of video encoding without a clear knowledge of the actual h264 encoding. It may be possible, but it will take too long to achieve any reasonable results. For example, you can contract with some of the best developers from x264 , and it would probably cost you around $ 100K to get any results. Your best bet to check my answer is to ask x264 or ffmpeg maligning list.



0


source







All Articles