【发布时间】:2016-10-17 15:15:50
【问题描述】:
我们正在开发一款需要调整大小(帧大小)和压缩视频的 Android 应用。我们测试了下面的代码示例,它目前很慢: https://github.com/hoolrory/AndroidVideoSamples/blob/master/CommonVideoLibrary/src/com/roryhool/commonvideolibrary/VideoResampler.java
输出视频帧大小减小(例如,480x320),并且比特率也降低以实现压缩。最终的视频看起来非常好,压缩比也很好。只是这个过程很慢。我在运行 Android 4.4 的 Galaxy S4 和运行 Android 6.0 的 Galaxy Note 5 上进行了测试。后者更快,但不是很多。在 Galaxy S4 上,一个 30 秒的视频需要大约一分钟来压缩(平均)。
上面的代码解码输入表面上的输入视频,减小帧大小,然后输出到输出表面。 MediaMuxer 用于复用音频。该示例使用 MPEG 容器和 H264 编码器。一些相关问题:
- 我们可以使用一些参数来加快压缩速度吗?
- 视频压缩速度如何受目标比特率和帧大小(如果有)的影响?
- 我们没有使用 FFMpeg。这样更快吗?
任何指针或提示,即使与上面的代码示例无关,也将不胜感激。
非常感谢!
奥马尔
【问题讨论】:
-
感谢@mstorsjo,我将代码示例中的 TIMEOUT_USEC 设置为 1000 微秒,而不是默认的 10000。在 Galaxy S4 上,十几个不同视频的平均速度提高了 55%长度。对于 Galaxy Note5,速度提升了 65%。
标签: android performance video compression android-mediacodec