2

在android中,我正在制作一个应用程序,它将在其中录制视频并从中心裁剪视频,因此我在google上找到了FFMPEG。我跟着 http://dmitrydzz-hobby.blogspot.in/2012/04/how-to-build-ffmpeg-and-use-it-in.html

它工作正常,但我想知道如何使用这个`ffmpeg -y -i /sdcard/videokit/short.mp4 -vf crop=100:100:0:0 -s 320x240 -r 15 -aspect 3:4 -ab 12288 -vcodec mpeg4 -b 2097152 -sample_fmt s16 /sdcard/videokit/out.mp4

` 视频裁剪命令和该命令的编写位置。

我已经尝试过了(用于连接只是为了检查如何使用 ffmpeg 命令)

public class MainActivity extends Activity {
private static native int logFileInfo(String[] args);
String pathOut = "/storage/sdcard/12.mp3";
String pathInM = "/storage/sdcard/23.mp3";
String pathIn = "/storage/sdcard/out.mp3";
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    String[] args = {"ffmpeg",  "-i", "concat:", pathOut, "|",pathInM ,pathIn};
    logFileInfo(args);
    //logFileInfo("/storage/sdcard/12.mp3");
}

static
{
    System.loadLibrary("mylib");
}

但我不知道在 mylib.c 中写什么来执行 this.somebody 请帮助

4

1 回答 1

0

您应该能够使用 ProcessBuilder 生成一个运行 ffmpeg 的进程:

Process ffmpeg = new ProcessBuilder().command(args).start()
if (ffmpeg.waitFor() != 0) {
    // handle failure case
}

(上面的代码会阻塞当前线程,直到 ffmpeg 完成。)

但是,我认为您的更大问题是必须为您所针对的每个设备交叉编译和分发 ffmpeg 版本。

于 2013-09-25T22:15:50.690 回答