有没有办法使用 ffmpeg 将 RGB 转换为真正的 YUV(不是 YCbCr)?
Is there a way to use ffmpeg for RGB to true YUV (not YCbCr) conversion?
据我所知see in the documentation,所有涉及 YUV 的转换实际上都使用 YCbCr。虽然有细微差别,但我想转换为实际的 YUV 格式。有什么办法可以使用 ffmpeg 吗?事后想想,有没有其他方法可以像ffmpeg一样快?
事实证明这是可能的:例如当使用 AVCodecContext
、
处理 AVFrame
时
- 使用
<a href="https://github.com/FFmpeg/FFmpeg/blob/release/3.2/libavutil/pixfmt.h#L74" rel="nofollow noreferrer">AV_PIX_FMT_YUV</a><b>J</b><a href="https://github.com/FFmpeg/FFmpeg/blob/release/3.2/libavutil/pixfmt.h#L74" rel="nofollow noreferrer">420P</a>
代替 AV_PIX_FMT_YUV_420P
(已弃用),
- 或使用
AV_PIX_FMT_YUV_420P
并设置 color_range
to AVCOL_RANGE_JPEG
.
所有链接均与版本 3.2 有关。
编辑:
我相信实际的数学转换在 yuv2rgb.c
.
不,这是不可能的。 YUV 是 PAL ITU-R BT.470 标准,用于模拟电视,它不再使用了。您可以将 https://github.com/fsphil/hacktv 与软件无线电一起使用。
这些不使用 YCbCr 或 YUV,它们是像素格式,而不是颜色矩阵。
据我所知see in the documentation,所有涉及 YUV 的转换实际上都使用 YCbCr。虽然有细微差别,但我想转换为实际的 YUV 格式。有什么办法可以使用 ffmpeg 吗?事后想想,有没有其他方法可以像ffmpeg一样快?
事实证明这是可能的:例如当使用 AVCodecContext
、
AVFrame
时
- 使用
<a href="https://github.com/FFmpeg/FFmpeg/blob/release/3.2/libavutil/pixfmt.h#L74" rel="nofollow noreferrer">AV_PIX_FMT_YUV</a><b>J</b><a href="https://github.com/FFmpeg/FFmpeg/blob/release/3.2/libavutil/pixfmt.h#L74" rel="nofollow noreferrer">420P</a>
代替AV_PIX_FMT_YUV_420P
(已弃用), - 或使用
AV_PIX_FMT_YUV_420P
并设置color_range
toAVCOL_RANGE_JPEG
.
所有链接均与版本 3.2 有关。
编辑:
我相信实际的数学转换在 yuv2rgb.c
.
不,这是不可能的。 YUV 是 PAL ITU-R BT.470 标准,用于模拟电视,它不再使用了。您可以将 https://github.com/fsphil/hacktv 与软件无线电一起使用。
这些不使用 YCbCr 或 YUV,它们是像素格式,而不是颜色矩阵。