Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request]Use 4:4:4 chroma sampling whenever possible. #63

Open
sebma opened this issue Nov 26, 2021 · 0 comments
Open

[Feature Request]Use 4:4:4 chroma sampling whenever possible. #63

sebma opened this issue Nov 26, 2021 · 0 comments

Comments

@sebma
Copy link

sebma commented Nov 26, 2021

Hi,

When doing screen recording with ffmpeg on my PC with the x11grab input device, ffmpeg automatically selects the following x264 options, these maybe more appropriate when it comes to screen recording :

$ set -x;screenRecordNoAudio dummy.mp4 -y;set +x
++ xrandr
++ awk '/\*/{print$1}'
+ /usr/local/bin/ffmpeg -hide_banner -video_size 1600x900 -framerate 15 -f x11grab -i :0.0 dummy.mp4 -y
[x11grab @ 0x6257d80] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #0, x11grab, from ':0.0':
  Duration: N/A, start: 1637887331.468317, bitrate: 691200 kb/s
  Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1600x900, 691200 kb/s, 15 fps, 1000k tbr, 1000k tbn, 1000k tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 0x62661c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX BMI1 SlowPshufb
[libx264 @ 0x62661c0] profile High 4:4:4 Predictive, level 4.0, 4:4:4, 8-bit
[libx264 @ 0x62661c0] 264 - core 164 r3075 66a5bc1 - H.264/MPEG-4 AVC codec - Copyleft 2003-2021 - 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=4 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=15 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'dummy.mp4':
  Metadata:
    encoder         : Lavf58.76.100
  Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv444p(tv, progressive), 1600x900, q=2-31, 15 fps, 15360 tbn
    Metadata:
      encoder         : Lavc58.134.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
frame=  723 fps= 14 q=-1.0 Lsize=    3951kB time=00:00:48.00 bitrate= 674.3kbits/s dup=640 drop=3 speed=0.939x    
video:3942kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.235951%
[libx264 @ 0x62661c0] frame I:6     Avg QP:13.98  size:195808
[libx264 @ 0x62661c0] frame P:189   Avg QP:18.65  size: 14786
[libx264 @ 0x62661c0] frame B:528   Avg QP:30.47  size:   126
[libx264 @ 0x62661c0] consecutive B-frames:  2.5%  0.3%  0.4% 96.8%
[libx264 @ 0x62661c0] mb I  I16..4: 29.7% 41.6% 28.8%
[libx264 @ 0x62661c0] mb P  I16..4:  0.2%  1.4%  1.0%  P16..4:  5.0%  0.5%  0.6%  0.0%  0.0%    skip:91.3%
[libx264 @ 0x62661c0] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  1.7%  0.0%  0.0%  direct: 0.0%  skip:98.2%  L0:21.1% L1:78.5% BI: 0.4%
[libx264 @ 0x62661c0] 8x8 transform intra:47.3% inter:69.7%
[libx264 @ 0x62661c0] coded y,u,v intra: 49.5% 39.0% 37.2% inter: 0.9% 0.6% 0.6%
[libx264 @ 0x62661c0] i16 v,h,dc,p: 70% 23%  4%  2%
[libx264 @ 0x62661c0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 39% 27% 13%  3%  3%  3%  4%  3%  5%
[libx264 @ 0x62661c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 28% 11%  5%  7%  6%  8%  6%  9%
[libx264 @ 0x62661c0] Weighted P-Frames: Y:1.1% UV:1.1%
[libx264 @ 0x62661c0] ref P L0: 60.6%  7.4% 24.9%  7.0%  0.1%
[libx264 @ 0x62661c0] ref B L0: 85.3% 13.6%  1.1%
[libx264 @ 0x62661c0] ref B L1: 81.9% 18.1%
[libx264 @ 0x62661c0] kb/s:669.83

real	0m51.313s
user	1m48.130s
sys	0m3.104s
+ set +x
$ mediainfo dummy.mp4
General
Complete name                            : dummy.mp4
Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom (isom/iso2/avc1/mp41)
File size                                : 3.86 MiB
Duration                                 : 48 s 200 ms
Overall bit rate                         : 672 kb/s
Writing application                      : Lavf58.76.100

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High 4:4:4 Predictive@L4
Format settings                          : CABAC / 4 Ref Frames
Format settings, CABAC                   : Yes
Format settings, Reference frames        : 4 frames
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 48 s 200 ms
Bit rate                                 : 670 kb/s
Width                                    : 1 600 pixels
Height                                   : 900 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 15.000 FPS
Chroma subsampling                       : 4:4:4
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.031
Stream size                              : 3.85 MiB (100%)
Writing library                          : x264 core 164 r3075 66a5bc1
Encoding settings                        : 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=4 / threads=6 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=15 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=23.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Codec configuration box                  : avcC

$ mediainfo dummy.mp4 | egrep "profile|Chroma|Encoding.settings"
Format profile                           : Base Media
Format profile                           : High 4:4:4 Predictive@L4
Chroma subsampling                       : 4:4:4
Encoding settings                        : 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=4 / threads=6 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=15 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=23.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
$
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant