#android #ffmpeg
#Android #ffmpeg
Вопрос:
Я использую ffmpeg в Android для обрезки видео. Для этого я использую command:
ffmpeg -i movie.mp4 -vf "crop=640:256:0:400" -strict -2 YourCroppedMovie.mp4
Моя проблема в том, что это невероятно медленно. Обрезка 10-секундного фильма занимает около 30 секунд. Есть ли какой-нибудь способ ускорить это?
Ответ №1:
Хорошо, попробуйте внести изменения в свою команду следующим образом:
ffmpeg -i movie.mp4 -vf "crop=640:256:0:400" -threads 5 -preset ultrafast -strict -2 YourCroppedMovie.mp4
Я попробовал это и сократил время выполнения с 46 секунд до 4 секунд. Теперь это слишком быстро … 🙂
Комментарии:
1. Поведение по умолчанию для потоков автоматически выбирает оптимальное значение, поэтому принудительное использование определенного значения может быть неоптимальным.
2. привет @kalpesh Я делаю так, как вы указали, но без особого эффекта, не могли бы вы мне помочь, пожалуйста, я уменьшаю масштаб изображений, подобных этому StringBuilder .append(«zoompan = z=’if(lte (zoom,1.0),1.5, max(1.001, zoom-0.0015))’: d= 125″); StringBuilder.append(» -потоки 10 -предустановленные сверхбыстрые «);
3. @Sunil Не могли бы вы поделиться со мной своей полной командой, которую вы используете сейчас?
4. ffmpeg -цикл 1 -я папка.getAbsolutePath()/IMG%d.jpg -я songfolder.getAbsolutePath() -строгий -2 -vf «zoompan=z=’если (lte(zoom,1.0), 1.5,max(1.001, zoom-0.0015))’: d = 125» -c:v libx264 -t 5 -секундное уменьшение масштаба «800×450».mp4
5. @Kalpesh получение
Unrecognized option 'threads 5 -preset ultrafast'.
здесь командыString[] cmd = {"-i", tempPath, "-vf", "scale=640:ih*640/iw, crop=" cropParams, "-threads 5 -preset ultrafast","-strict","experimental","-vcodec","libx264","-preset","ultrafast",outPath};