View Single Post
Old 16th September 2015, 09:18   #1  |  Link
GrandAdmiralThrawn
Registered User
 
GrandAdmiralThrawn's Avatar
 
Join Date: Feb 2011
Posts: 48
x264/libav - detected input framerate for raw H.264/AVC

Hello!

I am currently doing 2-pass encodes with target bitrates instead of CRF (because file size matters to me). There is just some small detail that bugs me.

What I transcode mostly is H.264 elementary streams. It seems x264 (or rather: libav?) cannot detect their frame rate. Is there no fps value in the header of H.264/AVC streams? It will always assume 25fps in such cases, while other elementary streams can be identified correctly, like some older DivX/XviD for instance.

Since the bitrate value is kbit/second, x264 would invest far too much if the actual fps would be something like 50p or 60p or maybe 30000/1001p or 60000/1001p instead of the assumed 25p.

Of course I could just pack every stream into an MKV container with the correct fps value in its header, which works perfectly fine! But it's a bit of extra work.

Thing is: Can't I just tell x264 what kind of input framerate I have, to invest bitrate correctly per time unit without an additional step? I tried the --fps option, but that's just for output framerate, doesn't seem to affect the bitrate invested at all.

There seems to be no --input* option that can do this? Or can I do something with --input-fmt? I guess no, but I don't really understand how to use --input-fmt yet, which's why I'm asking.

Thanks!
__________________

Proud owner of a 3dfx Voodoo5 6000 AGP HiNT Rev.A-3700 prototype
No RISC, no fun!
GrandAdmiralThrawn is offline   Reply With Quote