В моем приложении пользователь может искать определенную позицию (media.currentPosition), затем нажать кнопку сохранения, изображение будет экспортировано, вот моя команда ffmpeg, которую я использую для достижения этой цели:
"-i",Video.mp4,"-filter_complex","[1:v][0:v]scale2ref=iw:ih[ovr][base];[ovr]colorchannelmixer=aa=0.7[ovrl];[base][ovrl]overlay[v]","-map","[v]","-ss",GetPositionInVideo,"-vframes","1","-q:v","2", "-preset", "ultrafast",directoryToStore+"/"+"Image.jpg"};
Это приложение для Android, поэтому оно находится в строковом массиве. Команда работает отлично, НО это занимает вечность, чтобы закончить.
В моем журнале это будет показывать это неоднократно:
[Progress]: frame= 0 fps=0.0 q=0.0 size=N/A time=00:00:00.00 bitrate=N/A speed= 0x
пока кадр не достигнут, то это показывает это:
[Progress]: frame= 1 fps=0.0 q=2.0 Lsize=N/A time=00:00:00.04 bitrate=N/A speed=0.00151x
это тогда немедленно заканчивается.
Итак, я думаю, что ffmpeg обрабатывает каждый кадр до тех пор, пока он не достигнет желаемого кадра, а затем обрабатывает его.
Мой вопрос:
Есть ли способ увеличить скорость / время обработки экспорта одного кадра из видео в изображение? - Может быть, пропустив ненужные кадры и перейдя непосредственно к кадру, который пользователь хочет экспортировать?