将SurfaceView动画录制为android中的视频文件

时间:2018-05-23 09:10:36

标签: android mp4 mediacodec mediamuxer

上次我调查了android(Adding watermark bitmap over video in android: 4.3's MediaMuxer or ffmpeg)上的视频导出时,这不是一件容易的事。

这是一个场景:我有一个SurfaceView和一个在x,y坐标处绘制的BitMap。用户点击图像并将其拖动到第2步和第3步。

enter image description here

所以基本上如果我记录触摸所经过的所有x,y,我可以通过以特定帧速率绘制BitMap来重放动画。

现在问题在于:是否有一种简单的方法可以录制动画"通过使用android组件(没有ffmpeg)从SurfaceView进入视频文件?

2 个答案:

答案 0 :(得分:1)

由于您正在进行渲染,因此您只需渲染两次:一次显示,一次显示视频。这假设您只想要SurfaceView内容...如果您还想要其他视图,那么您需要使用屏幕录制方法。

有关工作示例,请参阅"记录GL App"在Grafika。对于API 21+,您可以渲染到MediaRecorder's Surface,如果您只想要.mp4文件,这可能会更容易。

答案 1 :(得分:0)

据我所知,要记录SurfaceView的事件,您必须记录屏幕,因为SurfaceView是不同的,并且不会在普通视图层次结构中绘制。

  

事实上,有些情况下,应用处理器甚至无法访问SurfaceView的显示数据 - 它可能是硬件视频管道的输出,该管道通过专用处理器与应用处理器的显示输出合成视频叠加。 Google Groups

创意方式可以是在活动期间同时捕捉屏幕并从位图创建MOV。请参阅:Create Video From Screen Capture