[FFmpeg-trac] #10904(undetermined:new): Slow nvenc encodes affect h264 and hevc with certain videos
FFmpeg
trac at avcodec.org
Thu Mar 14 20:08:21 EET 2024
#10904: Slow nvenc encodes affect h264 and hevc with certain videos
--------------------------------------+----------------------------------
Reporter: nikkoaki | Type: defect
Status: new | Priority: normal
Component: undetermined | Version: 6.1
Keywords: nvenc | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
--------------------------------------+----------------------------------
Summary of the bug:
Been using nvenc for encoding for some time and never had problems.
Usually always got 100+ fps converting a 4K video to a lower bit rate 4K
one.
Lately i tried the same on a video shot with my latest phone and noticed
that i barely get 30fps. First i was trying with handbrake but tried just
ffmpeg to rule out the other project and it behaves the same.
I also shot with a lower bit rate to match my old phone but again, it
behaves the same.
ffmpeg output from a video from my old phone:
{{{
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2021-05-12T11:49:14.000000Z
com.android.version: 8.1.0
Duration: 00:01:13.56, start: 0.000000, bitrate: 35577 kb/s
Stream #0:0[0x1](eng): Video: hevc (Main) (hvc1 / 0x31637668),
yuvj420p(pc, smpte170m), 3840x2160, 35408 kb/s, SAR 1:1 DAR 16:9, 29.97
fps, 30 tbr, 90k tbn (default)
Metadata:
creation_time : 2021-05-12T11:49:14.000000Z
handler_name : VideoHandle
vendor_id : [0][0][0][0]
Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz,
stereo, fltp, 189 kb/s (default)
Metadata:
creation_time : 2021-05-12T11:49:14.000000Z
handler_name : SoundHandle
vendor_id : [0][0][0][0]
File 'output.mp4' already exists. Overwrite? [y/N] y
Stream mapping:
Stream #0:0 -> #0:0 (hevc (native) -> hevc (hevc_nvenc))
Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[swscaler @ 0000024f69f37ac0] deprecated pixel format used, make sure you
did set range correctly
Last message repeated 2 times
[swscaler @ 0000024f69f35a80] deprecated pixel format used, make sure you
did set range correctly
Output #0, mp4, to 'output.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
com.android.version: 8.1.0
encoder : Lavf60.16.100
Stream #0:0(eng): Video: hevc (Main) (hev1 / 0x31766568), yuv420p(tv,
smpte170m, progressive), 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 2000 kb/s,
30 fps, 15360 tbn (default)
Metadata:
creation_time : 2021-05-12T11:49:14.000000Z
handler_name : VideoHandle
vendor_id : [0][0][0][0]
encoder : Lavc60.31.102 hevc_nvenc
Side data:
cpb: bitrate max/min/avg: 0/0/2000000 buffer size: 4000000
vbv_delay: N/A
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo,
fltp, 128 kb/s (default)
Metadata:
creation_time : 2021-05-12T11:49:14.000000Z
handler_name : SoundHandle
vendor_id : [0][0][0][0]
encoder : Lavc60.31.102 aac
[out#0/mp4 @ 0000024f4f217700] video:22061kB audio:1164kB subtitle:0kB
other streams:0kB global headers:0kB muxing overhead: 0.343376%
frame= 2200 fps=108 q=47.0 Lsize= 23305kB time=00:01:13.53
bitrate=2596.1kbits/s dup=2 drop=0 speed=3.62x
[aac @ 0000024f4f735c00] Qavg: 576.413
}}}
Output from my new phone:
{{{
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2024-03-09T16:47:14.000000Z
com.android.version: 14
Duration: 00:00:20.59, start: 0.000000, bitrate: 60203 kb/s
Stream #0:0[0x1](eng): Video: hevc (Main) (hvc1 / 0x31637668),
yuvj420p(pc, bt470bg/bt470bg/smpte170m), 3840x2160, 59950 kb/s, 30.11 fps,
30 tbr, 90k tbn (default)
Metadata:
creation_time : 2024-03-09T16:47:14.000000Z
handler_name : VideoHandle
vendor_id : [0][0][0][0]
Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
stereo, fltp, 96 kb/s (default)
Metadata:
creation_time : 2024-03-09T16:47:14.000000Z
handler_name : SoundHandle
vendor_id : [0][0][0][0]
File 'output.mp4' already exists. Overwrite? [y/N] y
Stream mapping:
Stream #0:0 -> #0:0 (hevc (native) -> hevc (hevc_nvenc))
Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[swscaler @ 00000244b95befc0] deprecated pixel format used, make sure you
did set range correctly
[swscaler @ 00000244b9d28040] deprecated pixel format used, make sure you
did set range correctly
[swscaler @ 00000244b9b9e040] deprecated pixel format used, make sure you
did set range correctly
[swscaler @ 00000244b9630e40] deprecated pixel format used, make sure you
did set range correctly
Output #0, mp4, to 'output.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
com.android.version: 14
encoder : Lavf60.16.100
Stream #0:0(eng): Video: hevc (Main) (hev1 / 0x31766568), yuv420p(tv,
bt470bg/bt470bg/smpte170m, progressive), 3840x2160, q=2-31, 2000 kb/s, 30
fps, 15360 tbn (default)
Metadata:
creation_time : 2024-03-09T16:47:14.000000Z
handler_name : VideoHandle
vendor_id : [0][0][0][0]
encoder : Lavc60.31.102 hevc_nvenc
Side data:
cpb: bitrate max/min/avg: 0/0/2000000 buffer size: 4000000
vbv_delay: N/A
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo,
fltp, 128 kb/s (default)
Metadata:
creation_time : 2024-03-09T16:47:14.000000Z
handler_name : SoundHandle
vendor_id : [0][0][0][0]
encoder : Lavc60.31.102 aac
[out#0/mp4 @ 000002449b7a6d80] video:5701kB audio:320kB subtitle:0kB other
streams:0kB global headers:0kB muxing overhead: 0.392885%
frame= 619 fps= 33 q=39.0 Lsize= 6045kB time=00:00:20.50
bitrate=2415.6kbits/s dup=0 drop=1 speed=1.09x
[aac @ 000002449bc74000] Qavg: 2341.940
}}}
How to reproduce:
{{{
ffmpeg -i "new video.mp4" -vcodec hevc_nvenc -preset medium -level 5 -qmin
10 -qmax 52 "output.mp4"
ffmpeg version 6.1.1-full_build-www.gyan.dev
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/10904>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list