【问题标题】:Android: Jcodec: encoding image files to .mp4 videoAndroid:Jcodec:将图像文件编码为 .mp4 视频
【发布时间】:2014-06-02 13:20:39
【问题描述】:

我正在使用JCODEC 创建我的屏幕活动视频。我不想使用 android NDK,因为我想在 JAVA 中使用它。我正在运行一个 for 循环来使用 SequenceEncoder 对图像进行编码。问题是循环运行时间过长,并且 log cat 给出了释放 GC_FOR_ALLOC 的消息。即使是 5 次迭代,循环也需要很多秒。所以我无法为我的活动拍摄适当的视频。我试图对代码进行更改,但没有帮助。请帮我解决一下这个。如果可能,建议其他选项。提前致谢。

File file = new File(Environment.getExternalStorageDirectory()+"/a.mp4");
SequenceEncoder encoder = new SequenceEncoder(file);
mview.setDrawingCacheEnabled(true);
// only 5 frames in total
for (int i = 1; i <= 5; i++) {
// getting bitmap from drawable path
mview.postInvalidate();
encoder.encodeNativeFrame(this.fromBitmap(mview.getDrawingCache()));
}
encoder.finish();

【问题讨论】:

  • 这个问题你解决了吗?
  • 不,我做不到。尝试使用 ndk 使用 ffmpeg。我不知道该怎么做。如果你这样做,请告诉我。
  • 我正在使用 FFMpeg 并尝试了它的工作原理,但它也非常复杂

标签: android video jcodec


【解决方案1】:

你能看看这个教程吗?通过使用 FFMPEG,它可以工作。

https://github.com/vanevery/Android-MJPEG-Video-Capture-FFMPEG

【讨论】:

  • 如果我想将一组图像(不是来自相机)从 sd 卡转换为 .mp4 视频,会有帮助吗?我不想用相机。或者你能建议一些捕捉屏幕视频的东西吗?我将不胜感激。
  • 是的,此代码可帮助您从一系列图像中制作视频文件。您必须为 ffmpeg 库处理 ndk。您必须从 ffmpeg 编译 .so 文件,然后才能使用本教程项目中使用的这些命令
  • 谢谢你的帮助,其实。你能再告诉我一件事吗?您建议的示例不使用本机类,因为没有 jni 文件夹,那么它如何使用 ffmpeg 库?感谢您宝贵的时间。我很感激你
  • 可以看到Asset文件夹里有近21个.so文件,都是ffmpeg编译的。是的,但是使用 jni 编译,它在本示例中使用的 .so 文件中编译。我对你的问题投了票。欢迎提出任何问题。
  • 嘿,您在链接中建议的代码能够捕获图像,但无法将它们转换为视频。有许多异常,例如找不到 \data\data\package\... 中的库,并引发文件未找到异常。你想让我发布一个新问题吗?谢谢。再次。
猜你喜欢
  • 2023-04-01
  • 2018-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-16
  • 2021-12-02
  • 2011-11-07
  • 2020-04-19
相关资源
最近更新 更多