Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Video Encoding > MPEG-4 AVC / H.264

Reply
 
Thread Tools Search this Thread Display Modes
Old 6th April 2010, 00:35   #1  |  Link
MyCometG3
Registered User
 
Join Date: May 2008
Posts: 35
x264Encoder 1.2.x for QuickTime Thread

This is support thread for x264Encoder, QuickTime Compressor component for MacOS X 10.5 and QuickTime 7.6 or later.

Get latest version at:
- http://www003.upp.so-net.ne.jp/mycometg3/

/*I am not native speaker (Japanese), so please make simple English in this thread.*/

//

1) Please read README.rtf file
It is inside distributed dmg file. It is helpful to start, or to trouble-shoot.

2) Try MPEG Streamclip
For most casual purpose (i.e.non-productive-personnel), MPEG Streamclip 1.9.2 from Squared 5 (FREE!) is enough solution. It can use many QuickTime components, and support direct output to mp4 container using x264Encoder. QuickTime Player 7 Pro does not yet.

3) YouTube Channel
I have made YouTube channel. It could be your help.
- http://www.youtube.com/user/MyCometG3

4) Please use "log info" checkbox
It will write out SEI information which comes from libx264, into system.log. You can see system.log in /Applications/Utilities/Console.app.

Following shows the sample output of LOGINFO in system.log. You can see the longest line which contains many parameters. It is called SEI information, and requirement for tracking your problem.

Quote:
[libx264 @ 0x1088800]using SAR=1/1
[libx264 @ 0x1088800]using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
[libx264 @ 0x1088800]profile High, level 3.0
[libx264 @ 0x1088800]x264 - core 92 r1510M 33d382a - H.264/MPEG-4 AVC codec - Copyleft 2003-2010 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 wpredb=1 wpredp=2 keyint=24 keyint_min=13 scenecut=40 intra_refresh=0 rc_lookahead=24 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=10 qpmax=51 qpstep=4 ip_ratio=1.40 aq=1:1.00
[libx264 @ 0x1088800]frame I:11 Avg QP:23.98 size: 33839
[libx264 @ 0x1088800]frame P:127 Avg QP:26.35 size: 8197
[libx264 @ 0x1088800]frame B:113 Avg QP:27.64 size: 1840
[libx264 @ 0x1088800]consecutive B-frames: 10.4% 75.8% 13.8% 0.0%
[libx264 @ 0x1088800]mb I I16..4: 9.7% 70.8% 19.6%
[libx264 @ 0x1088800]mb P I16..4: 1.2% 4.4% 1.4% P16..4: 45.4% 15.5% 10.6% 0.0% 0.0% skip:21.6%
[libx264 @ 0x1088800]mb B I16..4: 0.5% 0.1% 0.1% B16..8: 48.5% 0.4% 0.9% direct: 2.8% skip:46.8% L0:48.6% L1:48.8% BI: 2.7%
[libx264 @ 0x1088800]8x8 transform intra:65.5% inter:72.1%
[libx264 @ 0x1088800]coded y,uvDC,uvAC intra: 79.4% 68.2% 37.7% inter: 19.5% 17.4% 0.2%
[libx264 @ 0x1088800]i16 v,h,dc,p: 17% 75% 5% 3%
[libx264 @ 0x1088800]i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 14% 32% 4% 6% 6% 8% 6% 7%
[libx264 @ 0x1088800]i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 40% 11% 4% 6% 6% 6% 5% 5%
[libx264 @ 0x1088800]Weighted P-Frames: Y:0.0%
[libx264 @ 0x1088800]ref P L0: 53.2% 25.4% 11.9% 9.5%
[libx264 @ 0x1088800]ref B L0: 74.8% 23.2% 2.0%
[libx264 @ 0x1088800]ref B L1: 99.0% 1.0%
[libx264 @ 0x1088800]kb/s:1548.65
Attached Images
 

Last edited by MyCometG3; 6th April 2010 at 00:57.
MyCometG3 is offline   Reply With Quote
Old 6th April 2010, 00:43   #2  |  Link
Dark Shikari
x264 developer
 
Dark Shikari's Avatar
 
Join Date: Sep 2005
Posts: 8,688
I wonder if the "keyint=24" and "bframes=0" are intentional in the example, because all the other settings are default...

Also, since you are Japanese, you should hang out on #x264 on Freenode IRC; there are a lot of Japanese x264 devs and users there (along with a few foreign speakers, including one professional translator).
Dark Shikari is offline   Reply With Quote
Old 6th April 2010, 00:59   #3  |  Link
MyCometG3
Registered User
 
Join Date: May 2008
Posts: 35
Quote:
I wonder if the "keyint=24" and "bframes=0" are intentional in the example
Woops, updated example now. bframes=3 now.

