android - Android 中的 FFmpeg 命令以编程方式

标签 android android-intent android-activity android-fragments

我们是否可以在 Android 中以编程方式使用 ffmpeg 命令(如屏幕记录、屏幕截图)。

例如 ffmpeg -r 24 -f rawvideo -pix_fmt rgb565le -s 320x480 -i/dev/graphics/fb0 -vcodec libx264/sdcard/videokit/screen.mp4

最佳答案

您可以编译针对arm6/arm7等移动CPU进行优化的FFmpeg(最新更新后更名为AVConv)。我们在 Android 上这样做了几年。是的,它没有硬件加速 - 这意味着 FPS 较低。但它仍然有用。 要使用硬件加速编码,目前只有一种方法 - Android SDK(操作系统 4.1.2 及更高版本)中的 Java API。

1) 使用 Android NDK 将 FFMpeg 编译为共享库。你可以试试这个:https://github.com/guardianproject/android-ffmpeg

或者我自己的构建脚本(我认为现在有点过时了): https://dl.dropboxusercontent.com/u/76581728/build_android_r7.sh

建议您使用最新的Android NDK。

2) 要应用此控制台选项,您必须将此选项传递给 native 代码中的 FFMpeg AVDictionary 结构。这很简单。您必须锁定 ffmpeg.c 源文件,并且还可以使用 Netbeans IDE 中的断点分析桌面版本的 ffmpeg 如何工作(非常有帮助)。

av_opt_set(oc->priv_data, "f", "rawvideo", 0);

3) 据我所知,由于 Android 安全性,我认为您在未 root 的设备中访问/dev/graphics/fb0 时会遇到麻烦。

关于android - Android 中的 FFmpeg 命令以编程方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25637604/

相关文章:

java - MobileFirst 8.0 安全认证的 APPLICATION_DOES_NOT_EXIST?

Android:搜索 Intent 不起作用

android - Android 的重用技巧

android - 如何在 Android 中添加第二个 Activity

android - 将 View 添加到不带 XML 的 View

android - Eclipse 烦人的默认格式

android - 如何通过 Intent 播放 YouTube 视频?

java - 从 asynctask 在 android Activity 中添加 snackbar

Android - 谷歌地图 - LocationListener - 添加标记 onLocationChanged 使应用程序崩溃

android - 将 Activity 放在首位时如何获得新的 Intent extra?