在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 请帮助
最佳答案
您应该能够使用 ProcessBuilder 生成一个运行 ffmpeg 的进程:
Process ffmpeg = new ProcessBuilder().command(args).start()
if (ffmpeg.waitFor() != 0) {
// handle failure case
}
(上面的代码会阻塞当前线程,直到 ffmpeg 完成。)
但是,我认为您更大的问题是必须为您所针对的每个设备交叉编译和分发 ffmpeg 版本。
关于android - 如何使用 FFMPEG 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18557651/