How can I create a YUV422 frame from a JPEG or other image on Ubuntu

11,136

Do it with ffmpeg:

ffmpeg -i a.jpg -s 640x480 -pix_fmt yuv422p a.yuv
ffmpeg -pix_fmt yuv422p -s 640x480 -i a.yuv b.jpg
Share:
11,136
PhilBot
Author by

PhilBot

The ship stays where it is and the engines move the universe around it.

Updated on June 15, 2022

Comments

  • PhilBot
    PhilBot about 2 years

    I want to create a sample YUV422 Frame on Ubuntu from any image so I can code a YUV422 to RGB888 function for the sake of learning. I'd really like to be able to use a trusted tool to create a sample and convert back to a jpeg.

    I've tried ImageMagick but am clearly doing something wrong:

    convert -size 640x480 -depth 24 test.jpg -colorspace YUV -size 640x480 -depth 16 -sampling-factor 4:2:2 tmp422.yuv
    

    enter image description here

    convert -colorspace YUV -size 640x480 -depth 16 -sampling-factor 4:2:2 tmp422.yuv -size 640x480 -depth 24 -colorspace RGB test2.jpg
    

    enter image description here

    I've also install the mpegtools package on Ubuntu, in order to use jpeg2yuv:

    >> jpeg2yuv -f 1 test.jpg
       INFO: [jpeg2yuv] Reading jpeg filenames from stdin.
       INFO: [jpeg2yuv] Parsing & checking input files.
    
    **ERROR: [jpeg2yuv] System error while opening: "": No such file or directory
    

    Clearly, something else is wrong. Could someone please shed some light on how I might accomplish this? Thanks -