如何录制视频内部发生的事情?(机器人)

8 video android record

是否可以将Android中某些View中的所有操作记录为视频?也许使用C/C++或其他任何东西?

我知道有使用shell记录的方法,但需要root.没有它会更好.我们也将从SDK Version 16开始.

and*_*ver 8

您可以使用javacv库来组合从视图中获取的一组位图; 代码看起来像这样:

FFmpegFrameRecorder recorder = new FFmpegFrameRecorder("/sdcard/test.mp4",256,256);
try {
    recorder.setVideoCodec(avcodec.AV_CODEC_ID_MPEG4);
    recorder.setFormat("mp4");
    recorder.setFrameRate(30);
    recorder.setPixelFormat(avutil.PIX_FMT_YUV420P10);
    recorder.setVideoBitrate(1200);
    recorder.startUnsafe();
    for (int i=0;i< 5;i++)
    {
        view.setDrawingCacheEnabled(true);
        Bitmap bitmap = Bitmap.createBitmap(v1.getDrawingCache());
        view.setDrawingCacheEnabled(false);
        recorder.record(bitmap);
    }
    recorder.stop();
}
catch (Exception e){
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

这里有一个关于如何记录的完整示例


fad*_*den 5

您可以使用众所周知的技术来获取应用的“视图”的屏幕截图。如果捕获多个连续图像,则可以将它们合并为视频。

如果要以更高的帧速率实时进行此操作,建议的方法是通过MediaProjection类使用虚拟显示器,将输出馈送到视频编码器中。这需要API 21。

在API 16设备上记录屏幕将需要本机代码和使用非公共接口。有可能,但并不容易。

  • 如何只记录视图而不记录整个屏幕? (3认同)