Note: Keyint=24 is default value of every QuickTime Compressor component, thus it is intentional.
MyCometG3 is offline   Reply With Quote
Old 6th April 2010, 01:19   #4  |  Link
Blue_MiSfit
Derek Prestegard IRL
 
Blue_MiSfit's Avatar
 
Join Date: Nov 2003
Location: Los Angeles
Posts: 5,732
This is a very handy little tool, though its interface is rather confusing.

Still, you won't hear me complain. The ability to use x264 on a Compressor cluster is pretty durn cool

Elementary stream output would be nice, but I guess that's more a Compressor issue.

~MiSfit
Blue_MiSfit is offline   Reply With Quote
Old 6th April 2010, 02:03   #5  |  Link
MyCometG3
Registered User
 
Join Date: May 2008
Posts: 35
I am sorry that makes you confusing.
Because it is designed to use single gui wrapper for libavcodec, using x264, xvid, libavcodec mpeg4, etc. If someone want, I could make libavcodec-snow encoder... I guess.

Quote:
use x264 on a Compressor cluster
Unfortunately, I am not rich...

Does Compressor cluster work with other third party's QuickTime Components? Like, Flip4mac, 3ivx, DivX, etc.

(I can not find any developer/technical details in Apple web site, about Compressor compatible requirements.)

//

I have checked out Compressor 3.5 at real apple store. It seems that QuickTime Movie preset would work with x264Encoder, in cluster mode. Did you have tried it?

Last edited by MyCometG3; 6th April 2010 at 10:47.
MyCometG3 is offline   Reply With Quote
Old 6th April 2010, 14:11   #6  |  Link
0028606
Registered User
 
Join Date: Jan 2009
Posts: 28
This is a great tool, I have use it for some time now so just wanted to say thanks
0028606 is offline   Reply With Quote
Old 6th April 2010, 19:40   #7  |  Link
Blue_MiSfit
Derek Prestegard IRL
 
Blue_MiSfit's Avatar
 
Join Date: Nov 2003
Location: Los Angeles
Posts: 5,732
@MyCometG3:

I haven't tried clustering, actually. I only have Compressor 2 on my MacPro at work.

I had some issues taking an MOV generated by this encoder in compressor, demuxing it, and remuxing into a TS. I'll see if I can replicate that issue for you.

~MiSfit
Blue_MiSfit is offline   Reply With Quote
Old 10th April 2010, 01:25   #8  |  Link
MyCometG3
Registered User
 
Join Date: May 2008
Posts: 35
Update: 1.2.4 - r1523

x264Encoder Version 1.2.4 is now available at:
- http://www003.upp.so-net.ne.jp/mycometg3/

Based on libx264.a r1523.
MyCometG3 is offline   Reply With Quote
Old 17th April 2010, 09:54   #9  |  Link
MyCometG3
Registered User
 
Join Date: May 2008
Posts: 35
Update: 1.2.5 - r1542

x264Encoder Version 1.2.5 is now available at:
- http://www003.upp.so-net.ne.jp/mycometg3/

Based on libx264.a r1542.
MyCometG3 is offline   Reply With Quote
Old 17th April 2010, 11:15   #10  |  Link
creamyhorror
Registered User
 
Join Date: Mar 2008
Posts: 118
Thanks for the update.

