[FFmpeg-devel] [PATCH] ffmpeg: Add option to force a specific decode format

Dennis Mungai dmngaie at gmail.com
Wed May 1 13:46:10 EEST 2019


On Wed, 1 May 2019 at 13:04, Carl Eugen Hoyos <ceffmpeg at gmail.com> wrote:

> 2019-04-30 19:48 GMT+02:00, Eoff, Ullysses A <ullysses.a.eoff at intel.com>:
> >> -----Original Message-----
> >> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] On Behalf
> Of
> >> Carl Eugen Hoyos
> >> Sent: Tuesday, April 23, 2019 12:48 PM
> >> To: FFmpeg development discussions and patches <ffmpeg-devel at ffmpeg.org
> >
> >> Subject: Re: [FFmpeg-devel] [PATCH] ffmpeg: Add option to force a
> specific
> >> decode format
> >>
> >> 2018-11-11 15:54 GMT+01:00, Mark Thompson <sw at jkqxz.net>:
> >> > Fixes #7519.
> >>
> >> > +    { "decode_format",  OPT_VIDEO | OPT_STRING | HAS_ARG | OPT_EXPERT
> >> > |
> >> > +                        OPT_SPEC | OPT_INPUT,
> >> >      { .off = OFFSET(decode_formats) },
> >> > +        "set output format used by decoder, fail if this format is
> not
> >> > available", "format" },
> >>
> >> Sorry if this was already asked:
> >> Why can't you use the input option "pix_fmt"?
> >
> > Are you saying that pix_fmt is already supported as in input option
>
> I assume the reason that you sent the patch is that this is not
> the case.
>
> > for decode or, instead, that this patch should enable pix_fmt to be
> > used as such instead of adding a new option name?
>
> I believe this would make user's life easier, yes.
>
> Carl Eugen
>
>
A case in point: Testing with *some* input files, such as this:

ffprobe -i rv.mkvffprobe -i rv.mkv
ffprobe version N-93719-g19af948e53 Copyright (c) 2007-2019 the FFmpeg
developers
  built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04)
  configuration: --pkg-config-flags=--static --prefix=/home/brainiarc7/bin
--bindir=/home/brainiarc7/bin --extra-cflags=-I/home/brainiarc7/bin/include
--extra-ldflags=-L/home/brainiarc7/bin/lib --enable-cuda-nvcc
--enable-cuvid --enable-libnpp --extra-cflags=-I/usr/local/cuda/include/
--extra-ldflags=-L/usr/local/cuda/lib64/ --enable-nvenc
--extra-cflags=-I/opt/intel/mediasdk/include
--extra-ldflags=-L/opt/intel/mediasdk/lib
--extra-ldflags=-L/opt/intel/mediasdk/plugins --enable-libmfx
--enable-libass --enable-vaapi --disable-debug --enable-libvorbis
--enable-libvpx --enable-libdrm --enable-opencl --enable-gpl --cpu=native
--enable-opengl --enable-libfdk-aac --enable-libx265 --enable-openssl
--extra-libs='-lpthread -lm -lz' --enable-nonfree
  libavutil      56. 26.100 / 56. 26.100
  libavcodec     58. 52.100 / 58. 52.100
  libavformat    58. 27.103 / 58. 27.103
  libavdevice    58.  7.100 / 58.  7.100
  libavfilter     7. 50.100 /  7. 50.100
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
Input #0, matroska,webm, from 'rv.mkv':
  Metadata:
    ENCODER         : Lavf58.27.102
  Duration: 00:02:24.77, start: 0.000000, bitrate: 20063 kb/s
    Stream #0:0: Video: h264 (High 4:4:4 Predictive), yuv444p(progressive),
2560x1440, 60 fps, 60 tbr, 1k tbn, 120 tbc (default)
    Metadata:
      ENCODER         : Lavc58.51.100 libx264
      DURATION        : 00:02:24.767000000

With VAAPI, with either driver, i915 or iHD results in failure:

1. with i915:

LIBVA_DRIVER_NAME=i965 ffmpeg -y -stats \
-init_hw_device vaapi=va:/dev/dri/renderD128 -filter_hw_device va -hwaccel
vaapi \
-i 'rv.mkv' -vf 'hwupload,format=vaapi|nv12'  \
-c:v h264_vaapi -bf:v 3 -rc_mode:v 3 -coder:v cabac -profile:v main  \
-b:v 7.5M -maxrate:v 15M -bufsize:v 0.5M -r:v 60 -an -f mpegts -y /dev/null

