android - 在android中渲染YUV格式?

标签 android android-ndk ffmpeg

我正在尝试通过ffmpeg在android中流式传输视频,解码后得到的输出是YUV格式。是否可以直接在Android屏幕中渲染YUV图像格式?

最佳答案

是和否。

摄像头和硬件视频解码器的输出一般是YUV。来自这些源的帧通常直接发送到显示器。它们可以由驱动程序转换,通常使用硬件缩放器和格式转换器。这对于提高效率是必要的。

没有 API 允许应用程序以相同的方式传递 YUV 帧。基本问题是“YUV”覆盖了很多地方。视频解码器使用的缓冲格式可以是各种硬件模块可以有效处理的专有内部格式;为了让您的应用程序创建这种格式的表面,它必须执行转换,并且您又回到了性能方面的状态。

您应该能够使用 GLES2 着色器在显示过程中为您进行转换,但我没有指向演示这一点的代码的指针。

更新:this question 的回答有一个链接到 WebRTC source file演示了在 GLES2 着色器中进行 YUV 转换。

关于android - 在android中渲染YUV格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26336024/

相关文章:

android - 在android平台上使用ffmpeg混合两个音频文件

android - 在最新的 NDK 更新和 gcc 弃用后,无法构建 Android NDK 项目

ffmpeg 将直播流传输到 ffplay

java - Firebase 数据库从子 android 访问节点

android - Firestore - 从 POJO 更新文档

android - adb -s emu geo fix 在不使用 telnet 的情况下无法工作

android - 使用 ADT 2.0 及更高版本(同时)进行 native 和 Java 调试

android - 导航 Controller fragment 泄漏

ffmpeg - 使用 ffmpeg 将 .avi 转换为 .gif,具有良好的质量和字幕

linux - ffmpeg 不接受脚本中的输入