Log in

View Full Version : Can Xvid codec decode this file ?


lalacha
10th June 2003, 12:23
Dear All
Below file is encoded by Portable Video Cam.
And I can play it on PC with Divx decoder no problem.

But I want to know, can Xvid codec do that?
Or MS v1 or v2 codec can?

How can I verify a MP4 bitstream is encode by Dixv or Xvid.
Thanks for your help

"Hoo Gee"

lalacha
10th June 2003, 12:27
http://myweb.hinet.net/home1/llch/FR20.avi

AmiRage
10th June 2003, 13:47
The AVI's FourCC is DIVX, so it's not surprising, that DivX can decode it. By changing the FourCC to XVID it'll be playable by XviD.

lalacha
10th June 2003, 14:42
It is work !
Thanks a lot.

Somebody tell me, what is the most popular compiler that Xvid programmers use, I want to study that.
How can I get that?

Thanks a lot again.

Prettz
10th June 2003, 15:22
The XviD developers all use MSVC 6.0, but they use Intel's ICL compiler, which is specifically compatible with MSVC, to actually compile it.

lalacha
10th June 2003, 15:42
I am not very clear.....

Can anybody point me any information (webset) about
"Intel's ICL compiler"

I will study that first.

DaveEL
10th June 2003, 16:03
http://developer.intel.com/software/products/compilers/

DaveEL

K_R
10th June 2003, 16:51
Originally posted by lalacha

How can I verify a MP4 bitstream is encode by Dixv or Xvid.


One way to tell is when you see frame type=I/P/B/P/B/P/B/P/B/P/B/P/B/. Good chance that it is dx50. Unless the xvid encoder decided to use max b frame = 1.

Also there is the adaptive quants that is in dx50 and not xvid (where you see q=2.12, 3.91, etc.).

And I've noticed that dx50 has some faint horizontal banding (very noticable to me) on certain colours, most visible in anime encodes.

For the first two, use ffdshow as the decoder and turn on the OSD.

lalacha
12th June 2003, 04:14
Dear All
Since the file is ISO-MP4 SP format
Can I decode by MS codec?

In fact, I had tried the FourCC as "MP41","MP42","MP43","MP4S"
It do not work.
How can I decode that by MS codec?

Teegedeck
12th June 2003, 08:32
M$-MPEG4 was a competing draft that didn't make it into the final MPEG4 specs. It isn't compatible.

BTW MP43 is also known as DivX3.11;-).

lalacha
12th June 2003, 10:02
So, it means DviX 5.0 codec can not decode the file encode by DviX 3.11 codec?

Since the file follow the ISO-MP4 SP format.
Can I say all of M$-MP4 codec do not follow the ISO spec.?

lalacha
12th June 2003, 10:08
//Above error, it should be
So, it means DviX 3.11 codec can not decode the file encode by DviX 5.0 codec?

Since the file follow the ISO-MP4 SP format.
Can I say all of M$-MP4 codec do not follow the ISO spec.?

sysKin
12th June 2003, 10:47
Originally posted by K_R
One way to tell is when you see frame type=I/P/B/P/B/P/B/P/B/P/B/P/B/. Good chance that it is dx50. Unless the xvid encoder decided to use max b frame = 1.

Also there is the adaptive quants that is in dx50 and not xvid (where you see q=2.12, 3.91, etc.).

And I've noticed that dx50 has some faint horizontal banding (very noticable to me) on certain colours, most visible in anime encodes.

For the first two, use ffdshow as the decoder and turn on the OSD. There is an easier way. Use newest ffdshow and turn on visualisations/show motion vectors. If you see vectors in equal spaces (every 16 pixels), it must be divx (3, 4, 5..).
If you see parts of the picture where there is more vectors - four in place of one - it must be xvid or ffvfw. This is "inter4v" mode that only xvid and ffmpeg uses.
You can even guess if VHQ was used - the higher VHQ level, the more 4-vector macroblocks. At VHQ4, 4v is used almost everywhere.

Radek

K_R
12th June 2003, 16:22
That's interesting to know. Thanks.

lalacha
17th July 2003, 09:14
How can I check a frame belong I/P/B frame according the frame stream data ?:confused:

duartix
17th July 2003, 15:41
Open the file in VirtualDub or VirtualDubMod and look for (I,K or P or B) in the status bar below.

duartix
17th July 2003, 15:46
I'm sorry, as I was checking this out, I found out that VirtualDub/Mod will only tell you wether the frame is a (K)eyframe.
I don't know where I got the idea that it would give you a K,P,B code...
Chances are there was some version that did it or that I have dreamed about it :confused:

unmei
17th July 2003, 17:22
I don't know where I got the idea that it would give you a K,P,B code...

it gives you these when you load the stats file ..obviously only usable when you still have that file (and not overwritten with another encode)

K_R
17th July 2003, 17:47
Regarding I/P/B, read my first post in this thread.

lalacha
19th July 2003, 04:26
Dear All
What I want is to tell the I/P frame from raw stream.
For example,
if a MP4 frame binary is 0000 01B6 5178 .....
another frame binary is 0000 01B6 1438 ....
How can is classify them as I or P frame ?
:confused:

sysKin
19th July 2003, 11:41
Originally posted by lalacha
if a MP4 frame binary is 0000 01B6 (...)
Indeed, a VOP start code (video object). Note that a frame does not have to start with VOP start code, but eventually that's the four bytes you want to find.
...5178...
Hm ok, let's decode: 01010001 01111000

Oh look - the first two bits will tell you the coding type :) (I said look because I just opened xvid's bitstreamreadheaders() ).

So, the first two bits are 01.

Let's read xvid source some more:

#define I_VOP 0
#define P_VOP 1
#define B_VOP 2
#define S_VOP 3

So that's a P_VOP.

another frame binary is 0000 01B6 1438 .... first byte after startcode is 14, that's 00010100, which makes it an I-VOP.

I hope I am reading correctly (MSB first) but I think so. Anyway, xvid code is the best source of information for that.

Radek