ffmpeg version N-93719-g19af948e53 Copyright (c) 2000-2019 the FFmpeg
developers
  built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04)
  configuration: --pkg-config-flags=--static --prefix=/home/brainiarc7/bin
--bindir=/home/brainiarc7/bin --extra-cflags=-I/home/brainiarc7/bin/include
--extra-ldflags=-L/home/brainiarc7/bin/lib --enable-cuda-nvcc
--enable-cuvid --enable-libnpp --extra-cflags=-I/usr/local/cuda/include/
--extra-ldflags=-L/usr/local/cuda/lib64/ --enable-nvenc
--extra-cflags=-I/opt/intel/mediasdk/include
--extra-ldflags=-L/opt/intel/mediasdk/lib
--extra-ldflags=-L/opt/intel/mediasdk/plugins --enable-libmfx
--enable-libass --enable-vaapi --disable-debug --enable-libvorbis
--enable-libvpx --enable-libdrm --enable-opencl --enable-gpl --cpu=native
--enable-opengl --enable-libfdk-aac --enable-libx265 --enable-openssl
--extra-libs='-lpthread -lm -lz' --enable-nonfree
  libavutil      56. 26.100 / 56. 26.100
  libavcodec     58. 52.100 / 58. 52.100
  libavformat    58. 27.103 / 58. 27.103
  libavdevice    58.  7.100 / 58.  7.100
  libavfilter     7. 50.100 /  7. 50.100
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
Input #0, matroska,webm, from 'rv.mkv':
  Metadata:
    ENCODER         : Lavf58.27.102
  Duration: 00:02:24.77, start: 0.000000, bitrate: 20063 kb/s
    Stream #0:0: Video: h264 (High 4:4:4 Predictive), yuv444p(progressive),
2560x1440, 60 fps, 60 tbr, 1k tbn, 120 tbc (default)
    Metadata:
      ENCODER         : Lavc58.51.100 libx264
      DURATION        : 00:02:24.767000000
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_vaapi))
Press [q] to stop, [?] for help
Output #0, mpegts, to '/dev/null':
  Metadata:
    encoder         : Lavf58.27.103
    Stream #0:0: Video: h264 (h264_vaapi) (Main), vaapi_vld, 2560x1440,
q=-1--1, 7500 kb/s, 60 fps, 90k tbn, 60 tbc (default)
    Metadata:
      DURATION        : 00:02:24.767000000
      encoder         : Lavc58.52.100 h264_vaapi
[h264_vaapi @ 0x555af9b53080] Failed to end picture encode issue: 6
(invalid VASurfaceID).
[h264_vaapi @ 0x555af9b53080] Encode failed: -5.
Video encoding failed
Conversion failed!

And with the iHD driver:

LIBVA_DRIVER_NAME=iHD ffmpeg -y -stats -init_hw_device
vaapi=va:/dev/dri/renderD128 -filter_hw_device va -hwaccel vaapi -i
'rv.mkv' -vf 'hwupload,format=vaapi|nv12'  -c:v h264_vaapi -bf:v 3
-rc_mode:v 3 -coder:v cabac -profile:v main  -b:v 7.5M -maxrate:v 15M
-bufsize:v 0.5M -r:v 60 -an -f mpegts -y /dev/null
ffmpeg version N-93719-g19af948e53 Copyright (c) 2000-2019 the FFmpeg
developers
  built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04)
  configuration: --pkg-config-flags=--static --prefix=/home/brainiarc7/bin
--bindir=/home/brainiarc7/bin --extra-cflags=-I/home/brainiarc7/bin/include
--extra-ldflags=-L/home/brainiarc7/bin/lib --enable-cuda-nvcc
--enable-cuvid --enable-libnpp --extra-cflags=-I/usr/local/cuda/include/
--extra-ldflags=-L/usr/local/cuda/lib64/ --enable-nvenc
--extra-cflags=-I/opt/intel/mediasdk/include
--extra-ldflags=-L/opt/intel/mediasdk/lib
--extra-ldflags=-L/opt/intel/mediasdk/plugins --enable-libmfx
--enable-libass --enable-vaapi --disable-debug --enable-libvorbis
--enable-libvpx --enable-libdrm --enable-opencl --enable-gpl --cpu=native
--enable-opengl --enable-libfdk-aac --enable-libx265 --enable-openssl
--extra-libs='-lpthread -lm -lz' --enable-nonfree
  libavutil      56. 26.100 / 56. 26.100
  libavcodec     58. 52.100 / 58. 52.100
  libavformat    58. 27.103 / 58. 27.103
  libavdevice    58.  7.100 / 58.  7.100
  libavfilter     7. 50.100 /  7. 50.100
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
Input #0, matroska,webm, from 'rv.mkv':
  Metadata:
    ENCODER         : Lavf58.27.102
  Duration: 00:02:24.77, start: 0.000000, bitrate: 20063 kb/s
    Stream #0:0: Video: h264 (High 4:4:4 Predictive), yuv444p(progressive),
