2014-11-18 13 views
2

Я ищу способ конвертировать 3gp в mp4 в Android. Я использую камеру устройства через «MediaStore.ACTION_VIDEO_CAPTURE», и видео передается на мой сервер. Мой сервер разрешает только файлы mp4. Почти все устройства сохраняют видео как файлы mp4, но некоторые устройства сохраняют как 3gp-файл. Итак, мне нужно преобразовать 3gp в mp4 для некоторых устройств.Android 3gp to mp4 converter

Пожалуйста, помогите!

ответ

0

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

Надеюсь, это поможет!

+1

Благодарим за ваш ответ! Есть ли способ конвертировать с Android API? Если это возможно, я хочу избежать использования ffmpeg из-за проблемы лицензии ffmpeg и переноса. Когда я использовал ffmepg для обработки видео, некоторые устройства имели проблемы. – Storm

+0

Вы можете загрузить свой ffmpeg lib для x86? – xtr