Is there a better place to include the field for CRF value when Single-pass is selected? After all, it would be good to encourage CRF usage by making it more accessible, or even the default. (If I'm not wrong, the CRF value is under the Flags tab at the moment.)
creamyhorror is offline   Reply With Quote
Old 17th April 2010, 15:48   #11  |  Link
MyCometG3
Registered User
 
Join Date: May 2008
Posts: 35
@creamyhorror

To use CRF, just choose "Data rate : Automatic" instead of specific kbits/sec value. It has same effect as CRF checkbox inside lavcodec settings dialog.

If a user has selected multipass with CRF (or data rate=auto), first pass is just skipped (you can see "log info" how it runs).

Quote:
or even the default
I would like to, but I can not find how to override default values till now... QuickTime API is, a kind of the CHAOS. :-(
MyCometG3 is offline   Reply With Quote
Old 17th April 2010, 20:07   #12  |  Link
smok3
brontosaurusrex
 
smok3's Avatar
 
Join Date: Oct 2001
Posts: 2,395
Quote:
Originally Posted by MyCometG3 View Post
@creamyhorror

To use CRF, just choose "Data rate : Automatic" instead of specific kbits/sec value. It has same effect as CRF checkbox inside lavcodec settings dialog.

If a user has selected multipass with CRF (or data rate=auto), first pass is just skipped (you can see "log info" how it runs).


I would like to, but I can not find how to override default values till now... QuickTime API is, a kind of the CHAOS. :-(
and CRF scale is that slider in percents?
smok3 is offline   Reply With Quote
Old 17th April 2010, 22:16   #13  |  Link
MyCometG3
Registered User
 
Join Date: May 2008
Posts: 35
Take a look at README-tips.rtf.

Quote:
Quality Slider
* Quality slider corresponds to ffmpeg -qmin. Center is QP=23, Best is QP=13, Least is QP=33. And qmax is QP=51, fixed value.
* On Constant Rate Factor-CRF Mode, the slider corresponds to ffmpeg -crf. Center is crf=23, Best is crf =13, Least is crf =33.
When you don't move slider as default, QP23 or CRF23 are applied.
MyCometG3 is offline   Reply With Quote
Old 17th April 2010, 23:24   #14  |  Link
Dark Shikari
x264 developer
 
Dark Shikari's Avatar
 
Join Date: Sep 2005
Posts: 8,688
Why in the world does the quality slider map to qmin?
Dark Shikari is offline   Reply With Quote
Old 18th April 2010, 01:46   #15  |  Link
MyCometG3
Registered User
 
Join Date: May 2008
Posts: 35
It is intended to simulate similar behavior as other compressor component (i.e. codec) like Apple H.264, etc.

QuickTime provides common compressor dialog which has single thumbnail image. And, it should show the result of quality slider in thumbnail image.

To change QP value on single frame, mapping qmin/crf as quality slider, seems to be natural behavior to most part of users.

//

I know x264 binary uses qpmin's default as 10. If someone want to use qpmin value less than 13 (x264Encoder's smallest limit), I could make it.

But in most case, I think placebo+grain can inflate Intra frame's sample size, and more smarter way for most non-geek users.
MyCometG3 is offline   Reply With Quote
Old 18th April 2010, 01:56   #16  |  Link
Dark Shikari
x264 developer
 
Dark Shikari's Avatar
 
Join Date: Sep 2005
Posts: 8,688
Quote:
Originally Posted by MyCometG3 View Post
It is intended to simulate similar behavior as other compressor component (i.e. codec) like Apple H.264, etc.

QuickTime provides common compressor dialog which has single thumbnail image. And, it should show the result of quality slider in thumbnail image.

To change QP value on single frame, mapping qmin/crf as quality slider, seems to be natural behavior to most part of users.
But CQP or CRF should be "quality", not qmin...
Dark Shikari is offline   Reply With Quote
Old 18th April 2010, 03:20   #17  |  Link
MyCometG3
Registered User
 
Join Date: May 2008
Posts: 35
Quote:
But CQP or CRF should be "quality", not qmin...
x264Encoder currently works in three mode.
1) ABR mode - which runs same as --qpmin/--qpmax 51/--bitrate combo
2) CRF mode - which runs as --crf
3) lossless - which runs as --qp=0

In case of 1), Quality slider is mapped as --qpmin 13~33. qpmax is 51, fixed. bitrate field is used as target bitrate.
In case of 2), Quality slider works as --crf 13~33. bitrate field is ignored.
In case of 3), Quality slider and bitrate field are ignored.

...Is this so nonsense?

Last edited by MyCometG3; 18th April 2010 at 03:22.
MyCometG3 is offline   Reply With Quote
Old 18th April 2010, 03:25   #18  |  Link
Dark Shikari
x264 developer
 
Dark Shikari's Avatar
 
Join Date: Sep 2005
Posts: 8,688
I don't think --bitrate mode should have a quality slider... it doesn't make sense.

The user shouldn't be messing with qpmin anyways.
Dark Shikari is offline   Reply With Quote
Old 18th April 2010, 03:49   #19  |  Link
MyCometG3
Registered User
 
Join Date: May 2008
Posts: 35
Quote:
it doesn't make sense
Humm.

To make single pass + smaller gop size works better, limiting qpmin seems to be one choice, I guess.

Currently QuickTime's default Key frame interval (used as keyint) is 24, it is too smaller value compared to rc_lookahead's default value.
If default keyint is larger value like 120 or so, rc_lookahead perfectly controls each frame's qp. But it is not for now.
Under this restriction (as common QuickTime Component), limiting QP-min value seems to be one of resonable solution.

Well-known user always changes, but novice user may not change. It is easy to overshoot on this case.
MyCometG3 is offline   Reply With Quote
Old 18th April 2010, 04:19   #20  |  Link
Adub
Fighting spam with a fish
 
Adub's Avatar
 
Join Date: Sep 2005
Posts: 2,685
You will have to forgive me, as I do not own a mac yet, but is it possible to use this plugin with something like iMovie, or Final Cut?
__________________
FAQs:Bond's AVC/H.264 FAQ
Site:Adubvideo
Adub is offline   Reply With Quote
Reply

Tags
mac os x, quicktime, x264encoder

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 10:17.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.