2560x1440, 60 fps, 60 tbr, 1k tbn, 120 tbc (default)
    Metadata:
      ENCODER         : Lavc58.51.100 libx264
      DURATION        : 00:02:24.767000000
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_vaapi))
Press [q] to stop, [?] for help
[h264_vaapi @ 0x55a59a3cb6c0] No usable encoding profile found.
Error initializing output stream 0:0 -- Error while opening encoder for
output stream #0:0 - maybe incorrect parameters such as bit_rate, rate,
width or height
Conversion failed!

Yet the same input file with the hevc_vaapi encoder works, at least with
the i915 driver:

LIBVA_DRIVER_NAME=i965 ffmpeg -y -stats \
-init_hw_device vaapi=va:/dev/dri/renderD128 -filter_hw_device va -hwaccel
vaapi \
-i 'rv.mkv' -vf 'hwupload,format=vaapi|nv12'  \
-c:v hevc_vaapi -bf:v 3 -rc_mode:v 3 -qp:v 19 -profile:v main  \
-b:v 7.5M -maxrate:v 15M -bufsize:v 0.5M -r:v 60 -an -f mpegts -y /dev/null

ffmpeg version N-93719-g19af948e53 Copyright (c) 2000-2019 the FFmpeg
developers
  built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04)
  configuration: --pkg-config-flags=--static --prefix=/home/brainiarc7/bin
--bindir=/home/brainiarc7/bin --extra-cflags=-I/home/brainiarc7/bin/include
--extra-ldflags=-L/home/brainiarc7/bin/lib --enable-cuda-nvcc
--enable-cuvid --enable-libnpp --extra-cflags=-I/usr/local/cuda/include/
--extra-ldflags=-L/usr/local/cuda/lib64/ --enable-nvenc
--extra-cflags=-I/opt/intel/mediasdk/include
--extra-ldflags=-L/opt/intel/mediasdk/lib
--extra-ldflags=-L/opt/intel/mediasdk/plugins --enable-libmfx
--enable-libass --enable-vaapi --disable-debug --enable-libvorbis
--enable-libvpx --enable-libdrm --enable-opencl --enable-gpl --cpu=native
--enable-opengl --enable-libfdk-aac --enable-libx265 --enable-openssl
--extra-libs='-lpthread -lm -lz' --enable-nonfree
  libavutil      56. 26.100 / 56. 26.100
  libavcodec     58. 52.100 / 58. 52.100
  libavformat    58. 27.103 / 58. 27.103
  libavdevice    58.  7.100 / 58.  7.100
  libavfilter     7. 50.100 /  7. 50.100
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
Input #0, matroska,webm, from 'rv.mkv':
  Metadata:
    ENCODER         : Lavf58.27.102
  Duration: 00:02:24.77, start: 0.000000, bitrate: 20063 kb/s
    Stream #0:0: Video: h264 (High 4:4:4 Predictive), yuv444p(progressive),
2560x1440, 60 fps, 60 tbr, 1k tbn, 120 tbc (default)
    Metadata:
      ENCODER         : Lavc58.51.100 libx264
      DURATION        : 00:02:24.767000000
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> hevc (hevc_vaapi))
Press [q] to stop, [?] for help
Output #0, mpegts, to '/dev/null':
  Metadata:
    encoder         : Lavf58.27.103
    Stream #0:0: Video: hevc (hevc_vaapi) (Main), vaapi_vld, 2560x1440,
q=-1--1, 7500 kb/s, 60 fps, 90k tbn, 60 tbc (default)
    Metadata:
      DURATION        : 00:02:24.767000000
      encoder         : Lavc58.52.100 hevc_vaapi
