Opened 5 years ago

Closed 2 years ago

#7526 closed defect (wontfix)

VAAPI HEVC Encoder Bitrate parameter no longer works in Master compared to 4.0.x

Reported by: Jose Santiago Owned by:
Priority: normal Component: undetermined
Version: git-master Keywords: vaapi regression
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:

In FFMPEG v4.0.2 you could use the -b:v parameter to set the target bitrate. And the Video output would reflect the bitrate specified on the commandline. That no longer works in git-master. You get rougly the same output no matter what you set for the bitrate.

How to reproduce:

ffmpeg -vaapi_device /dev/dri/renderD128 -i /mnt/share/content/yuv/lp/SVT_Park_joy_FR6001_7000_1920x1080p50.avi.yuv.y4m -vf 'format=nv12,hwupload' -c:v hevc_vaapi -b:v 2M -g 30 -bf 2 test-vaapi-2m.hevc

ffmpeg -vaapi_device /dev/dri/renderD128 -i /mnt/share/content/yuv/lp/SVT_Park_joy_FR6001_7000_1920x1080p50.avi.yuv.y4m -vf 'format=nv12,hwupload' -c:v hevc_vaapi -b:v 4M -g 30 -bf 2 test-vaapi-4m.hevc

ffmpeg version N-92314-g323c2cfd38

Manjaro Linux.

Patches should be submitted to the ffmpeg-devel mailing list and not this bug tracker.

Change History (5)

comment:1 by Jose Santiago, 5 years ago

Notice that with 4.0.2 release build you can configure the bitrate and get different bitrate in the output. Granted the bitrate is higher than requested. Asking for 2Mbps achieves approx 3.2Mbps and asking for 4Mbps achieves approx 6.5Mbps

[jsantiago@jlsserver2 ~/tt55/tt3]$ ffmpeg \
>    -vaapi_device /dev/dri/renderD128 \
>    -i /mnt/share/content/yuv/lp/SVT_Park_joy_FR6001_7000_1920x1080p50.avi.yuv.y4m \
>    -vf 'format=nv12,hwupload' -c:v hevc_vaapi -b:v 2M -g 30 -bf 2 test-vaapi-2m.hevc
ffmpeg version n4.0.2 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 8.2.1 (GCC) 20180831
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
  libavutil      56. 14.100 / 56. 14.100
  libavcodec     58. 18.100 / 58. 18.100
  libavformat    58. 12.100 / 58. 12.100
  libavdevice    58.  3.100 / 58.  3.100
  libavfilter     7. 16.100 /  7. 16.100
  libswscale      5.  1.100 /  5.  1.100
  libswresample   3.  1.100 /  3.  1.100
  libpostproc    55.  1.100 / 55.  1.100
Input #0, yuv4mpegpipe, from '/mnt/share/content/yuv/lp/SVT_Park_joy_FR6001_7000_1920x1080p50.avi.yuv.y4m':
  Duration: 00:00:20.00, start: 0.000000, bitrate: 1244162 kb/s
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p(progressive), 1920x1080, 50 fps, 50 tbr, 50 tbn, 50 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> hevc (hevc_vaapi))
Press [q] to stop, [?] for help
Output #0, hevc, to 'test-vaapi-2m.hevc':
  Metadata:
    encoder         : Lavf58.12.100
    Stream #0:0: Video: hevc (hevc_vaapi) (Main), vaapi_vld, 1920x1080, q=2-31, 2000 kb/s, 50 fps, 50 tbn, 50 tbc
    Metadata:
      encoder         : Lavc58.18.100 hevc_vaapi
