视频在 YUV 颜色空间中编码。Android API 仅支持开箱即用的 RGB。流行的 Android 视频播放器如 VPlayer 或 MX Player 如何解决这个问题?
问问题
1301 次
3 回答
0
他们中的大多数使用 ffmpeg 来解码音频/视频:
https://sites.google.com/site/mxvpen/ffmpeg
https://ffmpeg.org/trac/ffmpeg/wiki/How%20to%20compile%20FFmpeg%20for%20Android
于 2013-05-29T16:45:20.500 回答
0
2个通用解决方案:
- 使用纯软件算法转换 YUV -> RGB。
- 使用 3D 着色器硬件完成转换 YUV -> RGB 的繁重工作。
此外,质疑这是否是最佳方法(即,这意味着您正在用软件解码视频)——您应该这样做吗?硬件可以处理它(并同时显示它)吗?
于 2013-05-29T16:44:30.157 回答
0
在opencv中,你可以这样做
cv::Mat myuv(height + height / 2, width, CV_8UC1, (unsigned char *) mem);
cv::Mat bgr(width, height, CV_8UC3);
cv::cvtColor(myuv, bgr, CV_YUV420sp2RGB, 3);
于 2016-08-10T21:34:01.320 回答