3

В моем приложении пользователь может искать определенную позицию (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 обрабатывает каждый кадр до тех пор, пока он не достигнет желаемого кадра, а затем обрабатывает его.


Мой вопрос:

Есть ли способ увеличить скорость / время обработки экспорта одного кадра из видео в изображение? - Может быть, пропустив ненужные кадры и перейдя непосредственно к кадру, который пользователь хочет экспортировать?

1 ответ1

1

"-ss",GetPositionInVideo, идет непосредственно перед "-i",Video.mp4 для быстрого поиска.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .