gpt4 book ai didi

java - 如何在 Android 上使用已编译的 FFMPEG jar 执行 FFMPEG

转载 作者:行者123 更新时间:2023-12-04 23:28:00 28 4
gpt4 key购买 nike

我添加了 org.bytedeco.javacpp 的 ffmpeg-2.3-0-9.jar ( https://www.versioneye.com/java/org.bytedeco.javacpp-presets:ffmpeg/2.3-0.9 ),并且我需要能够在我的 android 应用程序中执行命令,例如:

    ffmpeg -ss 00:00:00 -t 00:00:15 -i in.mp4 -codec copy out.mp4

但是,“ffmpeg”不是这个 jar 公开的类或方法。一些帖子建议我在处理 ffmpeg native 代码时应该使用 exec 方法,但是你是怎么做的(如果这对这个库来说是正确的)?
我正在尝试以下命令但没有成功。
    Process p=Runtime.getRuntime().exec("/libs/ffmpeg-2.3-0.9 -i -i in.mp4 -codec copy out.mp4");

有什么建议么?

最佳答案

我决定使用 FFmpeg4Android。它比使用 JNI 的任何东西都更加用户友好,并且它能够在 AsyncTask 中接受 ffmpeg 命令。进口是:

    import com.netcompss.ffmpeg4android.GeneralUtils;
import com.netcompss.loader.LoadJNI;

doInBackground 代码是:
    PowerManager powerManager = (PowerManager) Main.this.getSystemService(Activity.POWER_SERVICE);
PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "VK_LOCK");
wakeLock.acquire();
String commandStr = "ffmpeg -ss 00:00:00 -t 00:00:15 -i "+fullInVideoPath+" -codec copy " + fullOutVideoPath;
LoadJNI vk = new LoadJNI();
try {
vk.run(GeneralUtils.utilConvertToComplex(commandStr), scishotfolder, getApplicationContext());
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
if (wakeLock.isHeld()) wakeLock.release();
}

我希望这可以帮助那里的人。唯一的问题是它会产生无法在 VideoView 内播放的损坏视频!不幸的是,另一种流行的替代方法称为 mp4parser 也会产生类似损坏的 mp4 文件。

关于java - 如何在 Android 上使用已编译的 FFMPEG jar 执行 FFMPEG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35507208/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com