frame=   18 fps=0.0 q=-0.0 size=     182kB time=00:00:06.58 bitrate=
226.6kbits/frame=   42 fps= 39 q=-0.0 size=     221kB time=00:00:08.43
bitrate= 214.5kbits/frame=   63 fps= 40 q=-0.0 size=     246kB
time=00:00:09.80 bitrate= 205.3kbits/frame=   82 fps= 39 q=-0.0 size=
512kB time=00:00:11.28 bitrate= 371.7kbits/frame=  102 fps= 39 q=-0.0
size=     768kB time=00:00:12.96 bitrate= 485.2kbits/frame=  122 fps= 39
q=-0.0 size=    1024kB time=00:00:14.61 bitrate= 573.9kbits/frame=  146
fps= 40 q=-0.0 size=    1280kB time=00:00:16.61 bitrate= 631.0kbits/frame=
168 fps= 40 q=-0.0 size=    1536kB time=00:00:18.25 bitrate=
689.5kbits/frame=  187 fps= 40 q=-0.0 size=    1792kB time=00:00:19.86
bitrate= 738.9kbits/frame=  208 fps= 40 q=-0.0 size=    1792kB
time=00:00:21.33 bitrate= 688.1kbits/frame=  230 fps= 40 q=-0.0 size=
2048kB time=00:00:22.95 bitrate= 731.0kbits/frame=  250 fps= 40 q=-0.0
size=    2304kB time=00:00:24.28 bitrate= 777.3kbits/frame=  271 fps= 40
q=-0.0 size=    2304kB time=00:00:25.86 bitrate= 729.7kbits/frame=  293
fps= 40 q=-0.0 size=    2560kB time=00:00:27.86 bitrate= 752.6kbits/frame=
312 fps= 40 q=-0.0 size=    2816kB time=00:00:29.20 bitrate=
790.0kbits/frame=  332 fps= 40 q=-0.0 size=    2816kB time=00:00:30.86
bitrate= 747.4kbits/frame=  351 fps= 40 q=-0.0 size=    2816kB
time=00:00:32.48 bitrate= 710.2kbits/frame=  370 fps= 40 q=-0.0 size=
2816kB time=00:00:34.10 bitrate= 676.5kbits/frame=  394 fps= 40 q=-0.0
size=    3072kB time=00:00:36.10 bitrate= 697.1kbits/frame=  414 fps= 40
q=-0.0 size=    3328kB time=00:00:37.76 bitrate= 721.9kbits/frame=  434
fps= 40 q=-0.0 size=    3840kB time=00:00:39.40 bitrate= 798.4kbits/frame=
454 fps= 40 q=-0.0 size=    4096kB time=00:00:41.08 bitrate=
816.7kbits/frame=  472 fps= 39 q=-0.0 size=    4352kB time=00:00:42.46
bitrate= 839.5kbits/frame=  490 fps= 39 q=-0.0 size=    4608kB
time=00:00:44.18 bitrate= 854.4kbits/frame=  510 fps= 39 q=-0.0 size=
4608kB time=00:00:45.93 bitrate= 821.8kbits/frame=  530 fps= 39 q=-0.0
size=    5120kB time=00:00:47.76 bitrate= 878.1kbits/frame=  550 fps= 39
q=-0.0 size=    5376kB time=00:00:49.68 bitrate= 886.4kbits/frame=  568
fps= 39 q=-0.0 size=    5376kB time=00:00:51.15 bitrate= 861.0kbits/frame=
586 fps= 38 q=-0.0 size=    5888kB time=00:00:52.96 bitrate=
910.7kbits/frame=  606 fps= 38 q=-0.0 size=    6144kB time=00:00:54.75
bitrate= 919.3kbits/frame=  626 fps= 38 q=-0.0 size=    6144kB
time=00:00:56.58 bitrate= 889.5kbits/frame=  646 fps= 38 q=-0.0 size=
6400kB time=00:00:58.46 bitrate= 896.7kbits/frame=  666 fps= 38 q=-0.0
size=    6656kB time=00:01:00.46 bitrate= 901.8kbits/frame=  685 fps= 38
q=-0.0 size=    6912kB time=00:01:02.40 bitrate= 907.4kbits/frame=  702
fps= 38 q=-0.0 size=    7168kB time=00:01:03.91 bitrate= 918.7kbits/frame=
722 fps= 38 q=-0.0 size=    7424kB time=00:01:05.80 bitrate=
924.3kbits/frame=  742 fps= 38 q=-0.0 size=    7424kB time=00:01:07.50
bitrate= 901.0kbits/frame=  763 fps= 38 q=-0.0 size=    7680kB
time=00:01:09.16 bitrate= 909.6kbits/frame=  783 fps= 38 q=-0.0 size=
7936kB time=00:01:10.98 bitrate= 915.9kbits/frame=  806 fps= 38 q=-0.0
size=    8192kB time=00:01:13.01 bitrate= 919.1kbits/frame=  826 fps= 38
q=-0.0 size=    8448kB time=00:01:14.76 bitrate= 925.6kbits/frame=  848
fps= 38 q=-0.0 size=    8704kB time=00:01:16.48 bitrate= 932.3kbits/frame=
870 fps= 39 q=-0.0 size=    8704kB time=00:01:18.50 bitrate=
908.3kbits/frame=  892 fps= 39 q=-0.0 size=    8960kB time=00:01:20.30
bitrate= 914.1kbits/frame=  914 fps= 39 q=-0.0 size=    9216kB
time=00:01:22.61 bitrate= 913.8kbits/frame=  938 fps= 39 q=-0.0 size=
9472kB time=00:01:24.71 bitrate= 915.9kbits/frame=  961 fps= 39 q=-0.0
size=    9728kB time=00:01:26.55 bitrate= 920.8kbits/frame=  982 fps= 39
q=-0.0 size=    9728kB time=00:01:28.20 bitrate= 903.5kbits/frame= 1002
fps= 39 q=-0.0 size=    9984kB time=00:01:29.88 bitrate= 909.9kbits/frame=
1024 fps= 39 q=-0.0 size=   10240kB time=00:01:31.60 bitrate=
915.8kbits/frame= 1045 fps= 39 q=-0.0 size=   10496kB time=00:01:33.56
bitrate= 919.0kbits/frame= 1062 fps= 39 q=-0.0 size=   10752kB
time=00:01:34.81 bitrate= 929.0kbits/frame= 1082 fps= 39 q=-0.0 size=
11008kB time=00:01:36.60 bitrate= 933.5kbits/frame= 1102 fps= 39 q=-0.0
size=   11008kB time=00:01:38.28 bitrate= 917.5kbits/frame= 1122 fps= 39
q=-0.0 size=   11264kB time=00:01:39.91 bitrate= 923.5kbits/frame= 1142
fps= 39 q=-0.0 size=   11520kB time=00:01:41.61 bitrate= 928.7kbits/frame=
1162 fps= 39 q=-0.0 size=   11776kB time=00:01:43.21 bitrate=
934.6kbits/frame= 1182 fps= 39 q=-0.0 size=   12032kB time=00:01:44.83
bitrate= 940.2kbits/frame= 1202 fps= 39 q=-0.0 size=   12288kB
time=00:01:46.43 bitrate= 945.8kbits/frame= 1222 fps= 39 q=-0.0 size=
12288kB time=00:01:47.95 bitrate= 932.5kbits/frame= 1243 fps= 39 q=-0.0
size=   12544kB time=00:01:49.46 bitrate= 938.7kbits/frame= 1262 fps= 39
q=-0.0 size=   12544kB time=00:01:51.06 bitrate= 925.2kbits/frame= 1280
fps= 39 q=-0.0 size=   12800kB time=00:01:52.38 bitrate= 933.0kbits/frame=
1297 fps= 39 q=-0.0 size=   13312kB time=00:01:54.03 bitrate=
956.3kbits/frame= 1314 fps= 39 q=-0.0 size=   13312kB time=00:01:55.33
bitrate= 945.5kbits/frame= 1332 fps= 39 q=-0.0 size=   13568kB
time=00:01:56.66 bitrate= 952.7kbits/frame= 1350 fps= 39 q=-0.0 size=
13824kB time=00:01:58.33 bitrate= 957.0kbits/frame= 1368 fps= 39 q=-0.0
size=   13824kB time=00:01:59.60 bitrate= 946.9kbits/frame= 1390 fps= 39
q=-0.0 size=   14080kB time=00:02:01.58 bitrate= 948.7kbits/frame= 1410
fps= 39 q=-0.0 size=   14336kB time=00:02:03.18 bitrate= 953.4kbits/frame=
1430 fps= 38 q=-0.0 size=   14592kB time=00:02:04.81 bitrate=
957.7kbits/frame= 1449 fps= 38 q=-0.0 size=   14848kB time=00:02:06.46
bitrate= 961.8kbits/frame= 1466 fps= 38 q=-0.0 size=   14848kB
time=00:02:07.76 bitrate= 952.0kbits/frame= 1486 fps= 38 q=-0.0 size=
15104kB time=00:02:09.40 bitrate= 956.2kbits/frame= 1509 fps= 38 q=-0.0
size=   15360kB time=00:02:11.15 bitrate= 959.4kbits/frame= 1526 fps= 38
q=-0.0 size=   15616kB time=00:02:12.38 bitrate= 966.3kbits/frame= 1542
fps= 38 q=-0.0 size=   15872kB time=00:02:13.63 bitrate= 973.0kbits/frame=
1560 fps= 38 q=-0.0 size=   16128kB time=00:02:15.16 bitrate=
977.5kbits/frame= 1578 fps= 38 q=-0.0 size=   16384kB time=00:02:16.48
bitrate= 983.4kbits/frame= 1595 fps= 38 q=-0.0 size=   16384kB
time=00:02:17.73 bitrate= 974.5kbits/frame= 1618 fps= 38 q=-0.0 size=
16640kB time=00:02:19.41 bitrate= 977.8kbits/frame= 1638 fps= 38 q=-0.0
size=   17152kB time=00:02:20.80 bitrate= 997.9kbits/frame= 1661 fps= 38
q=-0.0 size=   17408kB time=00:02:22.41 bitrate=1001.3kbits/frame= 1681
fps= 38 q=-0.0 size=   17408kB time=00:02:23.75 bitrate=
992.0kbits/[matroska,webm @ 0x56039fc7fe00] Element at 0x15a3f012 ending at
0x15a3f0a4 exceeds containing master element ending at 0x15a3f006


Testing the same with the iHD driver results in failure:

LIBVA_DRIVER_NAME=iHD ffmpeg -y -stats \
-init_hw_device vaapi=va:/dev/dri/renderD128 -filter_hw_device va -hwaccel
vaapi \
-i 'rv.mkv' -vf 'hwupload,format=vaapi|nv12'  \
-c:v hevc_vaapi -bf:v 3 -rc_mode:v 3 -qp:v 19 -profile:v main  \
-b:v 7.5M -maxrate:v 15M -bufsize:v 0.5M -r:v 60 -an -f mpegts -y /dev/null

ffmpeg version N-93719-g19af948e53 Copyright (c) 2000-2019 the FFmpeg
developers
  built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04)
  configuration: --pkg-config-flags=--static --prefix=/home/brainiarc7/bin
--bindir=/home/brainiarc7/bin --extra-cflags=-I/home/brainiarc7/bin/include
--extra-ldflags=-L/home/brainiarc7/bin/lib --enable-cuda-nvcc
--enable-cuvid --enable-libnpp --extra-cflags=-I/usr/local/cuda/include/
--extra-ldflags=-L/usr/local/cuda/lib64/ --enable-nvenc
--extra-cflags=-I/opt/intel/mediasdk/include
--extra-ldflags=-L/opt/intel/mediasdk/lib
--extra-ldflags=-L/opt/intel/mediasdk/plugins --enable-libmfx
--enable-libass --enable-vaapi --disable-debug --enable-libvorbis
--enable-libvpx --enable-libdrm --enable-opencl --enable-gpl --cpu=native
--enable-opengl --enable-libfdk-aac --enable-libx265 --enable-openssl
--extra-libs='-lpthread -lm -lz' --enable-nonfree
  libavutil      56. 26.100 / 56. 26.100
  libavcodec     58. 52.100 / 58. 52.100
  libavformat    58. 27.103 / 58. 27.103
  libavdevice    58.  7.100 / 58.  7.100
  libavfilter     7. 50.100 /  7. 50.100
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
Input #0, matroska,webm, from 'rv.mkv':
  Metadata:
    ENCODER         : Lavf58.27.102
  Duration: 00:02:24.77, start: 0.000000, bitrate: 20063 kb/s
    Stream #0:0: Video: h264 (High 4:4:4 Predictive), yuv444p(progressive),
2560x1440, 60 fps, 60 tbr, 1k tbn, 120 tbc (default)
    Metadata:
      ENCODER         : Lavc58.51.100 libx264
      DURATION        : 00:02:24.767000000
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> hevc (hevc_vaapi))
Press [q] to stop, [?] for help
[hevc_vaapi @ 0x55c9421756c0] No usable encoding profile found.
Error initializing output stream 0:0 -- Error while opening encoder for
output stream #0:0 - maybe incorrect parameters such as bit_rate, rate,
width or height
Conversion failed!

I 'll retest with this patch applied and see if it solves the issue.
But as things stand without the patch, hardware-based decode+encode
pipelines with specific encoders (QSV & VAAPI), as demonstrated, can be
very failure prone depending on the input file attributes.
The input file used, as reference, is encoded in the yuv444p colorspace, as
shown in the ffprobe output.


More information about the ffmpeg-devel mailing list