Question / Help Recording 8K via HEVC

sam686

Member
I am nearly out of ideas, this might be the limit of NVENC_h265.

You can try it with nvenc_264 encoder, with preset=fast, to see if h264 allows more fps recordings or check if 8k is allowed by NVENC_h264. YouTube should accept h264 encodings.

One other option will be messy and complicated: nvidia quadro or AMD graphics with 4 output to 4 separate 4k outputs using NVidia Surround or AMD Eyefinity or similar, with 4 separate 4k recording computers each having 4k capture cards, then sync them and combine them together with video editing tools.
 

vorob

Member
Hey vorob could you please list your system specs?

Code:
Acer Predator G9-593
Intel Core i7-6700HQ (2.6Ghz/3.5Ghz) (https://goo.gl/dehk14)
Nvidia GeForce GTX 1070 (8Gb GDDR5) (https://goo.gl/z2aEFL)
15.6inch 1920x1080 (G-Sync) (IPS)
16Gb DDR4-2400 / PC4-19200 (2x ACR24D4S7S8MB-8)
Windows 10 x64
 

vorob

Member
h264, as I know, can't record anything higher then 4k.
So i think we are on the right path, we just need to add something more to preset=fast, to lower the load...
 

sam686

Member
You can try preset=hp (high performance) or preset=llhp (low latency high performance), to check which one allows more fps.
 

vorob

Member
Nope, that doesn't help, but i tried preser=lossless and looks like its working. OBS still crash but no encoder overload. But i can't check this video cause its too hard for my player to play. Uploading to youtube now.
 

RytoEX

Forum Admin
Forum Moderator
Developer
h264, as I know, can't record anything higher then 4k.
So i think we are on the right path, we just need to add something more to preset=fast, to lower the load...

As @Boildown pointed out on the first page, H.264 does support 8K, but only when using Level 6+. It should automatically use those higher levels if you have a resolution that high. If it doesn't, you'd need to specify "level=6" for 8K@30fps, "level=61" for 8K@60fps, or "level=62" for 8K@120fps.

However, it seems that FFmpeg's h264_nvenc encoder doesn't support those levels, but the libx264 encoder does support them.
 
Last edited:

vorob

Member
FFmpeg - libx264(default encoder) - encoder overload, looks like its using CPU, not GPU

ffmpeg - h264_nvenc (libx264) - an unspecified error occured while recording

ffmpeg - libx264rgb (libx264) - no video recordered
 

sam686

Member
You can try NVENC_H265, preset=fast or similar, but try keyframe interval (frames) set to 1, at a cost of bigger file size or less quality. It just might allow faster encoding of up to 6k 30fps maybe.
x264 keyint=1 speeds up x264, but I am unsure if it speed up hardware encoder.

ffmpeg - libx264rgb (libx264) - no video recordered
To get libx264rgb to work, requires Advanced settings, color format: RGB, but again, most likely the same encoder overloaded problem.

Maybe future OBS-Studio or FFmpeg version might allow intel QuickSync for different encoders like HEVC and JPEG. But, i am not sure if it is quick enough for 8k 30fps HEVC encoding.
https://en.wikipedia.org/wiki/Intel_Quick_Sync_Video
Skylake seems interesting: MJPEG encoding of up to 16000x16000. mjpeg (motion JPEG) is nothing more then putting multiple JPEG frames into a single video file.

Maybe future graphics card might have faster hardware encoder, NVENC, QuickSync, AMD VCE (Video Coding Engine).
 

Boildown

Active Member
As @Boildown pointed out on the first page, H.264 does support 8K, but only when using Level 6+. It should automatically use those higher levels if you have a resolution that high. If it doesn't, you'd need to specify "level=6" for 8K@30fps, "level=61" for 8K@60fps, or "level=62" for 8K@120fps.

However, it seems that FFmpeg's h264_nvenc encoder doesn't support those levels, but the libx264 encoder does support them.

The problem is that its just the H.264 spec that allows up to 8K, but we don't know if the various implementations of H.264 (x264, NVEnc, Quicksync, etc) have been updated to allow it. The spec was changed only a year ago, and it might take some time for it to be implemented into the libraries, and then for OBS to choose to use those libraries in favor of the older ones.
 

RytoEX

Forum Admin
Forum Moderator
Developer
@Boildown
I'm pretty sure x264 does support those levels, since I encoded a video using that level just fine. It'll gladly accept a level of 62 (6.2), and will throw an error if I try 63 (6.3, which doesn't exist). I don't have any 8K video lying around to make sure it actually supports the resolution though.
 

Boildown

Active Member
I don't have any 8K video lying around to make sure it actually supports the resolution though.

Maybe can get some using the DSR feature of an Nvidia card? But on my 1080p monitor, DSR only goes up to 2x the resolution as I recall, not 4x (linearly), so I don't think I can test it.
 

RytoEX

Forum Admin
Forum Moderator
Developer
Maybe can get some using the DSR feature of an Nvidia card? But on my 1080p monitor, DSR only goes up to 2x the resolution as I recall, not 4x (linearly), so I don't think I can test it.
I converted an existing video to 8K using FFmpeg's scale filter. File seems valid and plays when I test locally, though it plays very slowly. MediaInfo reported it as 8192x4320 and level 6.2.


Maybe future OBS-Studio or FFmpeg version might allow intel QuickSync for different encoders like HEVC and JPEG.
<snip>
Maybe future graphics card might have faster hardware encoder, NVENC, QuickSync, AMD VCE (Video Coding Engine).

For hardware encoders, this mostly comes down to FFmpeg or plugins supporting it, plus having the hardware support.

The current FFmpeg builds seem to support AVC Level 6+ for NVENC H.265 (the nvenc_hevc encoder). To encode in 8K in H.265/HEVC using NVENC, you need a Pascal (GP10x) or newer Nvidia GPU.

Intel Quick Sync can encode in HEVC if you have a Skylake or newer processor. I think the recent ones (Kaby/Gemini/Coffee Lake) can encode in HEVC 8K?

AMD GPUs with VCE 3.4 (RX 460, RX 470, RX 480, RX 560, RX 570, RX 580) can do HEVC, but not 8K. Maybe the new Vega cards can do 8K HEVC? I haven't seen anything about that.
 
Top