0

视频在 YUV 颜色空间中编码。Android API 仅支持开箱即用的 RGB。流行的 Android 视频播放器如 VPlayer 或 MX Player 如何解决这个问题?

4

3 回答 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个通用解决方案:

  1. 使用纯软件算法转换 YUV -> RGB。
  2. 使用 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 回答