嗨,我有一个 30 分钟的视频文件,但我想将视频00:09:23
从00:25:33
. 当用户通过我的应用程序播放视频时,我想提取视频的一部分。在播放视频时,用户可以指定开始和结束持续时间来剪切视频。那么有什么方法可以根据持续时间剪切视频并保存到 SD 卡?
user1633257
问问题
432 次
2 回答
0
您必须使用 JNI 约定编写一些 C 胶水代码,以将 FFmpeg 功能公开给 Java 代码。以下是 Android NDK 示例中用 C 语言实现的 JNI 方法示例:
jstring
Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env,
jobject thiz )
{
return (*env)->NewStringUTF(env, "Hello from JNI !");
}
您还需要一些 Java 代码来加载库并声明本机方法。
public class HelloJni
{
public native String stringFromJNI();
static {
System.loadLibrary("hello-jni");
}
}
我在 sourceforge 上找到了这个项目,它已经为 ffmpeg 实现了一些 JNI 接口,以将其与 Java 媒体框架集成。您可能会发现它很有用。
还有另一种称为 JNA(Java Native Access)的 Java FFI 技术允许您在 Java 中声明本机函数原型并直接调用它们。使用它可能需要更少的样板代码。有关 Android 实现,请参阅此项目。(我自己没用过)
您将需要包含可以从 Java 调用的JNI包装器方法,这些方法将依次调用 FFmpeg 函数。
于 2013-04-04T04:37:46.093 回答