frame=   44 fps=0.0 q=-0.0 size=     256kB time=00:00:00.82 bitrate=2557.5kbits
frame=   87 fps= 86 q=-0.0 size=     512kB time=00:00:01.68 bitrate=2496.6kbits
frame=  128 fps= 85 q=-0.0 size=     768kB time=00:00:02.50 bitrate=2516.6kbits
frame=  172 fps= 85 q=-0.0 size=    1280kB time=00:00:03.38 bitrate=3102.3kbits
frame=  215 fps= 85 q=-0.0 size=    1536kB time=00:00:04.24 bitrate=2967.7kbits
frame=  256 fps= 84 q=-0.0 size=    1792kB time=00:00:05.06 bitrate=2901.2kbits
frame=  298 fps= 84 q=-0.0 size=    2304kB time=00:00:05.90 bitrate=3199.0kbits
frame=  341 fps= 84 q=-0.0 size=    2560kB time=00:00:06.76 bitrate=3102.3kbits
frame=  383 fps= 83 q=-0.0 size=    2816kB time=00:00:07.60 bitrate=3035.4kbits
frame=  428 fps= 84 q=-0.0 size=    3328kB time=00:00:08.50 bitrate=3207.4kbits
frame=  472 fps= 84 q=-0.0 size=    3584kB time=00:00:09.38 bitrate=3130.1kbits
frame=  511 fps= 83 q=-0.0 size=    3840kB time=00:00:10.16 bitrate=3096.2kbits
frame=  554 fps= 83 q=-0.0 size=    4352kB time=00:00:11.02 bitrate=3235.2kbits
frame=  597 fps= 84 q=-0.0 size=    4608kB time=00:00:11.88 bitrate=3177.5kbits
frame=  641 fps= 84 q=-0.0 size=    4864kB time=00:00:12.76 bitrate=3122.7kbits
frame=  686 fps= 84 q=-0.0 size=    5376kB time=00:00:13.66 bitrate=3224.0kbits
frame=  730 fps= 84 q=-0.0 size=    5888kB time=00:00:14.54 bitrate=3317.4kbits
frame=  773 fps= 84 q=-0.0 size=    6144kB time=00:00:15.40 bitrate=3268.3kbits
frame=  815 fps= 84 q=-0.0 size=    6400kB time=00:00:16.24 bitrate=3228.4kbits
frame=  860 fps= 84 q=-0.0 size=    6912kB time=00:00:17.14 bitrate=3303.6kbits
frame=  907 fps= 85 q=-0.0 size=    7168kB time=00:00:18.08 bitrate=3247.8kbits
frame=  929 fps= 83 q=-0.0 size=    7424kB time=00:00:18.52 bitrate=3283.9kbits
frame=  977 fps= 83 q=-0.0 size=    7680kB time=00:00:19.48 bitrate=3229.7kbits
frame= 1000 fps= 81 q=-0.0 Lsize=    8045kB time=00:00:19.98 bitrate=3298.6kbits/s speed=1.62x    
video:8045kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%



[jsantiago@jlsserver2 ~/tt55/tt3]$ ffmpeg \
>    -vaapi_device /dev/dri/renderD128 \
>    -i /mnt/share/content/yuv/lp/SVT_Park_joy_FR6001_7000_1920x1080p50.avi.yuv.y4m \
>    -vf 'format=nv12,hwupload' -c:v hevc_vaapi -b:v 4M -g 30 -bf 2 test-vaapi-4m.hevc
ffmpeg version n4.0.2 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 8.2.1 (GCC) 20180831
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
  libavutil      56. 14.100 / 56. 14.100
  libavcodec     58. 18.100 / 58. 18.100
  libavformat    58. 12.100 / 58. 12.100
  libavdevice    58.  3.100 / 58.  3.100
  libavfilter     7. 16.100 /  7. 16.100
  libswscale      5.  1.100 /  5.  1.100
  libswresample   3.  1.100 /  3.  1.100
  libpostproc    55.  1.100 / 55.  1.100
Input #0, yuv4mpegpipe, from '/mnt/share/content/yuv/lp/SVT_Park_joy_FR6001_7000_1920x1080p50.avi.yuv.y4m':
  Duration: 00:00:20.00, start: 0.000000, bitrate: 1244162 kb/s
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p(progressive), 1920x1080, 50 fps, 50 tbr, 50 tbn, 50 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> hevc (hevc_vaapi))
Press [q] to stop, [?] for help
Output #0, hevc, to 'test-vaapi-4m.hevc':
  Metadata:
    encoder         : Lavf58.12.100
    Stream #0:0: Video: hevc (hevc_vaapi) (Main), vaapi_vld, 1920x1080, q=2-31, 4000 kb/s, 50 fps, 50 tbn, 50 tbc
    Metadata:
      encoder         : Lavc58.18.100 hevc_vaapi
frame=   44 fps=0.0 q=-0.0 size=     512kB time=00:00:00.82 bitrate=5115.0kbits
frame=   86 fps= 83 q=-0.0 size=    1024kB time=00:00:01.66 bitrate=5053.4kbits
frame=  128 fps= 83 q=-0.0 size=    1792kB time=00:00:02.50 bitrate=5872.0kbits
frame=  170 fps= 83 q=-0.0 size=    2560kB time=00:00:03.34 bitrate=6278.9kbits
frame=  209 fps= 81 q=-0.0 size=    3072kB time=00:00:04.12 bitrate=6108.2kbits
frame=  251 fps= 81 q=-0.0 size=    3840kB time=00:00:04.96 bitrate=6342.2kbits
frame=  293 fps= 81 q=-0.0 size=    4608kB time=00:00:05.80 bitrate=6508.4kbits
frame=  332 fps= 81 q=-0.0 size=    5120kB time=00:00:06.58 bitrate=6374.3kbits
frame=  375 fps= 81 q=-0.0 size=    5888kB time=00:00:07.44 bitrate=6483.1kbits
frame=  418 fps= 82 q=-0.0 size=    6656kB time=00:00:08.30 bitrate=6569.4kbits
frame=  458 fps= 82 q=-0.0 size=    7168kB time=00:00:09.10 bitrate=6452.8kbits
frame=  500 fps= 82 q=-0.0 size=    7936kB time=00:00:09.94 bitrate=6540.4kbits
frame=  544 fps= 82 q=-0.0 size=    8704kB time=00:00:10.82 bitrate=6589.9kbits
frame=  583 fps= 82 q=-0.0 size=    9216kB time=00:00:11.60 bitrate=6508.4kbits
frame=  625 fps= 82 q=-0.0 size=    9728kB time=00:00:12.44 bitrate=6406.1kbits
frame=  668 fps= 82 q=-0.0 size=   10496kB time=00:00:13.30 bitrate=6464.9kbits
frame=  709 fps= 82 q=-0.0 size=   11264kB time=00:00:14.12 bitrate=6535.0kbits
frame=  749 fps= 82 q=-0.0 size=   11776kB time=00:00:14.92 bitrate=6465.8kbits
frame=  794 fps= 82 q=-0.0 size=   12544kB time=00:00:15.82 bitrate=6495.6kbits
frame=  836 fps= 82 q=-0.0 size=   13312kB time=00:00:16.66 bitrate=6545.7kbits
frame=  881 fps= 82 q=-0.0 size=   14080kB time=00:00:17.56 bitrate=6568.5kbits
frame=  926 fps= 82 q=-0.0 size=   14848kB time=00:00:18.46 bitrate=6589.1kbits
frame=  973 fps= 83 q=-0.0 size=   15616kB time=00:00:19.40 bitrate=6594.1kbits
frame= 1000 fps= 83 q=-0.0 Lsize=   16196kB time=00:00:19.98 bitrate=6640.4kbits/s speed=1.66x    
video:16196kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%



[jsantiago@jlsserver2 ~/tt55/tt3]$ ls -la
total 24252
drwxr-xr-x 2 jsantiago users     4096 Oct 31 15:45 .
drwxr-xr-x 6 jsantiago users     4096 Oct 31 15:42 ..
-rw-r--r-- 1 jsantiago users  8238332 Oct 31 15:42 test-vaapi-2m.hevc
-rw-r--r-- 1 jsantiago users 16584286 Oct 31 15:45 test-vaapi-4m.hevc

Last edited 5 years ago by Jose Santiago (previous) (diff)

comment:2 by Jose Santiago, 5 years ago

Using git-Master with the same parameters. The file sizes are roughly the same:

[jsantiago@jlsserver2 ~/tt55/tt4]$ /home/jsantiago/tt55/ffmpeg/build/stage/bin/ffmpeg \
>    -vaapi_device /dev/dri/renderD128 \
>    -i /mnt/share/content/yuv/lp/SVT_Park_joy_FR6001_7000_1920x1080p50.avi.yuv.y4m \
>    -vf 'format=nv12,hwupload' -c:v hevc_vaapi -b:v 2M -g 30 -bf 2 test-vaapi-2m.hevc
ffmpeg version N-92314-g323c2cfd38 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 8.2.1 (GCC) 20180831
  configuration: --prefix=/home/jsantiago/tt55/ffmpeg/build/stage
  libavutil      56. 21.100 / 56. 21.100
  libavcodec     58. 34.100 / 58. 34.100
  libavformat    58. 19.102 / 58. 19.102
  libavdevice    58.  4.106 / 58.  4.106
  libavfilter     7. 39.100 /  7. 39.100
  libswscale      5.  2.100 /  5.  2.100
  libswresample   3.  2.100 /  3.  2.100
Input #0, yuv4mpegpipe, from '/mnt/share/content/yuv/lp/SVT_Park_joy_FR6001_7000_1920x1080p50.avi.yuv.y4m':
  Duration: 00:00:20.00, start: 0.000000, bitrate: 1244162 kb/s
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p(progressive), 1920x1080, 50 fps, 50 tbr, 50 tbn, 50 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> hevc (hevc_vaapi))
Press [q] to stop, [?] for help
Output #0, hevc, to 'test-vaapi-2m.hevc':
  Metadata:
    encoder         : Lavf58.19.102
    Stream #0:0: Video: hevc (hevc_vaapi) (Main), vaapi_vld, 1920x1080, q=-1--1, 2000 kb/s, 50 fps, 50 tbn, 50 tbc
    Metadata:
      encoder         : Lavc58.34.100 hevc_vaapi
frame=   32 fps=0.0 q=-0.0 size=      82kB time=00:00:00.58 bitrate=1153.2kbits
frame=   65 fps= 64 q=-0.0 size=     183kB time=00:00:01.24 bitrate=1207.1kbits
frame=   98 fps= 63 q=-0.0 size=     256kB time=00:00:01.90 bitrate=1103.8kbits
frame=  130 fps= 63 q=-0.0 size=     256kB time=00:00:02.54 bitrate= 825.7kbits
frame=  161 fps= 63 q=-0.0 size=     256kB time=00:00:03.16 bitrate= 663.7kbits
frame=  194 fps= 63 q=-0.0 size=     256kB time=00:00:03.82 bitrate= 549.0kbits
frame=  226 fps= 63 q=-0.0 size=     512kB time=00:00:04.46 bitrate= 940.4kbits
frame=  257 fps= 62 q=-0.0 size=     512kB time=00:00:05.08 bitrate= 825.7kbits
frame=  290 fps= 62 q=-0.0 size=     512kB time=00:00:05.74 bitrate= 730.7kbits
frame=  320 fps= 62 q=-0.0 size=     768kB time=00:00:06.34 bitrate= 992.3kbits
frame=  353 fps= 62 q=-0.0 size=     768kB time=00:00:07.00 bitrate= 898.8kbits
frame=  386 fps= 62 q=-0.0 size=    1024kB time=00:00:07.66 bitrate=1095.1kbits
frame=  416 fps= 62 q=-0.0 size=    1024kB time=00:00:08.26 bitrate=1015.6kbits
frame=  449 fps= 62 q=-0.0 size=    1280kB time=00:00:08.92 bitrate=1175.5kbits
frame=  481 fps= 62 q=-0.0 size=    1280kB time=00:00:09.56 bitrate=1096.8kbits
frame=  511 fps= 62 q=-0.0 size=    1536kB time=00:00:10.16 bitrate=1238.5kbits
frame=  542 fps= 62 q=-0.0 size=    1536kB time=00:00:10.78 bitrate=1167.2kbits
frame=  575 fps= 62 q=-0.0 size=    1792kB time=00:00:11.44 bitrate=1283.2kbits
frame=  608 fps= 62 q=-0.0 size=    1792kB time=00:00:12.10 bitrate=1213.2kbits
frame=  641 fps= 62 q=-0.0 size=    2048kB time=00:00:12.76 bitrate=1314.8kbits
frame=  674 fps= 62 q=-0.0 size=    2048kB time=00:00:13.42 bitrate=1250.2kbits
frame=  706 fps= 62 q=-0.0 size=    2048kB time=00:00:14.06 bitrate=1193.3kbits
frame=  737 fps= 62 q=-0.0 size=    2048kB time=00:00:14.68 bitrate=1142.9kbits
frame=  770 fps= 62 q=-0.0 size=    2304kB time=00:00:15.34 bitrate=1230.4kbits
frame=  803 fps= 62 q=-0.0 size=    2304kB time=00:00:16.00 bitrate=1179.6kbits
frame=  836 fps= 62 q=-0.0 size=    2304kB time=00:00:16.66 bitrate=1132.9kbits
frame=  869 fps= 62 q=-0.0 size=    2560kB time=00:00:17.32 bitrate=1210.8kbits
frame=  901 fps= 62 q=-0.0 size=    2560kB time=00:00:17.96 bitrate=1167.7kbits
frame=  935 fps= 62 q=-0.0 size=    2560kB time=00:00:18.64 bitrate=1125.1kbits
frame=  970 fps= 62 q=-0.0 size=    2816kB time=00:00:19.34 bitrate=1192.8kbits
frame= 1000 fps= 62 q=-0.0 size=    2816kB time=00:00:19.94 bitrate=1156.9kbits
frame= 1000 fps= 62 q=-0.0 Lsize=    2859kB time=00:00:19.98 bitrate=1172.2kbits/s speed=1.24x    
video:2859kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%


[jsantiago@jlsserver2 ~/tt55/tt4]$ /home/jsantiago/tt55/ffmpeg/build/stage/bin/ffmpeg \
>    -vaapi_device /dev/dri/renderD128 \
>    -i /mnt/share/content/yuv/lp/SVT_Park_joy_FR6001_7000_1920x1080p50.avi.yuv.y4m \
>    -vf 'format=nv12,hwupload' -c:v hevc_vaapi -b:v 4M -g 30 -bf 2 test-vaapi-4m.hevc
ffmpeg version N-92314-g323c2cfd38 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 8.2.1 (GCC) 20180831
  configuration: --prefix=/home/jsantiago/tt55/ffmpeg/build/stage
  libavutil      56. 21.100 / 56. 21.100
  libavcodec     58. 34.100 / 58. 34.100
  libavformat    58. 19.102 / 58. 19.102
  libavdevice    58.  4.106 / 58.  4.106
  libavfilter     7. 39.100 /  7. 39.100
  libswscale      5.  2.100 /  5.  2.100
  libswresample   3.  2.100 /  3.  2.100
Input #0, yuv4mpegpipe, from '/mnt/share/content/yuv/lp/SVT_Park_joy_FR6001_7000_1920x1080p50.avi.yuv.y4m':
  Duration: 00:00:20.00, start: 0.000000, bitrate: 1244162 kb/s
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p(progressive), 1920x1080, 50 fps, 50 tbr, 50 tbn, 50 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> hevc (hevc_vaapi))
Press [q] to stop, [?] for help
Output #0, hevc, to 'test-vaapi-4m.hevc':
  Metadata:
    encoder         : Lavf58.19.102
    Stream #0:0: Video: hevc (hevc_vaapi) (Main), vaapi_vld, 1920x1080, q=-1--1, 4000 kb/s, 50 fps, 50 tbn, 50 tbc
    Metadata:
      encoder         : Lavc58.34.100 hevc_vaapi
frame=   31 fps=0.0 q=-0.0 size=      80kB time=00:00:00.56 bitrate=1171.7kbits
frame=   64 fps= 64 q=-0.0 size=     187kB time=00:00:01.22 bitrate=1257.3kbits
frame=   95 fps= 62 q=-0.0 size=     256kB time=00:00:01.84 bitrate=1139.8kbits
frame=  128 fps= 62 q=-0.0 size=     256kB time=00:00:02.50 bitrate= 838.9kbits
frame=  161 fps= 63 q=-0.0 size=     256kB time=00:00:03.16 bitrate= 663.7kbits
frame=  194 fps= 63 q=-0.0 size=     256kB time=00:00:03.82 bitrate= 549.0kbits
frame=  224 fps= 62 q=-0.0 size=     512kB time=00:00:04.42 bitrate= 948.9kbits
frame=  257 fps= 62 q=-0.0 size=     512kB time=00:00:05.08 bitrate= 825.7kbits
frame=  290 fps= 62 q=-0.0 size=     512kB time=00:00:05.74 bitrate= 730.7kbits
frame=  320 fps= 62 q=-0.0 size=     768kB time=00:00:06.34 bitrate= 992.3kbits
frame=  353 fps= 62 q=-0.0 size=     768kB time=00:00:07.00 bitrate= 898.8kbits
frame=  386 fps= 62 q=-0.0 size=    1024kB time=00:00:07.66 bitrate=1095.1kbits
frame=  416 fps= 62 q=-0.0 size=    1024kB time=00:00:08.26 bitrate=1015.6kbits
frame=  449 fps= 62 q=-0.0 size=    1280kB time=00:00:08.92 bitrate=1175.5kbits
frame=  481 fps= 62 q=-0.0 size=    1280kB time=00:00:09.56 bitrate=1096.8kbits
frame=  512 fps= 62 q=-0.0 size=    1536kB time=00:00:10.18 bitrate=1236.0kbits
frame=  545 fps= 62 q=-0.0 size=    1536kB time=00:00:10.84 bitrate=1160.8kbits
frame=  578 fps= 62 q=-0.0 size=    1792kB time=00:00:11.50 bitrate=1276.5kbits
frame=  608 fps= 62 q=-0.0 size=    1792kB time=00:00:12.10 bitrate=1213.2kbits
frame=  641 fps= 62 q=-0.0 size=    2048kB time=00:00:12.76 bitrate=1314.8kbits
frame=  674 fps= 62 q=-0.0 size=    2048kB time=00:00:13.42 bitrate=1250.2kbits
frame=  707 fps= 62 q=-0.0 size=    2048kB time=00:00:14.08 bitrate=1191.6kbits
frame=  740 fps= 62 q=-0.0 size=    2304kB time=00:00:14.74 bitrate=1280.5kbits
frame=  773 fps= 62 q=-0.0 size=    2304kB time=00:00:15.40 bitrate=1225.6kbits
frame=  805 fps= 62 q=-0.0 size=    2304kB time=00:00:16.04 bitrate=1176.7kbits
frame=  837 fps= 62 q=-0.0 size=    2304kB time=00:00:16.68 bitrate=1131.6kbits
frame=  869 fps= 62 q=-0.0 size=    2560kB time=00:00:17.32 bitrate=1210.8kbits
frame=  901 fps= 62 q=-0.0 size=    2560kB time=00:00:17.96 bitrate=1167.7kbits
frame=  935 fps= 62 q=-0.0 size=    2560kB time=00:00:18.64 bitrate=1125.1kbits
frame=  970 fps= 62 q=-0.0 size=    2816kB time=00:00:19.34 bitrate=1192.8kbits
frame= 1000 fps= 62 q=-0.0 Lsize=    2867kB time=00:00:19.98 bitrate=1175.4kbits/s speed=1.24x    
video:2867kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%


[jsantiago@jlsserver2 ~/tt55/tt4]$ ls -la
total 5736
drwxr-xr-x 2 jsantiago users    4096 Oct 31 15:47 .
drwxr-xr-x 7 jsantiago users    4096 Oct 31 15:46 ..
-rw-r--r-- 1 jsantiago users 2927503 Oct 31 15:47 test-vaapi-2m.hevc
-rw-r--r-- 1 jsantiago users 2935539 Oct 31 15:47 test-vaapi-4m.hevc

comment:3 by Carl Eugen Hoyos, 5 years ago

Keywords: regression added; hevc encode rate control removed

Please find the change introducing the regression.

comment:4 by FuweiTang, 5 years ago

This issue can't be reproduced on git-master with the latest code:

