问题标签 [nv12-nv21]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
858 浏览

c++ - 使用 OpenCV 将图像从 YV12 转换为 NV12

我有一个网络摄像头,可以从中读取 NV12 格式的帧。我将帧转换为 RGB,然后转换为 YV12,我的目标是将它们转换回 NV12,以进行验证。我正在做这样的事情:

我编写了以下函数来从 YV12 转换为 NV12(类似于这篇文章 - Convert YV12 to NV21 (YUV YCrCb 4:2:0)),这似乎不起作用。我得到一个灰度图像,在上半部分混合了模糊的洋红色副本,在生成的图像的下半部分混合了模糊的绿色副本。

在下面的函数中,我假设 V 平面位于矩阵中 U 平面旁边的布局。我不知道这是否正确。我首先尝试遵循 YV12 的布局,如https://docs.microsoft.com/en-us/windows/win32/medfound/recommended-8-bit-yuv-formats-for-video-rendering所示U/ V 型飞机位于彼此下方而不是彼此相邻,但这导致了坠机。

任何提示表示赞赏。

0 投票
0 回答
40 浏览

ios - iOS - NV12 到 I420 硬件加速

有没有办法在 iOS (CoreVideo/CoreGraphics) 上使用硬件加速原生 API 进行 NV12 到 I420 的转换?

我正在使用 libyuv 进行类似的转换,但它不是硬件加速的

0 投票
2 回答
88 浏览

c++ - 使用 libav/ffmpeg 将 RGB8 转换为 NV12

我正在尝试使用 libav 将输入 RGB8 图像转换为 NV12,但 sws_scale 引发了读取访问冲突。我一定是飞机或步幅不对,但我不明白为什么。

在这一点上,我相信我会受益于一双新鲜的眼睛。我错过了什么?

0 投票
1 回答
139 浏览

c++ - FFMPEG 4.4 如何在 Windows 上将 NV12 格式转换为 YUV420?

我想使用FFmpeg将输入的NV12格式转换为YUV420P。
我尝试使用 sws_scale 转换,但颜色都是绿色的。
我已使用 sws 成功将 Y​​UYV422 转换为 420P,但无法将 NV12 转换为 YUV420。
我应该改变什么?

这是我的代码:</p>


0 投票
1 回答
17 浏览

ffmpeg - 如何对 h265 视频、较低分辨率和 fps 进行硬件解码并作为 yuv420 格式的原始视频传递

以下 ffmpeg 命令使用 qsv 在硬件中解码 h265 rtsp 视频流,将分辨率从 4k 降低到 1080p,fps 从 20 降低到 5,并尝试使用 pix_fmt yuv420p 将视频保存为 rawvideo。

问题是硬件解码器使用 nv12 作为其内部格式,这会导致警告:

编解码器“h264_qsv”的像素格式“yuv420p”不兼容,自动选择格式“nv12”

这里的目的是将原始视频传递给另一个进程,该进程将进行对象检测并且仅支持 yuv420p。我尝试使用 vaapi 而不是 qsv 但这给了我同样的问题。如何使用 ffmpeg 转换 pix_format?