[FFmpeg-user] Sorenson Spark <--> H263 (1996)

pavel.ismailov at gmail.com pavel.ismailov at gmail.com
Wed Aug 4 13:55:04 CEST 2010

Hello, guys!

We need do converting Sorenson Spark <--> H263 (1996)
but without any transcoding operations.
That mean we want make almost only headers changes.
And anyway we do not want climb inside the frames and transcode this.

We now ffmpeg library can do this transcoding,
but we are not looking for easy ways and we want to make sure that use minimal CPU

Half of work is done, but there is some questions for what we need
answers. We would be grateful for any answers, and we can consider the
paid consultations on this subject.

There is the questions:

When we decoding H263 frame, we have 9 GOB-layers, each have 11 macroblocks.
Question: how much macroblocks must be (will be) in Spark-frame?

____current code: 
______for (int i = 0; i < h263GroupOfBlockses.length; i++) {
________if (h263GroupOfBlockses[i] != null) {
__________countMB += h263GroupOfBlockses[i].h263MacroBlocks.length; 
_____sParkFrame.sParkMacroBlocks = new SParkMacroBlock[countMB]; 

_____int index = 0; 
_____for (int i = 0; i < h263GroupOfBlockses.length; i++) {
________if (h263GroupOfBlockses[i] != null) {
___________for (int j = 0; j < h263GroupOfBlockses[i].h263MacroBlocks.length; j++) {
_____________sParkFrame.sParkMacroBlocks[index] = h263GroupOfBlockses[i].h263MacroBlocks[j].toSParkMacroBlock();

we suppose here that all the macroblocks are written one-by-one to the Spark-frame

Is it right?
key-frame (I) <--> inter-frame (P)
intra-frame <--> intra-frame (B) 
disposable inter frame <--> changed inter-frame (P), what changes exactly? 

Is there some differents in versions 0 and 1 of BLOCKDATA?If so – what exactly changes?
Can we use BLOCKDATA 0 version when there is H263 --> Spark convertion? 

What value must have deblocking flag parameter in the Spark-frame, when there is a convert in the H263 -> Spark direction?

Spark frame has a random size of the image, while the H263 - the size is fixed. What should we do with that during the convertion?

If there are not B-pictures in H263 stream, so Disposable Frames in the Spark frame must be full absent?
We ask about it, cause often we not see any B frames in H263 streams (fro example in stream from Xlite)

Is that possible that in H263-frame are missing GOB-layers?
If so, how will transcoding algorithm difference from the case, when all GOB-layers are presence?

Is this right?
When converting to Spark, we need remove GOB-headers from H263 and put to Spark converted macroblocks without GOB-headers.

Thank you, 
Pavel Ismailov
tel.: +7-923-125-4461
skype: pavel.ismailov
www.mediaservers.ru | www.tooboos.com

More information about the ffmpeg-user mailing list