如何在Android上实现实时视频编辑?

Posted

技术标签:

【中文标题】如何在Android上实现实时视频编辑?【英文标题】:How to achieve real time video editing on Android? 【发布时间】:2019-01-28 11:55:14 【问题描述】:

我最近一直在做一个android上的视频编辑相关项目,正在拼命寻找与平台上的视频编辑相关的资源。

我能找到的唯一与视频编辑相关的“方法”或信息是使用 FFmpeg 库,该库的特性和功能非常丰富,但运行速度真的很慢,诸如反转 10-第二个视频可能需要长达 30 秒的时间,这会带来非常糟糕的用户体验。

话虽如此,似乎有大量的 Android 视频编辑应用程序能够在几乎立即的时间内完成 FFmpeg 所能做的所有事情(例如InShot、PocketVideo 等应用程序,甚至previous musical.ly TikTok)。

我尝试在几乎任何合理的地方(Google、GitHub、YouTube、Android 开发者中心,甚至在上述应用程序的“支持”页面上)研究和搜索有关该主题的信息,但无济于事(没有解释文档,没有开源库,甚至没有演示应用程序),如果有人能对这个主题有所了解,那将非常非常感激!

谢谢。

【问题讨论】:

搜索上面提到的相同的东西。如果您对实时视频编辑有任何想法,请告诉我。 嘿,你有什么发现吗? 目前我的理解有两种方式:第一种是使用Media Codec API,第二种是使用C++。我还找到了一个有效的中文高级库,美摄 SDK。 Media Codec API 使用起来非常复杂,并且在不同的设备上存在问题。 【参考方案1】:

在台式机以外的平台上的 FFmpeg 运行速度会很慢,主要是因为缺乏硬件解码/编码功能。

如果您想创建快速/实时视频编辑套件,您最好查看原生 android 视频解码/编码 api 并在 GPU 上过滤帧。

虽然手机的屏幕看起来很小,但视频分辨率足够大,即使进行颜色反转等基本处理,也足以完全占用 CPU,更不用说应用模糊时会发生什么了。所以考虑改用 GPU 处理(GLSL 着色器)。

【讨论】:

以上是关于如何在Android上实现实时视频编辑?的主要内容,如果未能解决你的问题,请参考以下文章

我的Android进阶之旅在Android中使用MediaPipe库在实时视频源上实现人脸网格Face Mesh的绘制

使用 FAST 检测器在 Android 上实时识别对象

如何通过 URL 的视频视图知道视频在 android VideoView 中启动的实时时间?

AR+ 实时音视频通话,×××无缝结合

实时流式传输视频

使用 GStreamer 在 Android 上进行硬件视频解码