【问题标题】:FFmpeg command in android programmatically以编程方式在android中的FFmpeg命令
【发布时间】:2014-10-27 13:23:08
【问题描述】:

我们是否可以在android中以编程方式使用像(screenrecord,screenshot)这样的ffmpeg命令。

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

【问题讨论】:

  • 你可以通过编译整个 ffmpeg.c for android,但它不会很快工作。
  • 谢谢,任何指南都意味着链接。我使用 FfmpegFrameRecorder 将图像转换为视频,但将图像转换为视频需要时间。我捕获我的应用程序的图像,然后转换成视频,但需要时间。
  • 然后我决定以编程方式在android中使用该命令直接记录屏幕。而是拍摄图像然后转换为视频。
  • 它不会更快,甚至可能更慢。我会在谷歌上搜索一个 android ffmpeg 版本。有很多热门歌曲。

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


【解决方案1】:

您可以编译 FFmpeg(最新更新后命名为 AVConv),并针对 arm6/arm7 等移动 CPU 进行优化。几年来,我们为 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 时会遇到麻烦。

【讨论】:

    猜你喜欢
    • 2013-08-14
    • 2020-09-16
    • 2013-01-26
    • 2019-05-07
    • 1970-01-01
    • 2020-10-21
    • 1970-01-01
    • 2011-03-21
    • 1970-01-01
    相关资源
    最近更新 更多