无法使用Android Java CameraX API录制带有水印的视频



我无法使用CameraX API录制带有水印的视频

我使用CameraX API Java录制视频。但是当我在PreviewView上放置文本时它显示在那里,但没有记录

输入图片描述

private void startCameraX(ProcessCameraProvider cameraProvider) {
cameraProvider.unbindAll();
// Camera Selector
cameraSelector = new CameraSelector.Builder()
.requireLensFacing(CameraSelector.LENS_FACING_FRONT)
.build();
//Preview
preview = new Preview.Builder().build();
preview.setSurfaceProvider(pv_preview.getSurfaceProvider());


//Image Caputer
imageCapture = new ImageCapture.Builder()
.setCaptureMode(ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY)
.build();
//Video Capture
videoCapture = new VideoCapture.Builder()
.setVideoFrameRate(30)
.setBitRate(1000000)
.setTargetResolution(new Size(640, 480))
.build();
ImageAnalysis imageAnalysis = new ImageAnalysis.Builder()
.setTargetAspectRatio(AspectRatio.RATIO_16_9)
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
.build();

Camera camera = (Camera) cameraProvider.bindToLifecycle(
this,
cameraSelector,
preview,
imageCapture,
videoCapture
);
}

编辑视频流的最好方法是使用效果API和OpenGL。你需要创建一个SurfaceProcessor和一个CameraEffect,分别针对PREVIEW和VIDEO_CAPTURE。该效果可以通过UseCaseGroup插入到CameraX中。addEffect API。然后你可以使用OpenGL来处理输入流并在其上绘制水印。

一个完整的例子,你可以在CameraX测试应用程序中检查ToneMappingSurfaceProcessor: https://github.com/androidx/androidx/blob/androidx-main/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/ToneMappingSurfaceProcessor.kt

最新更新