android - 使用ffmpeg将图像编码为视频

标签 android ffmpeg h.264

我们正在开发 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/

相关文章:

ffmpeg h264流解码伪影

ffmpeg - 单个 h264 视频流的容器

mp4 - MFCreateFMPEG4MediaSink 不生成 MSE 兼容的 MP4

android - 如何使用SmsManager.importMultimediaMessage()?如何在 Android 的数据库中导入彩信?

Android - 如何为多个 HttpsUrlConnections 重用 SSL session

FFMPEG 支持 HLS v4 和 v5

video - 为视频编码选择像素格式有何影响?

linux - FFMPEG/libav : how to match a linux lib version to a source code commit

java - 如何避免 firebase 实时数据库中的重复数据

android - 开发报警应用