View Full Version : x264 devices settings
Kurtnoise
21st September 2009, 11:24
Ok,
This thread is a new start to sum up all informations about devices settings for x264. If you have some extra infos, please share them. Hence, we can have a better spot and optimize our presets...
Spreadsheet is available here (http://spreadsheets.google.com/pub?key=tYGTjNd0dG6P_A9z-YkFzFg&output=html). Not complete yet. I'll update as soon as I can.
Comments & discussion are welcome.
:thanks:
Chengbin
21st September 2009, 11:59
The iPhone and the Apple TV does not support high profile (8x8dct = no)
The Archos 605 supports CABAC, and at least 3 b-frames, all partitions. Maximum resolution is 720x576
The Archos 5 supports CABAC, 5 b-frames, 8 ref frame, all partition, and b-pyramid. Maximum resolution is 720x576
The Archos 5 Android can have a much higher VBV. I would estimate at least 10000 for 1280x720 (max resolution).
The level tag doesn't matter for Archos units, it will play all levels, including 5.1.
Preliminary test shows it supports at least 3 b and ref frames, all partition, and b-pyramid. I'll do a much more thorough test when I get the unit.
The PSP can support 16 b-frames, but only 3 ref frames. No b-pyramid.
Why is trellis in there? It doesn't affect decoding...
Dark Shikari
21st September 2009, 12:02
The iPhone and the Apple TV does not support high profile (8x8dct = no)First half wrong, second totally wrong.
Chengbin
21st September 2009, 12:04
The iPhone supports high profile?? That's unheard of.
I was pretty damn shocked when I heard it supported CABAC and b-frames.
Dark Shikari
21st September 2009, 12:05
The iPhone supports high profile?? That's unheard of. 3GS plays High L4.1, but only if you bypass iTunes.
Apple TV plays High Profile just fine.
Also, every piece of information involving b-pyramid is inherently wrong because b-pyramid is going to be completely overhauled anyways.
Chengbin
21st September 2009, 12:07
Also, every piece of information involving b-pyramid is inherently wrong because b-pyramid is going to be completely overhauled anyways.
So this new b-pyramid will render all hardware decoder useless?
Sagittaire
21st September 2009, 12:09
Bluray have really many profil: I will make exhaustive list.
Dark Shikari
21st September 2009, 12:10
So this new b-pyramid will render all hardware decoder useless?In the same way that a new brand of car renders all the roads useless, yes.
Chengbin
21st September 2009, 12:26
Also, every piece of information involving b-pyramid is inherently wrong because b-pyramid is going to be completely overhauled anyways.
So what does "inherently wrong" mean in this context?
kieranrk
21st September 2009, 12:27
PS3 can do Level 4.2.
Apple TV has a maximum framerate of 24fps and a maximum resolution of 1280x720.
shon3i
21st September 2009, 13:05
@Kurtnoise, bluray alow max 3 bframes not 5 i guess you made a typo, aslo partitions all is alowed too.
Chengbin
21st September 2009, 21:54
@Kurtnoise
The Archos 5's VBV should be 5000, not 10000.
Zune HD doesn't support main profile, only baseline + b frames.
Also, can you make the spreadsheet a little narrower by removing blank columns? Even on my 22'' monitor I have to scroll sideways. Many of the cells can be smaller too.
Chengbin
21st September 2009, 22:36
Am I missing something?
I don't see the word "main"
Kurtnoise
21st September 2009, 23:15
indeed, I need glasses.
/confused by the code...
me7
21st September 2009, 23:54
baseline + b-frames? Is it possible to use b-frames with x264 when you limit the profile to baseline?
Chengbin
22nd September 2009, 04:04
Does partitions affect decoding? Even an iPod Touch can play all partitions.
zinga
22nd September 2009, 09:59
For PSP resolutions:
>=firmware 3.30
- arbitrary resolutions up to 480x272
- also supports 720x480 and 352x480
>=firmware 5.00
- adds support for 640x480
>=firmware 5.50
- support for 720x576 added (though not officially stated)
--partitions all supported. Can't remember VBV - I believe Sony has put a restriction on this as there was a hack to raise the maximum bitrate to 16384kbps (but still don't know the VBV params).
I think baseline@L2.1 is also supported, but haven't verified.
Wishbringer
22nd September 2009, 10:42
For PS3 lowres encodes (720x576p25 - DVD conversion to mp4) 8 refs and 16 bframes are playable. I tried with 9 refs too and got picture freezes
J_Darnley
22nd September 2009, 11:17
baseline + b-frames? Is it possible to use b-frames with x264 when you limit the profile to baseline?
No, so don't tell x264 to use baseline. Disable the high and main profile features except for B-frames.
Boolsheet
1st October 2009, 20:20
What about the GOP length? It came up in the Blu-ray thread (http://forum.doom9.org/showthread.php?p=1314400#post1314400).
Has anyone ever tested longer GOPs on hardware players?
Comatose
20th October 2009, 13:08
No, so don't tell x264 to use baseline. Disable the high and main profile features except for B-frames.
Doesn't x264 only show a warning when the features don't match the profile?
J_Darnley
20th October 2009, 13:24
No, if you ask x264 for baseline then it will give you baseline. The --profile setting is applied after options are parsed. x264 will error if you specify a profile which doesn't support a feature you must explicitly enable. I.e. baseline and interlaced, any and lossless.
Kurtnoise
22nd October 2009, 09:18
DivX Plus HD (http://developer.divx.com/docs/divx_plus_hd/Creation_with_x264) & Blu-Ray devices updated...spreadsheet still here (http://spreadsheets.google.com/pub?key=tYGTjNd0dG6P_A9z-YkFzFg&output=html).
There is also a second tab to generate command lines. But this requires permission. So, any volunteers to code this in PHP or similar to have access in public ?
shon3i
22nd October 2009, 11:39
Max gop size for Blu-ray is:
if maxbitrate <= 15000 int(fps)*2
if maxbitrate > 15000 int(fps)*1
Kurtnoise
22nd October 2009, 12:06
Max gop size for Blu-ray is:
if maxbitrate > 15000 int(fps)*1
not needed to multiply by 1 then...and so, in this case, min GOP Size = max GOP size ? :confused:
nm
22nd October 2009, 12:53
not needed to multiply by 1 then...and so, in this case, min GOP Size = max GOP size ? :confused:
If you use the default value, but min-keyint should probably be set to 1 or 2 in both cases.
Forteen88
22nd October 2009, 21:05
--keyint 24
I suppose, for Blu-ray compatibility,
http://forum.doom9.org/showthread.php?p=1335935#post1335935 (https://forum.doom9.org/showthread.php?p=1335935#post1335935)
maybe also mention that slices are not needed for Blu-ray compatibility in L4.0 or lower.
shon3i
22nd October 2009, 21:29
not needed to multiply by 1 then...and so, in this case, min GOP Size = max GOP size ? :confused:
I am not expressed correcly :) max gop for blu-ray is:
if maxbitrate <= 15000, max 2 seconds, which mean --keyint = int(fps)*2, so must be lower than --min-keyint = from 1 to keyint-2
if maxbitrate > 15000, max 1 second, which mean --keyint = int(fps), so must be lower than --min-keyint = from 1 to keyint-2
detmek
23rd October 2009, 11:51
Just a small question: Does DivX Plus HD certified devices need a video stream with --aud and --nal-hrd parametars if I use x264 to produce it?
shon3i
23rd October 2009, 12:27
Just a small question: Does DivX Plus HD certified devices need a video stream with --aud and --nal-hrd parametars if I use x264 to produce it?
According this document (http://developer.divx.com/docs/divx_plus_hd/Creation_with_x264) no, but according from stream encoded with DivX AVC encoder, yes. Since Divx/mainconcept encoder automaticly assume aud and hrd.
Kurtnoise
23rd October 2009, 12:44
I am not expressed correcly :) max gop for blu-ray is:
if maxbitrate <= 15000, max 2 seconds, which mean --keyint = int(fps)*2, so must be lower than --min-keyint = from 1 to keyint-2
if maxbitrate > 15000, max 1 second, which mean --keyint = int(fps), so must be lower than --min-keyint = from 1 to keyint-2
Does this apply to (int)24p only ? what about 50i/p & 60i/p ?
detmek
23rd October 2009, 13:20
@shon3i Thanks. I saw that document. That's why I asked.
NAL-HRD patch is not in official build and it can be unstable. So, I thougth to move my encoding preferences toward DivX Plus HD if it doesn't require --nal-hrd. And, it uses MKV.
I gues this is the question for DigitAl56k.
shon3i
23rd October 2009, 13:33
Does this apply to (int)24p only ? what about 50i/p & 60i/p ?
It's same rule for example:
50i video: fps=50=(25*2) so for 1 second GOP you can use --keyint 50 ..... for 2 second GOP --keyint 100
60i video fps=60=(29.970*2) .... --keyint 60... for 2 second GOP --keyint 120
50p video: fps=50, 1 second GOP --keyint 50 ..... for 2 second GOP --keyint 100
60p video: fps=60=int(59.94) --keyint 60... for 2 second GOP --keyint 120
Selur
23rd October 2009, 13:39
afaik the seconds-limit is independent of the frame rate:
maxBitrate > 150000
--keyint 24 for 24p or 24000/1001p
--keyint 50 for 50i or 50p
--keyint 60 for 60000/1001i
maxBitrate <= 150000
--keyint 48 for 24p or 24000/1001p
--keyint 100 for 50i or 50p
--keyint 120 for 60000/1001i
nm
23rd October 2009, 13:53
It's same rule for example:
50i video: fps=50=(25*2) so for 1 second GOP you can use --keyint 50 ..... for 2 second GOP --keyint 100
60i video fps=60=(29.970*2) .... --keyint 60... for 2 second GOP --keyint 120
Does the spec really say that? 50i has 25 frames per second, so that would make it --keyint 25 for 1-second GOP and --keyint 50 for 2-second GOP. Likewise for 60i.
shon3i
23rd October 2009, 17:41
Ok, here is more clear including resolutions
maxrate > 15mbps, 1 second GOP
Progressive:
1080p 23.976, 24fps = --keyint 24
720p 23.976, 24fps = --keyint 24
720p 50fps = --keyint 50
720p 59.940fps = -- keyint 60
Interlaced:
1080i 29.970fps = --keyint 60
1080i 25fps = --keyint 50
480i 29.970fps = --keyint 60
576i 25fps = --keyint 50
maxrate <= 15mbps, 2 seconds GOP
Progressive:
1080p 23.976, 24fps = --keyint 48
720p 23.976, 24fps = --keyint 48
720p 50fps = --keyint 100
720p 59.940fps = -- keyint 120
Interlaced:
1080i 29.970fps = --keyint 120
1080i 25fps = --keyint 100
480i 29.970fps = --keyint 120
576i 25fps = --keyint 100
btw Kurtnoise on you table you put that Blu-Ray can go 60fps with 1080p which not true. Blu-Ray can same as Divx HD.
benwaggoner
23rd October 2009, 18:31
Does the spec really say that? 50i has 25 frames per second, so that would make it --keyint 25 for 1-second GOP and --keyint 50 for 2-second GOP. Likewise for 60i.
This is a fine example for why we should adopt 25i and 30i as interlaced terminology, since it's really the frames, not the fields, that drive compression settings. Plus it's obvious to even casual readers that 60p > 30i, but not that 60p > 60i.
nm
23rd October 2009, 20:22
This is a fine example for why we should adopt 25i and 30i as interlaced terminology, since it's really the frames, not the fields, that drive compression settings. Plus it's obvious to even casual readers that 60p > 30i, but not that 60p > 60i.
Agreed.
maxrate > 15mbps, 1 second GOP
Interlaced:
1080i 29.970fps = --keyint 60
1080i 25fps = --keyint 50
480i 29.970fps = --keyint 60
576i 25fps = --keyint 50
maxrate <= 15mbps, 2 seconds GOP
Interlaced:
1080i 29.970fps = --keyint 120
1080i 25fps = --keyint 100
480i 29.970fps = --keyint 120
576i 25fps = --keyint 100
I still think you need to halve those values.
shon3i
23rd October 2009, 20:32
Nope, here (tom.niko.users.sbb.rs/gop.jpg) is print of page from original bd specs as evidence because you not beleve me.
Dark Shikari
23rd October 2009, 20:34
Nope, here (tom.niko.users.sbb.rs/gop.jpg) is print of page from original bd specs as evidence because you not beleve me.Maximum number of fields displayed in a GOP
shon3i
23rd October 2009, 20:37
So?... you obviously not saw second table for FRAMES
Dark Shikari
23rd October 2009, 20:41
So?... you obviously not saw second table for FRAMESAnd look at the FPS column in that table. Additionally, note how "frame_mbs_only" is set to 1.
Do we need to have a "chart reading 101" class here?
shon3i
23rd October 2009, 20:45
So you want to say that keyint need to be half of value shown in table?
DigitAl56K
23rd October 2009, 20:46
Hi shon3i and detmek,
You shouldn't use --nal-hrd when targetting DivX Plus HD profile because this patch is still under development. The bitstreams will still play on DivX Plus devices. When this feature becomes integrated into the mainline builds we'll check its behavior and possibly make further recommendations.
--aud is informational only and is optional.
Hope that helps :)
Dark Shikari
23rd October 2009, 20:49
So you want to say that keyint need to be half of value shown in table?The actual table:
720p @ 59.94 fps : keyint 120
525i @ 29.97fps: keyint 60 (120 fields)
625i @ 25fps: keyint 50 (100 fields)
1080i @ 29.97fps: keyint 60 (120 fields)
1080i @ 25fps: keyint 50 (100 fields)
Your made-up numbers:
Interlaced:
1080i 29.970fps = --keyint 120
1080i 25fps = --keyint 100
480i 29.970fps = --keyint 120
576i 25fps = --keyint 100
shon3i
23rd October 2009, 20:53
You obviously not read table correctly, i clearly notice what is for 1 second GOP and 2 seconds GOP and depend from max bitrate.
long gop (2 sec) <=15mbps > short gop (1 sec)
so read my post again http://forum.doom9.org/showthread.php?p=1337275#post1337275
Dark Shikari
23rd October 2009, 20:55
You obviously not read table correctly, i clearly notice what is for 1 second and 2 seconds and depend from max bitrate.And since when is 2 seconds in a 29.97i equal to 120 frames?
I'm going to quote it again now:
maxrate <= 15mbps, 2 seconds GOP
Interlaced:
1080i 29.970fps = --keyint 120
1080i 25fps = --keyint 100
480i 29.970fps = --keyint 120
576i 25fps = --keyint 100
Since when is 2 seconds at 29.97fps equal to 120 frames? Since when? Since the sky turned pink and unicorns fell from the clouds?
Stop trolling, now.
shon3i
23rd October 2009, 21:02
Since when?Well isn't, but it's allowed combination, as is written on paper.
detmek
23rd October 2009, 22:47
Hi shon3i and detmek,
You shouldn't use --nal-hrd when targetting DivX Plus HD profile because this patch is still under development. The bitstreams will still play on DivX Plus devices. When this feature becomes integrated into the mainline builds we'll check its behavior and possibly make further recommendations.
--aud is informational only and is optional.
Hope that helps :)
Thank you. It does. Now, I can stop searching for patched builds and start using official build.
About BD and max --keyint:
If I understand correctly, for maxbitrate <=15000kbs, max. keyint must be every 2 seconds or less. Now, 1080i50 (1080i/25) has 50 fields, or 25 frames (http://en.wikipedia.org/wiki/1080i). Since, --keyint is always expressed in number of frames (right?), 2 seconds GOP for 1080i50 (1080i/25) is 50 (25 frames * 2). For 15000< max. bitrate <=40000 kbs, GOP must be on every 1 second or less, so max. keyint must be 25 since 1080i50 has 25 frames per second.
Or, I misunderstood something?
nm
24th October 2009, 00:16
Well isn't, but it's allowed combination, as is written on paper.
No, the paper says 120 fields, which equals 60 frames.
About BD and max --keyint:
If I understand correctly, for maxbitrate <=15000kbs, max. keyint must be every 2 seconds or less. Now, 1080i50 (1080i/25) has 50 fields, or 25 frames (http://en.wikipedia.org/wiki/1080i). Since, --keyint is always expressed in number of frames (right?), 2 seconds GOP for 1080i50 (1080i/25) is 50 (25 frames * 2). For 15000< max. bitrate <=40000 kbs, GOP must be on every 1 second or less, so max. keyint must be 25 since 1080i50 has 25 frames per second.
Or, I misunderstood something?
That is correct, as the spec page confirms.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.