1. 程式人生 > >批量將.jpg圖片轉換為.yuv格式(使用ffmepg)

批量將.jpg圖片轉換為.yuv格式(使用ffmepg)

轉載請註明出處。

由於跑編碼的需要,所以需要製作一個.yuv格式的圖片資料集,但是手頭只有.jpg格式的,故記錄下轉換過程。

①安裝ffmpeg

②安裝ffmpeg的python3介面ffmpy3

在命令列中輸入以下命令:

pip install ffmpy3

③將下載好的windows版解壓,把ffmpeg.exe複製到你將要跑python程式碼的資料夾裡

④python程式碼如下:

# -*- coding: utf-8 -*-
import os
from PIL import Image
from ffmpy3 import FFmpeg

in_jpgDatasetPath = 'I:/VOC/trainval'
out_yuvDatasetPath = 'I:/VVC/loop/yuvdataset'

piclist = os.listdir(in_jpgDatasetPath)
for pic in piclist:
    picname = pic.split('.')[0]
    picpath = os.path.join(in_jpgDatasetPath,pic)
    img = Image.open(picpath)
    in_wid,in_hei = img.size
    out_wid = in_wid//16*16
    out_hei = in_hei//16*16
    size = '{}x{}'.format(out_wid,out_hei)  #輸出檔案會縮放成這個大小
    outname = out_yuvDatasetPath + '/' + picname + '_'+size+ '.yuv'
    
    ff = FFmpeg(inputs={picpath:None},
                outputs={outname:'-s {} -pix_fmt yuv420p'.format(size)})
    print(ff.cmd)
    ff.run()