将图像转换为YUV格式(不同类型:BT.601或BT.709)并以原始格式保存

时间:2019-03-04 12:09:10

标签: encode codec yuv

有没有可以将给定图像(jpg)转换为YUV格式并将其保存为原始数据的工具?

我尝试使用Python PIL,但是找不到执行该操作的方法。

感谢任何想法。

2 个答案:

答案 0 :(得分:2)

您可以使用 ImageMagick 来做到这一点,该软件安装在大多数Linux发行版中,并且可用于macOS和Windows。在终端中,您可以运行:

convert input.jpg -depth 8 -colorspace Rec601YCbCr yuv:result.bin

或者对于Rec709YCbCr,您可以使用:

convert input.jpg -depth 8 -colorspace Rec709YCbCr yuv:result.bin

这是该过程的一个小例子,并且可以逆转它:

# Create a gradient image, magenta-green, save as JPEG
convert -size 1024x768 gradient:magenta-lime input.jpg

# Convert to YUV, saving as raw YUV in "image.bin"
convert input.jpg -depth 8 -colorspace Rec601YCbCr yuv:image.bin

# Convert back from raw YUV back to JPEG to check
convert -size 1024x768 -depth 8 YUV:image.bin -set colorspace Rec601YCbCr -colorspace RGB result.jpg

答案 1 :(得分:0)

使用ffmpeg将jpg转换为yuv

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
    guard let windowScene = (scene as? UIWindowScene) else { return }
    window = UIWindow(windowScene: windowScene)
    window?.rootViewController = ViewController()
    window?.makeKeyAndVisible()
}

ffmpeg -i filename.jpg -pixel_format yuv420p -s 656x500 filename.yuv 可以是-pixel_formatyuv420pyuv422p

yuv444p是jpg的分辨率


查看

-s

如果视频尺寸不正确,则会看到垃圾内容。