绘制Android视频并保存



我是安卓美达编程的初学者,所以如果我有任何问题,请告诉我,非常感谢。

最近,我看到了一款名为V1 Sports的IOS版应用程序!它允许你录制视频,然后在视频上画线、圆或任何形状。这些形状会被存储起来,下次打开视频时,这些形状仍然存在,除非清除视频上覆盖的形状。

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

选项A:

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

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

这样,玩家的解码流将"重定向"到SurfaceTexture,而不是SurfaceView。只要有解码帧可用,就会调用OnFrameAvailableListener。要访问/修改图像,可以在myRedirectionSurface。

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

选项B:

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

参考学分->提取/修改安卓上的视频帧

最新更新