如何在 Android 中对非摄像头视频进行编码
我正在开发一个 Android 应用程序,其中通过合成一系列动画帧来动态生成视频。我尝试使用 Android Media Recorder API 来实现此目的,但尚未找到一种方法让它接受非相机源作为输入。我一直在尝试使用 FFMPEG 端口(基于 Rockplayer 版本),但由于我将其用作编码器而不是解码器,因此遇到了缺少功能的困难。
该应用程序的 iPhone 版本使用 AVFoundation 框架中的 AVAssetWriter。
有没有更简单的方法来做到这一点,还是我只能用 FFMPEG 来解决它?
I am working on an android application in which a video is dynamically generated by compositing a sequence of animation frames. I tried to use the Android Media Recorder API for this but have not found a way to get it to accept a non-camera source as input. I have been attempting to use a FFMPEG port (based on the Rockplayer build) but am running into difficulties with missing functions since I am using it as an encoder, not a decoder.
The iPhone version of this app uses AVAssetWriter from the AVFoundation framework.
Is there an easier way to do this or am I stuck slugging it out with FFMPEG?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这可能会有所帮助(尽管请参阅有关分辨率的注释):-
如何在 Android 中使用 FFMpeg 进行编码(使用 H263)
我不确定他们是否定制了 ffmpeg,如果是的话,他们可能能够提供有关移植更多内容的建议功能完整版本。
-安东尼
This may help (see the note on resolution though):-
How to encode using the FFMpeg in Android (using H263)
I'm not sure if they did a custom build of ffmpeg, or not, if so they may be able to offer advice on porting a more feature complete version.
-Anthony
Opencv 有 ViewBase 类,它将来自相机的输入作为帧并将该帧表示为位图,您可以扩展 View 基类并使其供您自己使用,即使在 android 上安装 opencv 并不是很容易。
当您扩展 SampleCvViewBase 时,您将拥有以下功能,您可以使用它,但这是我能想到的最好的功能。
Opencv has ViewBase class which takes the input from the camera as a frame and represent the frame as a bitmap , you can extand the class View base and make it for your own use , even though installing opencv on the android isn't very easy.
When you extend SampleCvViewBase you will have the following function which you can use pretty much hard work but the best I can think of.
您可以使用名为 JCodec 的纯 Java 开源库 ( http://jcodec.org )。
它包含一个简单但有效的 H.264 编码器和 MP4 复用器。下面的类使用 JCodec 低级 API,应该是您所需要的( CORRECTED ):
您可以从 项目网站。
You can use a pure Java open source library called JCodec ( http://jcodec.org ).
It contains a simple yet working H.264 encoder and MP4 muxer. The class below uses JCodec low level API and should be what you need ( CORRECTED ):
You can get JCodec jar from a project web-site.