Есть проблемка. Суть ее в следующем:
Через конкат куча картинок с разным разрешением скармливаются фильтрам и енкодеру vp9-vaapi. Если они одного разрешения, то скалинг и через scale=, и через scale_vaapi= до нужного разрешения работает. Если же, разрешение у картинок разное, то вываливат следующую ошибку:
ffmpeg version 3.4.1 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-16)
configuration: --prefix=/usr --enable-vaapi --enable-nonfree --extra-libs=-lpthread --enable-libx264 --enable-libvpx --enable-gpl --enable-libfreetype --enable-filter=movie
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
[AVHWDeviceContext @ 0x2cf26e0] Opened VA display via DRM device /dev/dri/renderD128.
[AVHWDeviceContext @ 0x2cf26e0] libva: VA-API version 1.0.0
[AVHWDeviceContext @ 0x2cf26e0] libva: va_getDriverName() returns 0
[AVHWDeviceContext @ 0x2cf26e0] libva: User requested driver 'iHD'
[AVHWDeviceContext @ 0x2cf26e0] libva: Trying to open /opt/intel/mediasdk/lib64/iHD_drv_video.so
[AVHWDeviceContext @ 0x2cf26e0] libva: Found init function __vaDriverInit_1_0
[AVHWDeviceContext @ 0x2cf26e0] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x2cf26e0] Initialised VAAPI connection: version 1.0
[AVHWDeviceContext @ 0x2cf26e0] Matched «Intel i965 driver for Intel(R) Kaby Lake - 2.0.1.pre1 (2.0.0-22-gb56eed0)» as known driver «Intel i965 (Quick Sync)».
Input #0, concat, from '/root/temp/test.list':
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: mjpeg, 1 reference frame, yuvj420p(pc, bt470bg/unknown/unknown, center), 1280x720, 25 tbr, 25 tbn, 25 tbc
[Parsed_scale_0 @ 0x2d17ca0] w:1280 h:720 flags:'bilinear' interl:0
Stream mapping:
Stream #0:0 (mjpeg) -> scale
hwupload -> Stream #0:0 (vp9_vaapi)
Press [q] to stop, [?] for help
[Parsed_scale_0 @ 0x2d20de0] w:1280 h:720 flags:'bilinear' interl:0
[graph 0 input from stream 0:0 @ 0x2d228e0] w:1280 h:720 pixfmt:yuvj420p tb:1/25 fr:25/1 sar:0/1 sws_param:flags=2
[swscaler @ 0x2d590e0] deprecated pixel format used, make sure you did set range correctly
[Parsed_scale_0 @ 0x2d20de0] w:1280 h:720 fmt:yuvj420p sar:0/1 -> w:1280 h:720 fmt:nv12 sar:0/1 flags:0x2
Output #0, matroska, to '/root/temp/out2.mkv':
Metadata:
encoder : Lavf57.83.100
Stream #0:0: Video: vp9 (vp9_vaapi) (Profile 0), 1 reference frame (VP90 / 0x30395056), vaapi_vld(center), 1280x720, q=2-31, 25 fps, 1k tbn, 25 tbc
Metadata:
encoder : Lavc57.107.100 vp9_vaapi
Automatically inserted bitstream filter 'vp9_superframe'; args="
[Parsed_scale_0 @ 0x2d23260] w:1280 h:720 flags:'bilinear' interl:0
[graph 0 input from stream 0:0 @ 0x2d141c0] w:1920 h:1080 pixfmt:yuvj420p tb:1/25 fr:25/1 sar:0/1 sws_param:flags=2
[scaler_out_0_0 @ 0x2d22f00] w:1280 h:720 flags:'bicubic' interl:0
[auto_scaler_0 @ 0x2d6ff00] w:iw h:ih flags:'bilinear' interl:0
[scaler_out_0_0 @ 0x2d22f00] auto-inserting filter 'auto_scaler_0' between the filter 'Parsed_hwupload_2' and the filter 'scaler_out_0_0'
Impossible to convert between the formats supported by the filter 'Parsed_hwupload_2' and the filter 'auto_scaler_0'
Error reinitializing filters!
Failed to inject frame into filter network: Function not implemented
Error while processing the decoded data for stream #0:0
Conversion failed!
Подскажите куда копать)
P.S.: Или такую вываливает:
Impossible to convert between the formats supported by the filter 'Parsed_hwupload_2' and the filter 'auto_scaler_0' Error reinitializing filters! Failed to inject frame into filter network: Function not implemented
