Wondering how keyframes are handled with regard to x264.
I've noticed almost all scene cuts get a keyframe, makes sense as a default. However, it seems in the absence of a detectable scene cut, a keyframe is generated every 12 seconds (at least when 1080p @ 29.970fp). SD content seems to have a shorter but more arbitrary non-scene cut interval. Not sure why this default duration was selected or how to change it.
So first, how do I change to a constant keyframe rate (i.e. every 2 seconds, regardless of cuts or lack of cuts)?
Second, how do I change the non-scene cut keyframe duration while also generating them for scene cuts?
Steps to reproduce the problem (If Applicable):
Inspect the keyframes of any x264 render from HandBrake of content that has long intervals (30+ seconds) without scene cuts.
HandBrake version (e.g., 1.0.0):
1.3.0 and Nightly 0b089e9
Operating system and version (e.g., Ubuntu 16.04 LTS, macOS 10.13 High Sierra, Windows 10 Creators Update):
Windows 10 Pro x64
HandBrake Activity Log ***required*** (see How-to get an activity log)
Code: Select all
HandBrake Nightly 20191229213216-0b089e9-master (2019122901)
OS: Microsoft Windows NT 6.2.9200.0
CPU: Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz
Ram: 8169 MB,
GPU Information:
NVIDIA GeForce GTX 460M - 23.21.13.8857
Screen: 1920x1080
Temp Dir: C:\Users\David\AppData\Local\Temp\
Install Dir: X:\Installers\HandBrake-20191229-0b089e9d1_x86_64-Win_GUI
Data Dir: C:\Users\David\AppData\Roaming\HandBrake\Nightly
-------------------------------------------
# Starting Encode ...
[07:22:06] base preset: Fixer (Modified)
[19:22:06] hb_init: starting libhb thread
[19:22:06] Starting work at: Sun Jan 05 19:22:06 2020
[19:22:06] 1 job(s) to process
[19:22:06] json job:
{
"Audio": {
"AudioList": [
{
"DRC": 0.0,
"Encoder": "copy",
"Gain": 0.0,
"Mixdown": -1,
"NormalizeMixLevel": false,
"Samplerate": 0,
"Track": 0,
"DitherMethod": 0
}
],
"CopyMask": [
"copy:aac",
"copy:ac3",
"copy:dtshd",
"copy:dts",
"copy:eac3",
"copy:flac",
"copy:mp3",
"copy:truehd"
],
"FallbackEncoder": "ac3"
},
"Destination": {
"ChapterList": [
{
"Name": "Chapter 1"
}
],
"ChapterMarkers": true,
"AlignAVStart": false,
"File": "X:\\--------------------.mkv",
"Mp4Options": {
"IpodAtom": false,
"Mp4Optimize": false
},
"Mux": "mkv"
},
"Filters": {
"FilterList": [
{
"ID": 2,
"Settings": {
"skip-bottom": "0",
"skip-left": "0",
"skip-right": "0",
"skip-top": "1"
}
},
{
"ID": 12,
"Settings": {
"crop-bottom": "0",
"crop-left": "0",
"crop-right": "0",
"crop-top": "0",
"height": "1080",
"width": "1920"
}
},
{
"ID": 6,
"Settings": {
"mode": "0"
}
}
]
},
"PAR": {
"Num": 1,
"Den": 1
},
"Metadata": {},
"SequenceID": 0,
"Source": {
"Angle": 1,
"Range": {
"Type": "frame",
"Start": 0,
"End": 153657
},
"Title": 1,
"Path": "N:\\Music\\-----.vid\\--------------------.mpg"
},
"Subtitle": {
"Search": {
"Burn": false,
"Default": false,
"Enable": false,
"Forced": false
},
"SubtitleList": []
},
"Video": {
"Encoder": "x264",
"Level": "auto",
"TwoPass": false,
"Turbo": false,
"ColorMatrixCode": 0,
"Options": "rc-lookahead=60:bframes=8:ref=4:merange=64:analyse=all:trellis=2",
"Preset": "veryfast",
"Profile": "auto",
"Quality": 19.0,
"QSV": {
"Decode": false,
"AsyncDepth": 0
}
}
}
[19:22:06] CPU: Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz
[19:22:06] - Intel microarchitecture Sandy Bridge
[19:22:06] - logical processor count: 8
[19:22:06] Intel Quick Sync Video support: no
[19:22:06] hb_scan: path=N:\Music\-----.vid\--------------------.mpg, title_index=1
udfread ERROR: ECMA 167 Volume Recognition failed
src/libbluray/disc/disc.c:323: failed opening UDF image N:\Music\-----.vid\--------------------.mpg
src/libbluray/disc/disc.c:424: error opening file BDMV\index.bdmv
src/libbluray/disc/disc.c:424: error opening file BDMV\BACKUP\index.bdmv
src/libbluray/bluray.c:2585: nav_get_title_list(N:\Music\-----.vid\--------------------.mpg\) failed
[19:22:07] bd: not a bd - trying as a stream/file instead
libdvdnav: Using dvdnav version 6.0.1
libdvdread:DVDOpenFileUDF:UDFFindFile /VIDEO_TS/VIDEO_TS.IFO failed
libdvdread:DVDOpenFileUDF:UDFFindFile /VIDEO_TS/VIDEO_TS.BUP failed
libdvdread: Can't open file VIDEO_TS.IFO.
libdvdnav: vm: failed to read VIDEO_TS.IFO
[19:22:07] dvd: not a dvd - trying as a stream/file instead
[19:22:07] file is MPEG Program Stream
[19:22:07] Probing 1 unknown stream
[19:22:07] Probe: Found stream mpegvideo. stream id 0xe0-0x0
[19:22:07] Found the following streams
[19:22:07] Video Streams :
[19:22:07] 0xe0-0x0 type MPEG2 (0x2)
[19:22:07] Audio Streams :
[19:22:07] 0xbd-0x80 type AC3 (0x81)
[19:22:07] Subtitle Streams :
[19:22:07] Other Streams :
[19:22:07] stream id 0xbd (type 0x81 substream 0x80) audio 0x8000bd
[19:22:11] scan: decoding previews for title 1
[19:22:11] file is MPEG Program Stream
[19:22:11] Probing 1 unknown stream
[19:22:11] Probe: Found stream mpegvideo. stream id 0xe0-0x0
[19:22:11] scan: audio 0x8000bd: ac3, rate=48000Hz, bitrate=256000 Unknown (AC3) (2.0 ch) (256 kbps)
[19:22:12] stream: 324 good frames, 0 errors (0%)
[19:22:12] scan: 10 previews, 1920x1080, 29.970 fps, autocrop = 0/0/0/0, aspect 16:9, PAR 1:1
[19:22:12] libhb: scan thread found 1 valid title(s)
[19:22:12] Starting Task: Encoding Pass
[19:22:12] Skipping crop/scale filter
[19:22:12] Auto Passthru: allowed codecs are AAC, AC3, E-AC3, TrueHD, DTS, DTS-HD, MP3, FLAC
[19:22:12] Auto Passthru: fallback is AC3
[19:22:12] Auto Passthru: using AC3 Passthru for track 1
[19:22:12] work: only 1 chapter, disabling chapter markers
[19:22:12] job configuration:
[19:22:12] * source
[19:22:12] + N:\Music\-----.vid\--------------------.mpg
[19:22:12] + title 1, frames 0 to 153656
[19:22:12] * destination
[19:22:12] + X:\--------------------.mkv
[19:22:12] + container: Matroska (libavformat)
[19:22:12] * video track
[19:22:12] + decoder: mpeg2video
[19:22:12] + bitrate 200 kbps
[19:22:12] + filters
[19:22:12] + Detelecine (pullup) (skip-left=0:skip-right=0:skip-top=1:skip-bottom=0)
[19:22:12] + Framerate Shaper (mode=0)
[19:22:12] + frame rate: same as source (around 29.970 fps)
[19:22:12] + Output geometry
[19:22:12] + storage dimensions: 1920 x 1080
[19:22:12] + pixel aspect ratio: 1 : 1
[19:22:12] + display dimensions: 1920 x 1080
[19:22:12] + encoder: H.264 (libx264)
[19:22:12] + preset: veryfast
[19:22:12] + options: rc-lookahead=60:bframes=8:ref=4:merange=64:analyse=all:trellis=2
[19:22:12] + profile: auto
[19:22:12] + level: auto
[19:22:12] + quality: 19.00 (RF)
[19:22:12] + color profile: 1-1-1
[19:22:12] * audio track 1
[19:22:12] + decoder: Unknown (AC3) (2.0 ch) (256 kbps) (track 1, id 0x8000bd)
[19:22:12] + bitrate: 256 kbps, samplerate: 48000 Hz
[19:22:12] + AC3 Passthru
[19:22:12] file is MPEG Program Stream
[19:22:12] Probing 1 unknown stream
[19:22:12] Probe: Found stream mpegvideo. stream id 0xe0-0x0
[19:22:12] sync: expecting 153657 video frames
[19:22:12] encx264: min-keyint: 30, keyint: 300
[19:22:12] encx264: encoding at constant RF 19.000000
[19:22:12] encx264: unparsed options: rc-lookahead=60:bframes=8:ref=4:merange=64:analyse=all:trellis=2:weightp=1:subme=2:mixed-refs=0
x264 [info]: using SAR=1/1
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
x264 [info]: profile High, level 4.0, 4:2:0, 8-bit
[19:22:12] sync: first pts video is 0
[19:22:12] sync: first pts audio 0x8000bd is 0
[20:46:56] reader: done. 2 scr changes
[20:46:58] work: average encoding speed for job is 30.211010 fps
[20:46:58] vfr: lost time: 76090014 (0 frames)
[20:46:58] vfr: gained time: 76090014 (101344 frames) (0 not accounted for)
[20:46:58] stream: 5750716 good frames, 0 errors (0%)
[20:46:58] ac3-decoder done: 160204 frames, 0 decoder errors
[20:46:58] mpeg2video-decoder done: 153643 frames, 0 decoder errors
[20:46:58] sync: got 153643 frames, 153657 expected
[20:46:58] sync: framerate min 29.970 fps, max 29.970 fps, avg 29.970 fps
x264 [info]: frame I:832 Avg QP:12.05 size: 93883
x264 [info]: frame P:28829 Avg QP:14.22 size: 47969
x264 [info]: frame B:98644 Avg QP:17.35 size: 16260
x264 [info]: consecutive B-frames: 3.0% 4.0% 4.3% 8.2% 52.6% 12.3% 8.5% 3.3% 3.8%
x264 [info]: mb I I16..4: 41.4% 45.0% 13.6%
x264 [info]: mb P I16..4: 33.1% 26.1% 1.5% P16..4: 21.8% 3.8% 1.4% 0.5% 0.2% skip:11.6%
x264 [info]: mb B I16..4: 2.5% 4.5% 0.1% B16..8: 21.9% 4.0% 0.4% direct:18.7% skip:48.0% L0:46.4% L1:45.5% BI: 8.0%
x264 [info]: 8x8 transform intra:48.9% inter:54.3%
x264 [info]: coded y,uvDC,uvAC intra: 30.3% 74.1% 32.0% inter: 7.7% 37.6% 4.2%
x264 [info]: i16 v,h,dc,p: 73% 16% 8% 3%
x264 [info]: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 31% 27% 29% 2% 2% 2% 2% 2% 3%
x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 25% 13% 5% 7% 7% 7% 5% 7%
x264 [info]: i8c dc,h,v,p: 41% 27% 23% 9%
x264 [info]: Weighted P-Frames: Y:5.5% UV:4.6%
x264 [info]: ref P L0: 73.9% 17.5% 8.2% 0.4%
x264 [info]: ref B L0: 88.0% 10.1% 1.9%
x264 [info]: ref B L1: 97.2% 2.8%
x264 [info]: kb/s:4782.92
[20:46:59] mux: track 0, 128305 frames, 3064955909 bytes, 4782.84 kbps, fifo 2048
[20:46:59] mux: track 1, 160204 frames, 164048896 bytes, 256.00 kbps, fifo 4096
[20:46:59] Finished work at: Sun Jan 05 20:46:59 2020
[20:46:59] libhb: work result = 0
# Encode Completed ...