Выполнение команды FFMPEG занимает слишком много времени в Android

Когда я запускаю любую команду FFMPEG, выполнение занимает слишком много времени. Я использую команду FFMPEG для обратного видео, слияния аудио и видео, создания изображений GIF и изменения скорости видео. Подскажите, пожалуйста, как быстро запустить команду FFMPEG. Пожалуйста, помогите мне


person Kalpesh Kumawat    schedule 17.01.2017    source источник
comment
добавьте некоторые примеры команд, которые вы используете, возможно, если они не оптимизированы, люди помогут вам оптимизировать их и ускорить процесс.   -  person Pavan K    schedule 19.01.2017
comment
Команда создания GIF: String[] cmd = {-y, -i,path, -vf, scale=720:-1, -t, 10, -r, 10, pathForSave};   -  person Kalpesh Kumawat    schedule 20.01.2017
comment
Команда ускорения и замедления видео: String[] cmd = {-y, -i, videopath, -filter_complex,[0:v]setpts=1.0*PTS[v];[0:a]atempo=1.0[a], -map,[v],-map,[a],pathForSave};   -  person Kalpesh Kumawat    schedule 20.01.2017
comment
Вам нужно показать полную команду ffmpeg и полученный в результате полный вывод/журнал консоли.   -  person llogan    schedule 23.01.2017


Ответы (4)


добавьте приведенный ниже код в команду ffmpeg, чтобы немного увеличить скорость обработки

-c:v libx264 -preset ultrafast

для обрезки звука

int minutes = (int) Math.floor(start_sec / 1000 / 60);
        int seconds =(int)Math.ceil(start_sec / 1000) - (minutes * 60);
        int endSeconds=(int) ((end_sec / 1000) - (minutes * 60));
        int duration=endSeconds-seconds;
        Log.d("start_point_seconds",""+seconds);
        Log.d("start minutes",""+minutes);
        String[] complexCommand = {"-i", src + "", "-ss", "00:"+minutes+":"+seconds, "-t",""+duration ,"-acodec","copy","/storage/emulated/0/Music/"+app_name+"/music_" + number + ".mp3"};
person Vinesh Chauhan    schedule 14.09.2017
comment
Извините, это не работает. Он не редактирует мой аудиофайл. Вот почему так быстро - person Neela; 23.10.2017
comment
Извините, это не работает. Он не редактирует мой аудиофайл. Вот почему так быстро - person Neela; 23.10.2017
comment
Мне нужно обрезать аудиофайл примерно на 1 минуту, когда продолжительность звука превышает 1 минуту. Но обрезка занимает около 30-35 секунд. Я использовал эту опцию, но выходной файл такой же, как и исходный. - person Neela; 24.10.2017

вы должны использовать «-preset», «ultrafast» в вашей команде ffmpeg для ускорения времени выполнения, но это работает, только если видео длится менее 15 секунд, в противном случае это ускоряет время выполнения, но задерживает время запуска воспроизведения видео, и это может выглядеть как ваш звук и видео не совпало с кадрами

person android    schedule 17.01.2017
comment
что я делаю для 60 секунд видео. Я объединяю аудио и видео - person Kalpesh Kumawat; 17.01.2017
comment
если вы хотите объединить звук, взятый из одного и того же видео, то для сохранения разрешения и кадров попробуйте добавить -q: v, 1, а для больших видео вы можете попробовать установить -framerate или -fps самостоятельно, а также использовать кодек, скопировать, - vcodec, скопируйте для лучшего объединенного вывода - person android; 17.01.2017

Время выполнения ffmpeg зависит от размера файла. так что большие файлы занимают много времени для преобразования, но это также зависит от того, какой тип операции вы выполняете.

person Rakyesh Kadadas    schedule 17.01.2017
comment
Сэр, я просто использую 10-секундное видео для создания gif, 15-секундное для обратного видео и 60-секундное для слияния видео-аудио, но это занимает слишком много времени. - person Kalpesh Kumawat; 17.01.2017

Да, это очень медленно на устройствах Android. FFMPEG на большинстве устройств Android нет аппаратной скорости. Это означает, что все вычисления выполняются в CPU. Скорость выполнения команды FFMPEG во многом зависит от скорости процессора устройства.

Для обработки аудио для видео с помощью FFMPEG он должен обрабатывать данные по одной выборке за одной выборкой или один кадр за одним кадром.

Вы можете подумать о других решениях с аппаратным ускорением, например MediaCodec, RenderScript, Open GLES, Open CL, для ускорения интенсивных вычислений.

person alijandro    schedule 18.01.2017
comment
как конвертировать видео в замедленную съемку Кроме ffmpeg - person Nishit Sangani; 03.04.2019