【问题标题】:Draw on Android video and save在 Android 视频上绘图并保存
【发布时间】:2016-02-25 13:46:06
【问题描述】:

我是Android meida编程的初学者,如果有什么问题请告诉我,非常感谢。

最近看到一个IOS版App叫V1 Sports!它允许您录制视频,然后在视频上绘制线条、圆圈或任何形状。这些形状已存储,下次打开视频时,这些形状仍然存在,除非您清除视频上叠加的形状。

我想知道如何在 Android 设备上实现这些功能,太酷了。使用 ffmpeg 或类似的东西?我不知道从哪里开始。请告诉我一些提示~~非常感谢。

【问题讨论】:

标签: android ios video ffmpeg media


【解决方案1】:

选项 A:

您可以创建一个SurfaceTexture 对象并将其附加到 MediaPlayer,如下所示

myPlayer = new MediaPlayer
...
myRedirectionSurface = new Surface(mySurfaceTexture);
myPlayer->setSurface(myRedirectionSurface);

这样,播放器的解码流被“重定向”到 SurfaceTexture 而不是 SurfaceView。 只要有可用的解码帧,就会调用 OnFrameAvailableListener。 要访问/修改图像,您可以使用 Surface 的锁定/解锁方法 我的重定向表面。

重要提示:您需要 API 级别 14 支持才能使其正常工作!

选项 B:

正如您已经指出使用 ffmpeg 的可能性一样,您可以实现您想要的,因为您可以完全访问解码器的输出帧。 您可以从 RockPlayer 或 MoboPlayer 的 ffmpeg 端口开始。 但是在这个选项中,渲染来自 NDK 的视频输出并不是直接的。 !

参考学分->Extract/modify video frames on Android

【讨论】:

    猜你喜欢
    • 2017-03-04
    • 2016-11-28
    • 2020-01-15
    • 2014-07-28
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    相关资源
    最近更新 更多