Android 编译ffmpeg仅用于将图像转换为视频(带声音)

Android 编译ffmpeg仅用于将图像转换为视频(带声音),android,build,ffmpeg,Android,Build,Ffmpeg,好的,我已经使用Guardian项目源代码成功编译了android的ffmpeg。现在二进制文件的大小约为10MB。但因为它必须要接电话,所以我只希望它尽可能小。 现在,Guardian项目代码有一个文件(goto link to see),它表示要更改该文件以添加/删除功能。但我不知道什么是什么。有人能帮我整理一下吗。理想情况下,我可以禁用一些东西 谢谢, 关于这个项目的规模,我不知道你能做些什么 关于将图像转换为视频,您可以执行以下操作: 公共静态字符串转换(文件){ 这实际上是从输入视频中

好的,我已经使用Guardian项目源代码成功编译了android的ffmpeg。现在二进制文件的大小约为10MB。但因为它必须要接电话,所以我只希望它尽可能小。
现在,Guardian项目代码有一个文件(goto link to see),它表示要更改该文件以添加/删除功能。但我不知道什么是什么。有人能帮我整理一下吗。理想情况下,我可以禁用一些东西

谢谢,

关于这个项目的规模,我不知道你能做些什么

关于将图像转换为视频,您可以执行以下操作:

公共静态字符串转换(文件){


这实际上是从输入视频中获取每一帧并创建另一个.mp4视频。您可以将其重写为文件夹中每一帧的代码(或类似的内容)。

关于项目的大小,我不知道您可以做什么

关于将图像转换为视频,您可以执行以下操作:

公共静态字符串转换(文件){


这实际上是从输入视频中获取每一帧并创建另一个.mp4视频。您可以将其重写为文件夹中每一帧的代码(或类似的内容).

hi-wamasa,如何使用javacv合并音频和视频?在android中可能吗?我已经使用javacv从图像列表中获取了视频。@rams是的,这是可能的。很抱歉这么晚才回复你,正在休假。在这个链接中,你可能会得到一些好的答案hi-wamasa,如何使用javacv合并音频和视频?可能吗在android中?我已经使用javacv从图像列表中获得了视频。@是的,这是可能的。很抱歉这么晚才回复你,我正在度假。你可能会在这个链接中得到一些好的答案
    FFmpegFrameGrabber frameGrabber =
            new FFmpegFrameGrabber(file.getAbsolutePath());

    String newName = file.getName();
    newName =
            newName.replace("." + FileManager.getExtension(file),
                    "_RECODED.mp4");
    String newFilePath = file.getParent() + "/" + newName;
    FFmpegFrameRecorder recorder;
    Frame frame = new Frame();
    recorder = new FFmpegFrameRecorder(newFilePath, 250, 250);
    recorder.setFrameRate(20);
    recorder.setFormat("mp4");
    recorder.setAudioChannels(2);
    recorder.setPreset("veryfast");
    try {
        long startTime = System.currentTimeMillis();
        System.out.println("" + startTime);
        Log.d("Tempo", "" + startTime);
        frameGrabber.start();
        recorder.start();
        while (true) {
            try {
                frame = frameGrabber.grabFrame();
                if (frame == null) {
                    System.out.println("!!! Failed cvQueryFrame");
                    break;
                }
                recorder.record(frame);
            } catch (Exception e) {
                Log.e("converter", e.getMessage());
            }
        }
        frameGrabber.stop();
        frameGrabber.release();
        recorder.stop();
        recorder.release();
        long stopTime = System.currentTimeMillis();
        System.out.println(""+stopTime);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return newFilePath;
}