我们正在开发 Android 3D 动画应用程序。
我们需要识别图像,然后使用 FFmpeg 将其保存并编码为视频(因为 Android API 不支持)。生成视频后,音频会附加到视频中。
我们在这方面面临 2 个问题。
首先是保存识别图像进行编码时的内存泄漏问题。模拟器的 CPU 过载。是否每次选择图像时都调用FFpmeg?如何解决这个问题?
其次(以防万一我们通过了第一个)我们无法对所选图像进行编码,因为这是生成绿色视频。这可能是什么原因?
有没有FFmpeg以外的工具可以把图片编码成H264? 图片版本(Rastar 或 Vector)是否会影响此视频编码? 是否考虑Android操作系统版本?
我们将不胜感激任何对此的宝贵意见。
谢谢
最佳答案
我也在 android 手机上使用 ffmpeg 玩过这个想法,但我建议在功能更强大的服务器上这样做。在服务器上,您无需考虑智能手机的 CPU 负载。
一般来说,为了改进您的 ffmpeg 运行,您需要发布 ffmpeg 调用。 ffmpeg 非常复杂,其中参数的顺序与效率直接相关。
我不知道您更喜欢哪种容器格式,但也许简单的 mjpeg 编解码器可以为您工作。 AFIK 只有相互连接的 jpeg 帧,然后将视频编码为 h264/x264(ffmpeg 使用最后一个)应该简单得多。
两者的结合可能会生成一个 mjpeg 流,该流将在服务器端转换为可以下载到客户端的 h264 视频。但如果您不想浪费客户的流量,这实际上取决于视频的长度。
关于android - 使用ffmpeg将图像编码为视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12650339/