root@tangfw-WHL:/home/tangfw/workspace/video/build/temp# ffmpeg -vaapi_device /dev/dri/renderD128 -s:v 1920x1080 -i /root/media/encoderbitstreams/1080p_blue_sky.yuv -vf 'format=nv12,hwupload' -c:v hevc_vaapi -b:v 2M -g 30 -bf 2 -y test-vaapi-2m.hevc
ffmpeg version N-92558-ge695b0beba Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.3.0-27ubuntu1~18.04)
  configuration: --enable-vaapi --prefix=/opt/X11R7/iHD/ffmpeg_mainline --enable-nonfree --enable-shared --enable-libmfx --enable-gpl --enable-libx264 --enable-libx265
  libavutil      56. 24.101 / 56. 24.101
  libavcodec     58. 40.100 / 58. 40.100
  libavformat    58. 23.101 / 58. 23.101
  libavdevice    58.  6.100 / 58.  6.100
  libavfilter     7. 46.101 /  7. 46.101
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
[rawvideo @ 0x5612f61490c0] Estimating duration from bitrate, this may be inaccurate
Input #0, rawvideo, from '/root/media/encoderbitstreams/1080p_blue_sky.yuv':
  Duration: 00:00:08.68, start: 0.000000, bitrate: 622080 kb/s
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1920x1080, 622080 kb/s, 25 tbr, 25 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> hevc (hevc_vaapi))
Press [q] to stop, [?] for help
Output #0, hevc, to 'test-vaapi-2m.hevc':
  Metadata:
    encoder         : Lavf58.23.101
    Stream #0:0: Video: hevc (hevc_vaapi) (Main), vaapi_vld, 1920x1080, q=-1--1, 2000 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc58.40.100 hevc_vaapi
frame=  217 fps= 81 q=-0.0 Lsize=    2190kB time=00:00:08.64 bitrate=2076.1kbits/s speed=3.24x    
video:2190kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
root@tangfw-WHL:/home/tangfw/workspace/video/build/temp# ffmpeg -vaapi_device /dev/dri/renderD128 -s:v 1920x1080 -i /root/media/encoderbitstreams/1080p_blue_sky.yuv -vf 'format=nv12,hwupload' -c:v hevc_vaapi -b:v 4M -g 30 -bf 2 -y test-vaapi-4m.hevc
ffmpeg version N-92558-ge695b0beba Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.3.0-27ubuntu1~18.04)
  configuration: --enable-vaapi --prefix=/opt/X11R7/iHD/ffmpeg_mainline --enable-nonfree --enable-shared --enable-libmfx --enable-gpl --enable-libx264 --enable-libx265
  libavutil      56. 24.101 / 56. 24.101
  libavcodec     58. 40.100 / 58. 40.100
  libavformat    58. 23.101 / 58. 23.101
  libavdevice    58.  6.100 / 58.  6.100
  libavfilter     7. 46.101 /  7. 46.101
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
[rawvideo @ 0x55fb3d0760c0] Estimating duration from bitrate, this may be inaccurate
Input #0, rawvideo, from '/root/media/encoderbitstreams/1080p_blue_sky.yuv':
  Duration: 00:00:08.68, start: 0.000000, bitrate: 622080 kb/s
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1920x1080, 622080 kb/s, 25 tbr, 25 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> hevc (hevc_vaapi))
Press [q] to stop, [?] for help
Output #0, hevc, to 'test-vaapi-4m.hevc':
  Metadata:
    encoder         : Lavf58.23.101
    Stream #0:0: Video: hevc (hevc_vaapi) (Main), vaapi_vld, 1920x1080, q=-1--1, 4000 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc58.40.100 hevc_vaapi
frame=  217 fps= 79 q=-0.0 Lsize=    4390kB time=00:00:08.64 bitrate=4162.4kbits/s speed=3.14x    
video:4390kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
root@tangfw-WHL:/home/tangfw/workspace/video/build/temp# ls -al
total 6592
drwxr-xr-x  2 root   root      4096 11月 30 13:10 .
drwxr-xr-x 39 tangfw tangfw    4096 11月 30 13:08 ..
-rw-r--r--  1 root   root   2242181 11月 30 13:10 test-vaapi-2m.hevc
-rw-r--r--  1 root   root   4495439 11月 30 13:10 test-vaapi-4m.hevc

comment:5 by wenbin,chen, 2 years ago

Resolution: wontfix
Status: newclosed
Note: See TracTickets for help on using tickets.