Добрый день!
Есть проблемка, которую не могу никак решить. Задача стоит в том, что необходимо кучу Jpeg картинок разного разрешения сконвертировать в видеоряд. При использовании софтверного кодирования делал так и было все ок:
ffmpeg -f concat -safe 0 -i «/home/service/images.list» -vf scale=w=1920:h=1080:force_original_aspect_ratio=decrease -vcodec libx264 -b 2M -an -pix_fmt yuv420p -f mp4 /home/video.mp4
В файле список скринов с паузами между ними для concat:
file '/home/screenshots/1.jpg'
duration 0.04
file '/home/screenshots/2.jpg'
duration 0.04
... и т.д
Все было ок, картинки интерполировались к указанному разрешению и на выходе получал нужный видео-файл. Решил использовать аппаратное кодирование на видеоядре. Команда:
ffmpeg -f concat -safe 0 -i «/home/service/images.list» -vf «format=vaapi|nv12,hwupload,scale_vaapi=w=1920:h=1080» -vcodec h264_vaapi -b 2M -an -f mp4 /home/video.mp4
На выходе я получаю видеофайл лишь в том случае, если разрешение картинок одинаковое. Т.е. если все скрины в 640x480, то все успешно интерполировалось до FullHD. Но если скрины разные по разрешению, то вываливается ошибка:
Impossible to convert between the formats supported by the filter 'Parsed_scale_vaapi_2' and the filter 'auto_scaler_1'
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!
Может кто сталкивался или имеет опыт в чем-то подобном? Буду рад любым наводкам.