View Full Version : x264 devices settings
Kurtnoise
21st September 2009, 12: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, 12: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, 13:02
The iPhone and the Apple TV does not support high profile (8x8dct = no)First half wrong, second totally wrong.
Chengbin
21st September 2009, 13: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, 13: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, 13: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, 13:09
Bluray have really many profil: I will make exhaustive list.
Dark Shikari
21st September 2009, 13: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, 13: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, 13: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, 14: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, 22: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, 23:36
Am I missing something?
I don't see the word "main"
Kurtnoise
22nd September 2009, 00:15
indeed, I need glasses.
/confused by the code...
me7
22nd September 2009, 00:54
baseline + b-frames? Is it possible to use b-frames with x264 when you limit the profile to baseline?
Chengbin
22nd September 2009, 05:04
Does partitions affect decoding? Even an iPod Touch can play all partitions.
zinga
22nd September 2009, 10: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, 11: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, 12: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, 21: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, 14: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, 14: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, 10: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, 12:39
Max gop size for Blu-ray is:
if maxbitrate <= 15000 int(fps)*2
if maxbitrate > 15000 int(fps)*1
Kurtnoise
22nd October 2009, 13: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, 13: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, 22: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, 22: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, 12: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, 13: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, 13: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, 14: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, 14: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, 14: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, 14: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, 18: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, 19: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, 21: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, 21: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, 21: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, 21:37
So?... you obviously not saw second table for FRAMES
Dark Shikari
23rd October 2009, 21: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, 21:45
So you want to say that keyint need to be half of value shown in table?
DigitAl56K
23rd October 2009, 21: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, 21: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, 21: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, 21: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, 22:02
Since when?Well isn't, but it's allowed combination, as is written on paper.
detmek
23rd October 2009, 23: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, 01: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.
klinika
24th October 2009, 09:23
1080i50 (1080i/25) (http://en.wikipedia.org/wiki/1080i)
Sorry to barge in, but does anyone have a source for that other than wikipedia? The article seems to lack one. Up until recently I was convinced that in this style of notation the last number was solely for signifying frame rates, slash or no slash.
nm
24th October 2009, 12:56
There are no widespread interlaced sources shot at 50 or 60 frames/s, only 25 or 30 frames/s. All the broadcast and SD/HD disc standards that define framerates only support interlaced video at 25 or 30 (actually 30000/1001) frames/s.
klinika
24th October 2009, 13:35
There are no widespread interlaced sources shot at 50 or 60 frames/s, only 25 or 30 frames/s. All the broadcast and SD/HD disc standards that define framerates only support interlaced video at 25 or 30 (actually 30000/1001) frames/s.
Aye, it's just a bit surprising to me that in 1080iN notation the N can represent either field or frame rate. Unless there's an authoritative source, I believe it to be a bastardization of the ITU/EBU standard notation serving just to obfuscate it unnecessarily. Anyway, sorry for the OT, I went and asked for sources on wikipedia so I'll take it there.
shon3i
24th October 2009, 15:07
Ok guys sorry for troll :) you are right, I do not know where my mind was :D I tested this combination last night and everyhing is as on table.
so here is:
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 30
1080i 25fps = --keyint 25
480i 29.970fps = --keyint 30
576i 25fps = --keyint 25
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 60
1080i 25fps = --keyint 50
480i 29.970fps = --keyint 60
576i 25fps = --keyint 50
rack04
24th October 2009, 15:31
Is maxrate the same as the bitrate that you specify in 2 pass?
nm
24th October 2009, 15:57
Is maxrate the same as the bitrate that you specify in 2 pass?
No, unless you want to encode at a constant bitrate. VBV maxrate is set according to target device limitations. 1/2-pass bitrate is a user setting for average encoding bitrate, somewhere below the maximum rate.
benwaggoner
25th October 2009, 00:25
Everyone follow after me:
480i30 is NTSC interlaced
576i25 is PAL interlaced
720p50 is PAL 720p
720p60 is NTSC 720p
1080p24 is film 1080p
1080p25 is PAL speedup 1080p film
1080i25 is PAL 1080i
1080i30 is NTSC 1080i
These are your digital broadcast/disc formats in wide use, with non-ambiguous nomenclature.
Of course, of those, we really only need 720p60 for sports/news/action stuff, and 1080p for movie/entertainment stuff. Everything else is a weaker alternative.
thewebchat
25th October 2009, 00:29
What. NTSC has always been 480i60. And NTSC 1080i has always been 1080i60. Why are we trying to retroactively rename terminology.
LoRd_MuldeR
25th October 2009, 00:47
NTSC with 29.97 interlaced/weaved frames per second equals 59.94 fields per second.
So it can be defined as either "i30" (referring to the number of interlaced frames per second) or as "i60" (referring to the fields per second).
Both definitions are valid in a way, but we must a agree on one to avoid confusion. I tend to prefer the latter, as it better reflects the temporal resolution.
Also it is highly questionable whether video with a resolution above 720x480 pixels should still be called "NTSC" ;)
popper
25th October 2009, 01:19
There are no widespread interlaced sources shot at 50 or 60 frames/s, only 25 or 30 frames/s. All the broadcast and SD/HD disc standards that define framerates only support interlaced video at 25 or 30 (actually 30000/1001) frames/s.
what i get from that page
http://tom.niko.users.sbb.rs/gop.jpg
seems simple enough, and we are talking about trying to make it as easy as possible, so as to try and help everyone actually Clearly visualise the intent of the spec.
is:
it doesnt matter if there are, or are no widspread i50 or i60.
the Only thing that matters is:
that IF your bitrate is 15Mbit/s or less then you Can use a 2 second or greater? GOP IF you want to, but you dont have to, you can still use a 1 second GOP if you like within the standard.
less is more here it seems yet again...
to get a valid --keyint value you do the SIMPLE THING, if its Less than 15Mbit/s you simply take the FPS or 'frame rate value[Hz]' if you prefer calling it that , round it up* to the nearest int, and then double it.
if its More than 15Mbit/s then you Do NOT double it, but rather just use the nearest rounded up int of the FPS/'frame rate value[Hz]'.
so your i50 or i60 (or even p50 p60) would use a --keyint value of 100 and 120 If their bitrates were 15Mbit/s or less, or 50 and 60 if they were using faster bitrates!
now we Might have a slight problem here, in that if your after Encoding a future SD/HD high speed camera footage to 15Mbit/s or less, with an FPS of something like >1200 fps at QVGA.
lets say a fixed 10Mbit/s at an fps of 1200 ,then that means you would use a --keyint = 2400 , does --keyint allow for this high a value ?
and were can we get some high quality and high speed footage to try this....
the reason i picked 1200 fps or greater is the fact the HW SOC can apparently capture and encode at these extremely high frame rates for some modes of operation, so if its not here yet, generally , it will sooner or later...
http://www.imgtec.com/news/Release/index.asp?NewsID=440
*because the US etc cant be bothered to just use the simple and set standard BBC PAL int's of 24,25,50,100, and one day 200 TV standards....
nm
25th October 2009, 01:43
what i get from that page
http://tom.niko.users.sbb.rs/gop.jpg
seems simple enough, and we are talking about trying to make it as easy as possible, so as to try and help everyone actually visualise the intent of the spec.
is:
it doesnt matter if there are no widspread i50 or i60.
You are pointing to a draft document that specifically defines the allowed framerates for Blu-ray. Interlaced 50 or 60 frames/s video is not allowed.
the Only thing that matters is:
that IF your bitrate is 15Mbit/s or less then you Can use a 2 second GOP IF you want to, but you dont have to, you can still use a 1 second GOP if you like.
to get a --keyint value you do the SIMPLE THING, if its Less than 15Mbit/s you simply take the FPS or 'frame rate value[Hz]' if you prefer calling it that , round it up* to the nearest int, and then double it.
if its More than 15Mbit/s then you Do NOT double it, but rather just use the nearest rounded up int of the FPS/'frame rate value[Hz]'.
Yes, but the spec still defines the rates that you are allowed to use for each interlaced and progressive frame format.
so your i50 or i60 (or even p50 p60) would use a --keyint value of 100 and 120 If their bitrates were 15Mbit/s or less, or 50 and 60 if they were using faster bitrates!
Interlaced video at 50 or 60 frames/s is not allowed, only 720p50/60 is.
now we Might have a slight problem here, in that if your after Encoding a future SD/HD high speed camera footage to 15Mbit/s or less, with an FPS of something like >1200 fps at QVGA.
What problem? The current broadcast and disc formats don't allow such framerates so you are free to use whatever keyint you want for such a non-standard encode.
If high-speed footage is used in some standard production, it is either played back in slow motion or frames are skipped or combined.
Man, I wish interlacing would die already.
popper
25th October 2009, 02:24
Everyone follow after me:
480i30 is NTSC interlaced
576i25 is PAL interlaced
720p50 is PAL 720p
720p60 is NTSC 720p
1080p24 is film 1080p
1080p25 is PAL speedup 1080p film
1080i25 is PAL 1080i
1080i30 is NTSC 1080i
These are your digital broadcast/disc formats in wide use, with non-ambiguous nomenclature.
Of course, of those, we really only need 720p60 for sports/news/action stuff, and 1080p for movie/entertainment stuff. Everything else is a weaker alternative.
your forgetting to include the near future 2K and 4K modes, shouldnt you be planning, or indeed already adding in these options today for testing etc, to be ready when the consumer kit arrives on mass from the far east OEMs etc,
the DVB org already demoed (PAL) 2K and 4K end to end transmission, Encoded with H.264 last year or perhaps the year before , i forget now.
Manao
25th October 2009, 08:48
From a nomenclature's point of view, 1080i60 is the proper name and makes much more sense than 1080i30. That way, you have xxxx[p|i]yyy, where xxxx is the vertical resolution, yyy is the temporal resolution, and 'i' says the image has been irremediably destroyed.
klinika
25th October 2009, 15:34
Well, as long as we can agree that 1080i/N and 1080/I/N refer solely to frame rates, it's not all fubar yet :p
rapscallion
8th December 2009, 23:25
If some kind soul could input the presets for "standalone AVCHD", it would be much appreciated.(they are different than Blu-ray)
ronnylov
10th December 2009, 17:02
I agree with rapscallion, standalone AVCHD device settings would be nice.
Regarding bluray:
How is the maxrate of 15 Mbit/s achieved when encoding with x264 and not using CBR?
Is it enough to set vbvmaxrate to 15 Mbit/s? There still may be short peaks above 15 Mbit/s?
But on the other hand why should anybody want to do that for bluray?
Maybe if stored on a slow medium (like DVD @ 1x DVD speed)
I guess the safe way to do it is to just use one second keyint and let the bitrate peak above 15 Mbit/s if needed to?
nm
10th December 2009, 22:38
How is the maxrate of 15 Mbit/s achieved when encoding with x264 and not using CBR?
By using VBV.
Is it enough to set vbvmaxrate to 15 Mbit/s? There still may be short peaks above 15 Mbit/s?
Buffer size must also be set -- according to the spec limits. "Peaks" don't matter as long as VBV is set correctly. Of course, quality will be lower in difficult scenes.
But on the other hand why should anybody want to do that for bluray?
Maybe if stored on a slow medium (like DVD @ 1x DVD speed)
That, or storing a large amount of video on a single disc. Longer keyint also improves quality at the same bitrate.
ronnylov
11th December 2009, 09:54
Is it possible to somehow use max keyint of 2 seconds only on the parts where bitrate is below 15 Mbit/s and use max keyint of 1 second only on the difficult parts where the lower 15 Mbit/s VBV limits are exceeded? Maybe do it as an extra pass of the encoder where those parts are re-encoded if necessary to achieve a better quality. It would be a nice feature of a bluray compatible h.264 encoder.
shon3i
11th December 2009, 10:55
Is it possible to somehow use max keyint of 2 seconds only on the parts where bitrate is below 15 Mbit/s and use max keyint of 1 second only on the difficult parts where the lower 15 Mbit/s VBV limits are exceeded? Maybe do it as an extra pass of the encoder where those parts are re-encoded if necessary to achieve a better quality. It would be a nice feature of a bluray compatible h.264 encoder.
I don't think blu-ray standard allow variable GOP, anyway blu-ray allow Open GOP feature which is better and very usefull with short GOP's
fleon
6th January 2010, 15:22
Well , based on the findings of this threat http://forum.doom9.org/showthread.php?t=141628 and also based on my own tests I can confirm that the psp supports:
*Reference Frames: 3
*Mixed References: yes
*B-Frames: 16 ( I have test it with --no-b-adapt --scenecut=-1 --bframes 16 so it really supports it)
*Direct Prediction: Auto
*Weighted B-Frames: yes
*CABAC: yes
*Motion Estimation: SATD Exhaustive
*Trellis: 2
*ME Range: 32
*Subpixel Refinement: 9
*Analysis: All
*8x8 DCT: No!
*No Fast-P-Skip: yes
*No DCT-Decimate: yes
*also vbv-maxrate is not needed at all, there is no limit on the psp
*Deblocking: yes
I also can add that the most recent video that I have converted with these settings and crf 22 is this one http://keithschofield.com/justice/ adding the tune film preset :rolleyes:, and it looks very good, but it kind of lags a little, but it may be just because of that video, I have not tested more videos recently.
I also wanna add that I convert all my videos to 480x272 for space reasons(I have only a 8gb memorystick), but I am pretty sure that the psp can support more resolutions
I may also help with the iphone settings since my brother have one..
Chengbin
6th January 2010, 17:35
I might as well update the specs for the Archos 5 Android since it has been vastly improved.
I still don't have one due to Bestbuy and Futureshop not wanting to restock them, but these are figures that have been tested to work. These are not the limits. I'll find the limits when I get one hopefully.
Under 800x448, it can support every feature in x264's high profile including weightp 2, bframe 16 and ref frame 16.
It supports 16 b frames for all resolution up to 1280x720. Ref frame limits are unknown, but it can support 8 on a 1280x544 (or 720, I forgot, but one of those two) video.
Maximum bitrate is unknown at 1280x720, but I guess it is at least 15Mbps because people say that videos with an average bitrate of 7Mbps plays smoothly.
30fps is having sync issues no matter what bitrate. Hopefully it will get fixed soon.
ninja_racoon
14th January 2010, 08:51
my encode wont play on psp , what do you think is wrong with my settings?
x264 settings
program --profile main --pass 2 --bitrate 384 --stats ".stats" --slow-firstpass --thread-input --deblock -4:-4 --b-adapt 2 --rc-lookahead 60 --merange 24 --me umh --direct auto --subme 9 --partitions p8x8,b8x8,i4x4 --no-8x8dct --no-dct-decimate --no-fast-pskip --output "output" "input"
avisynth
import("C:\Program Files (x86)\AviSynth 2.5\plugins\SeeSaw.avs")
DirectShowSource("D:\RaveN\My Videos\Film\video\video.mkv", fps=23.976, convertfps=true)
crop( 0, 2, 0, -2)
a= last
b=a.DeGrainMedian(limitY=3,limitUV=4,mode=2)
SeeSaw(a,b, NRlimit=3, NRlimit2=4, Sstr=1.5, Slimit=5, Spower=5, Sdamplo=6, Szp=16, sootheS=20)
Spline64Resize(480,200)
TextSub("D:\RaveN\My Videos\Presets\subtitle.ass", 1)
nm
14th January 2010, 10:36
my encode wont play on psp , what do you think is wrong with my settings?
Perhaps PSP doesn't like the pixel dimensions of your video: 480x200 instead of 480x272. Try adding black bars to the top and bottom.
ninja_racoon
14th January 2010, 11:19
Perhaps PSP doesn't like the pixel dimensions of your video: 480x200 instead of 480x272. Try adding black bars to the top and bottom.
most of my encodes are 480x200 and they all work fine on psp until Ive used megui.
Rumbah
14th January 2010, 11:23
You forgot to set --level 3, then it should work (but I have to say that I have some encodes that won't play on the PSP although the settings are correct)
ninja_racoon
14th January 2010, 12:48
You forgot to set --level 3, then it should work (but I have to say that I have some encodes that won't play on the PSP although the settings are correct)
I set my avc level @auto , do I have to set it to 3 to work?
Chainmax
16th January 2010, 19:03
Does anyone know what are the specs for the Nokia 5800? From what little I recall, it only supported low resolution x264 encodes. I have one, so I can test whatever you want.
Rumbah
17th January 2010, 01:59
I set my avc level @auto , do I have to set it to 3 to work?
Yes, the PSP only accepts level 3 files, auto set it to 4 or 4.1 in my tests if I remember correctly. So you should set it to 3 for it to work (and don't forget -ref 3 if you use a slower profile with more ref frames or tune animation).
benwaggoner
19th January 2010, 20:26
Another thing to watch out with the PSP is that it doesn't support CAVLC, IIRC, just CABAC.
No B-pyramid either, also IIRC.
STaRGaZeR
19th January 2010, 21:55
from a nomenclature's point of view, 1080i60 is the proper name and makes much more sense than 1080i30. That way, you have xxxx[p|i]yyy, where xxxx is the vertical resolution, yyy is the temporal resolution, and 'i' says the image has been irremediably destroyed.
I lol'd :D
Atak_Snajpera
19th January 2010, 23:15
Another thing to watch out with the PSP is that it doesn't support CAVLC, IIRC, just CABAC.
No B-pyramid either, also IIRC.
PSP supports CAVLC! You have to use level 2.1 instead of 3.0
zinga
21st January 2010, 10:01
The old x264 b-pyramid was "supported" by the PSP, except it didn't exactly decode correctly. Actually, the video would mostly be quite watchable, just some block-like artefacts (not blocking) would show up now and then.
Unsure about the new b-pyramid, but from memory, it would increase the ref count so I had some issues. Can't test this now though.
lovenithin08
27th March 2010, 18:20
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:
could u please update the spreadsheet for 5800. it could be helpful!
Kurtnoise
28th March 2010, 09:00
Do you have extra infos for it ?
btw, this spreadsheet shouldn't be used soon (http://x264dev.multimedia.cx/?p=270)...
desta
19th May 2010, 16:06
Sorry to bump an older thread, but I wondered if anyone might know the capabilities (official/unofficial) for Android 2.1. I've just got a HTC Desire and am looking to put some video on it, but wasn't sure what encoding settings to start with as a reference point. I've seen a few people say to use the standard iphone settings (baseline, level 3, vbv buf/max 10000, etc), but knowing the iphone can handle high profile, level 4.1 leads me to believe the htc desire can fairly comfortably achieve the same?!
Chengbin
20th May 2010, 02:41
Sorry to bump an older thread, but I wondered if anyone might know the capabilities (official/unofficial) for Android 2.1. I've just got a HTC Desire and am looking to put some video on it, but wasn't sure what encoding settings to start with as a reference point. I've seen a few people say to use the standard iphone settings (baseline, level 3, vbv buf/max 10000, etc), but knowing the iphone can handle high profile, level 4.1 leads me to believe the htc desire can fairly comfortably achieve the same?!
No. Android has terrible video support. The hardware may be capable of it, but the Android system doesn't have the hardware accelerated decoding code for it.
desta
20th May 2010, 23:52
No. Android has terrible video support. The hardware may be capable of it, but the Android system doesn't have the hardware accelerated decoding code for it.
Ah ok, thanks for the info.
Shortly after my last post I did actually try some higher settings, but most of them were a non-starter. Anything higher than baseline just wouldn't play. Anything higher than level 3 would play, but in a garbled mess. I can actually get some nice looking video with baseline level 3 ("nice" considering it's displayed on a small screen), but I lose a hell of a lot of compression without bframes. :/
Ah well... maybe if/when coreplayer for Android arrives it'll help with higher support. It helped me play video on my old N95 that the inbuilt media player couldn't handle. Then again, there's supposedly going to be an update for android that will enable divx hd playback.
Just posting this here to add my own experiences in encoding for PS3 playback. I used the PS3 preset in MeGUI 0.3.5.0 and encountered strange problems with the videos starting properly on both the PS3 and WMP. The videos would start with a blank screen for the first ten seconds while the sound was playing on the PS3, whereas the videos would play sped-up with no sound during the first few seconds on WMP. After much trial and error work, I found the issue was with the B-frame and I-Frame settings. For completely stable playback on both PS3 and WMP, I found turning B-frames off (set to zero) and setting Extra I-frames to 100 fixed all problems I was having. This is not to say they must be set this way for any PS3 playback, it's rather just a "safe-mode" I found that avoids issues entirely.
nurbs
11th July 2010, 10:22
It should also be noted that in the discussion in the MeGUI preset thread FBX was the only one experiencing such problems. No one else reported problems with b-frames and WMP, in fact when I read that I encoded a file to test it and it was fine, and for me and others there is no problem with the default settings of x264 with regard to PS3 compatibility.
jacksback
2nd August 2010, 21:07
Hi everyone.
I recently bought an Android Touchpad and was wondering what encoding settings I should use for my HD movies? The pad apparently supports full hd 1080p mkv playback
Here are the specs
CPU: ARM A8
FSB: 1G MHz
Memory: DDR 256MB
LCD TFT display: 10.2”
Resolution: 1024×600
Thanks
nurbs
2nd August 2010, 21:15
What does the manual say about level support? 1080p means level 4.1 or 4.0 which are largely identical except the latter has tighter VBV constraints. If you know the level it supports just use the presets and tunings in x264 and uses the --level and appropriate VBV settings to ensure it works.
If you want to play it safe downsize to 720p and maybe keep within level 3.1. In my experience most HD sources don't really have much detail beyond that resolution, you mostly get more noise/grain. Furthermore high bitrates could be problematic for an ARM if the whole thing doesn't have a fast DSP or an ASIC for the decoding. Since you save space and don't really lose much I'd give it a try.
I'd also be interested in taking a look at the touchpad. Could you post a link or the product and company name?
stax76
2nd August 2010, 21:15
Maybe best to use 1024 as width, more seem to be a waste of disc space and encoding time unless you also want to play it somewhere with bigger screen.
jacksback
2nd August 2010, 21:19
Sorry, should have said "I've ordered one" because don't have it yet or the manual. I'll have a read when I get it in about 2 weeks time.
Going to encode a test movie using the ipad profile and will set the resolution the match the screen res of the Android pad.
Thanks for your replies
jacksback
2nd August 2010, 21:25
Here's a link to the same one I bought on Ebay
The seller I bought mine from - got it for 215 pounds all inclusive
http://cgi.ebay.co.uk/10-2-Android-2-1-Apad-1-GHz-256-RAM-Tablet-PC-HD-UMPC-/260644152610?cmd=ViewItem&pt=LH_DefaultDomain_3&hash=item3caf9a2522
Some better pics
http://cgi.ebay.co.uk/NEW-10-2-INCH-TOUCH-SCREEN-TABLET-ANDROID-APAD-WEB-PAD-/300450358469?cmd=ViewItem&pt=LH_DefaultDomain_3&hash=item45f43ca4c5
Chengbin
3rd August 2010, 15:33
I'll be VERY surprised if a non Archos Android device can play one 720p format, let alone a hoard of 1080p formats.
But on topic, why don't you try it out? There won't be information about the settings supported on the internet or the manual. Guess and check is my choice.
Start by checking if it supports high profile. If it doesn't, check if main profile is supported, if not, try baseline. If it does, check if it supports 720p. If it plays 720p smoothly, try 1080p, the check bitrate, etc.
jacksback
3rd August 2010, 15:47
I'll be VERY surprised if a non Archos Android device can play one 720p format, let alone a hoard of 1080p formats.
But on topic, why don't you try it out? There won't be information about the settings supported on the internet or the manual. Guess and check is my choice.
Start by checking if it supports high profile. If it doesn't, check if main profile is supported, if not, try baseline. If it does, check if it supports 720p. If it plays 720p smoothly, try 1080p, the check bitrate, etc.
I encoded three movies last night using the iPad profile, chose 2 channel aac audio and a custom resolution of 1024 x 600. I encoded using CQ22 and had an average bitrate of 1700kbps. I'll test these three out first and will move onto the higher profile when I get the device. I guess it will just be trial and error to start. I'll even try playing a full hd encode to see if it does what it says on the tin :)
Tengato
13th August 2010, 06:14
Hi, I'm having the hardest time trying to encode video for my PSP (model 3000, firmware v6.31).
Here is my process, starting from a .VOB file:
dgindex.exe -AIF=[C:\MyVideo\VTS_01_1.VOB] -OF=[C:\MyVideo\VTS_01_1] -FO=0 -EXIT -HIDE -OM=2
AviSynth:
LoadPlugin("C:\MeGUI\tools\dgindex\DGDecode.dll")
DGDecode_mpeg2source("C:\MyVideo\VTS_01_1.d2v")
LanczosResize(480, 272)
x264:
x264.exe --profile main --level 3 --crf 21 --partitions p8x8,b8x8,i4x4 --no-8x8dct --ref 3 --output "C:\MyVideo\VTS_01_1.264" "C:\MyVideo\VTS_01_1.avs"
For audio I use MeGUI and Nero AAC to encode the .ac3 file, downmixing to Stereo.
MP4Box:
mp4box.exe -add "C:\MyVideo\VTS_01_1.264:fps=23.976" -add "C:\MyVideo\VTS_01_1 T80 3_2ch 448Kbps DELAY 0ms.mp4" -psp -tmp "C:\MyVideo" -new "C:\MyVideo\VTS_01_1-muxed.mp4"
The resulting MP4 plays fine in Zune Software and Quicktime Player, but when I put it on my PSP and try to play it it shows one or two frames of black and then displays the message "The video cannot be played." I've tried letting x264 create the file and then just having MP4Box add the audio, but the result is the same. I figure I must be missing a parameter somewhere that's necessary for PSP compatibility?
Thanks,
-Pat
Rumbah
13th August 2010, 13:30
Try adding --b-pyramid none to your command line and it should work.
Wishbringer
13th August 2010, 14:06
x264:
x264.exe --profile main --level 3 --crf 21 --partitions p8x8,b8x8,i4x4 --no-8x8dct --ref 3 --output "C:\MyVideo\VTS_01_1.264" "C:\MyVideo\VTS_01_1.avs"
I use "--aud --b-pyramid none" too
virtualdub
14th August 2010, 06:03
ok .maybe the same prob here http://forum.doom9.org/showthread.php?t=156110
try to use old 1649 build x264 to encoding clips, never using the newest build until we get clear solution from GPAC.
Check your x264 build version first.
Tengato
14th August 2010, 08:27
Yes! '--b-pyramid none' did the trick. Thanks guys.
I checked my x264 version as well and it seems to be 1649.
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.