以编程方式在android中的FFmpeg命令

时间:2014-09-03 06:26:26

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

我们能否以编程方式在android中使用ffmpeg命令(screenrecord,screenshot)。

例如,

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

1 个答案:

答案 0 :(得分:3)

您可以通过针对arm6 / arm7等移动CPU进行优化来编译FFmpeg(它在最新更新后命名为AVConv)。我们在几年内为Android做过这样的事情。是的它没有硬件加速 - 这意味着低FPS。但它仍然有用。 要使用硬件加速编码,目前只有一种方法 - 来自Android SDK(OS 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)要应用此控制台选项,您必须将此选项传递到本机代码中的FFMpeg AVDictionary结构。这很简单。您必须锁定ffmpeg.c源文件,并且还可以使用Netbeans IDE中的断点分析ffmpeg的桌面版本如何工作(非常有用)。

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

3)我认为,由于Android的安全性,在非root用户设备中访问/ dev / graphics / fb0时我会遇到麻烦。