【问题标题】:Android 3gp to mp4 converterAndroid 3gp 到 mp4 转换器
【发布时间】:2015-01-15 03:36:53
【问题描述】:

我正在寻找一种在 Android 中将 3gp 转换为 mp4 的方法。 我通过“MediaStore.ACTION_VIDEO_CAPTURE”使用设备的摄像头,视频被传输到我的服务器。我的服务器只允许 mp4 文件。几乎所有设备都将视频保存为 mp4 文件,但有些设备保存为 3gp 文件。因此,对于某些设备,我必须将 3gp 转换为 mp4。

请帮忙!!

【问题讨论】:

    标签: android video converter mp4 3gp


    【解决方案1】:

    您可以通过带有 java 的 Runtime.getRuntime().exec(...) 的 shell 命令轻松使用 ffmpeg 将视频从 3gp 转换为 mp4。在此处获取 arm 设备(大多数 android 设备)的 ffmpeg 二进制文件:https://www.dropbox.com/s/nxjnrb71qdrq5jn/ffmpeg.zip?n=138005726。您需要将其与您的 rom 打包,检测文件何时为 3gp,然后使用 ffmpeg 将其转换为 mp4,然后再将其上传到服务器。

    要在您的 java 代码中执行二进制文件,您需要创建这样的方法,其中 input 是输入视频的位置,output 是输出视频的位置,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 机器人构建一个静态 x86 ffmpeg。然后,您可以使用 shell 命令“uname -a”检测设备架构并选择使用哪一个。

    希望这会有所帮助!

    【讨论】:

    • 感谢您的回答!有什么方法可以使用 Android API 进行转换吗?如果可能的话,我想避免使用 ffmpeg,因为 ffmpeg 的许可证问题和移植。当我使用 ffmepg 处理视频时,一些设备出现了问题。
    • 你能上传你的 x86 的 ffmpeg 库吗?
    猜你喜欢
    • 2011-05-28
    • 2011-12-05
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 2021-12-30
    • 2014-07-12
    • 2010-11-06
    相关资源
    最近更新 更多