先用ffprobe查看一下媒體資訊, 確定使用解出來的像素類型是yuv420或是yuv420p ffprobe -i fhd_h264_video.mp4 Program 1 Stream #0:0[0x1023]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 59.94 tbr, 90k tbn, 59.94 tbc 上面就是我輸入的影片(fhd_h264_video.mp4)的執行結果,該影片用h.264的High profile設定,像素資料是yuv420p,解析度是1920x1080,30fps(29.97),另外SAR和DAR的解釋可以參考 這篇 依照影片資訊我們想解出最適合YUV檔案 ffmpeg -i fhd_h264_video.mp4 -t 10 -pix_fmt yuv420p -y output.yuv -t 10是指定只要取10秒的資料; 如果要指定起始時間, 需要用-ss {秒數}來指定 -pix_fmt yuv420p 就是解壓縮出來的yuv像素資料 -y 是如果輸出得檔案已經存在就覆蓋掉 Full HD解出來的yuv像素資料大小,應該是1920x1080解析度 x 每秒30張 x 10秒 x 每個yuv像素大小為1.5 bytes = 933120000 bytes 不過-t這參數的位置會影響運行結果,例如我寫在-i之前,最後會輸出304 frames,所以計算檔案大小的時候就需要,而寫在-i後面的話,最後會輸出300 frames。 更直接的方式就是用-frame指定處理張數100張 ffmpeg -i fhd_h264_video.mp4 -frames 100 -pix_fmt yuv420p -y output.yuv 如果是要轉youtube上的4k超高畫質影片,媒體資訊印出來的可能會是yuv422p或者是yuv420p10le的像素資料,所以檔案大小的計算就會不同。以yuv420p10le, 3840x2160...