Вы можете легко использовать ffmpeg с помощью команды оболочки с помощью junt Runtime.getRuntime(). Exec (...), чтобы конвертировать ваше видео с 3gp в mp4. Получите двоичный файл ffmpeg для устройств для рук (большинство устройств для Android) здесь: https://www.dropbox.com/s/nxjnrb71qdrq5jn/ffmpeg.zip?n=138005726. Вы захотите упаковать это с помощью своего роя, определить, когда файл 3gp, а затем использовать ffmpeg, чтобы преобразовать его в mp4, прежде чем загружать его на сервер.
Чтобы выполнить двоичный код в вашем java-коде, вы захотите сделать такой способ, когда вход - это местоположение входного видео, выход - это местоположение выходного видео, а fmpeg - это местоположение двоичного файла ffmpeg включают:
public void convertVideo(String input, String output) throws IOException, InterruptedException
{
String args = ffmpeg + "-i" + input + "ffmpeg encoding paramaters..." + "-f mp4" + output;
Runtime r = Runtime.getRuntime();
Process p = r.exec("/system/bin/sh" + "-c" + args);
p.waitFor();
}
Параметры параметров ffmpeg, возможно, потребуется оптимизировать для целевого размера видео. Я бы также создал статический x86 ffmpeg для меньшинства x86-андроидов. Затем вы можете обнаружить архитектуру устройства с помощью команды оболочки «uname -a» и выбрать, какой из них использовать.
Надеюсь, это поможет!
Благодарим за ваш ответ! Есть ли способ конвертировать с Android API? Если это возможно, я хочу избежать использования ffmpeg из-за проблемы лицензии ffmpeg и переноса. Когда я использовал ffmepg для обработки видео, некоторые устройства имели проблемы. – Storm
Вы можете загрузить свой ffmpeg lib для x86? – xtr