android - CameraX 与 MediaCodec
问题描述
我正在构建一个视频流应用程序,它将实时将录制的视频发送到网络。
我想使用 CameraX API(是的,我知道它是实验性的)并使用 MediaCodec 将视频流实时转换为一些编解码器,然后获取输出并将其发送。
我尝试为此使用预览用例:preview.setOnPreviewOutputUpdateListener
将 aPreview.PreviewOutput
作为参数传递给侦听器。我可以使用以下方法从中提取表面纹理:output.getSurfaceTexture()
。
preview.setOnPreviewOutputUpdateListener(
(Preview.PreviewOutput output) ->
mSurfaceTexture = output.getSurfaceTexture());
MediaCodec 为我提供了一个Surface
我可以写入的内容,但是我找不到任何有效的方法来复制mSurfaceTexture
into的内容mediaCodec.createInputSurface()
。
有没有办法在不弄乱OpenGL的情况下做到这一点?或者以任何其他方式将来自 CameraX 捕获的数据传递到 MediaCodec(ImageAnalysis、VideoCapture)?
解决方案
推荐阅读
- mysql - 如何使用 MySQL 连接表避免重复行?
- php - 在html中使用php变量日期寻求帮助
- cloudkit - 上传数据时如何改善 CloudKit 服务器延迟
- c - 从标准用户以root身份运行程序
- arrays - 为什么不保留空数组和哈希?
- javascript - 将 div 高度更改回动态
- ruby-on-rails - 将图像播种到 has_many_attached 上的活动记录:照片
- r - R:ggplot2 stat_bin2d 图例计数为百分比
- javascript - Css 显示动态添加的子元素,其位置绝对高于父元素,并隐藏溢出
- java - 打印棋盘格或方形图案