我正在尝试将YUV422图像(YUV422_8_UYVY,unsigned,unpacked,16bpp)转换为jpeg,使用ffmpeg,this is Code我正在关注
图片尺寸:2448x2050 原始YUV图像:无法上传格式为YUV
(原始图像解码由ffmpeg命令提示符) 图像:This is original Image
图片尺寸:2448x2050 重建图片:Reconstruct Image through above Code
因此重建图像不像原始图像
我的格式为 UYVY ,而支持的格式为 AV_PIX_FMT_YUVJ420P
那么UYVY输入图像的正确格式应该是什么......?
pCodecCtx->pix_fmt=AV_PIX_FMT_
?????
如果我使用pCodecCtx-> pix_fmt = AV_PIX_FMT_UYVY422; 我有一个arrer说
[mjpeg @ 00c0b2a0]指定的像素格式uyvy422无效或不受支持
答案 0 :(得分:1)
你说图像格式是“解包”(??),但同时你称之为YUV422_8_UYVY
,这表明它是打包的(即不是平面的)。你得到的输出表明它已经打包了。
FFmpeg的图像编码器通常不支持打包输入。你首先需要使它平面。您有两种选择:
AV_PIX_FMT_YUVJ422P
)并将其输入编码器; AV_PIX_FMT_YUVJ420P
)并将其输入编码器。第一个将保留色度子采样(更好的质量),但第二个将具有更好的下游支持(在其他应用中,解码图像)。要转换图片,请使用libswscale。该转换的输出图像可以输入FFmpeg编码器。