Есть проблемка. Суть ее в следующем:
Через конкат куча картинок с разным разрешением скармливаются фильтрам и енкодеру 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