为什么 FFmpeg 以 YUV420 平面 8 位像素格式解码原始视频,而它也使用相同的 YUV420p 像素格式对视频进行编码?
我使用 FreeScale PowerPC 上的 MPEG2 编码器对仅编码原始 YUV420p 视频进行了几个基准测试,使用以下设置:
ffmpeg -f rawvideo -pix_fmt yuv420p -s cif -r 25 -i YUV420p_cif.yuv -vcodec mpeg2video -pix_fmt yuv420p -r 25 -g 25 -s cif -b:v 1024k Output.mp4
视频片段长达 15 分钟。我发现整个过程使用了:
- 3.9% 的时间用于读取文件;
- 3.7% 的时间用于解码;
- 91.2% 的时间用于编码;
- 0.7% 的时间用于多路复用 + 写入文件;
- 0.5% 的时间用于初始化/关闭 ffmpeg
整个过程耗时 382 秒(58.9 fps),因此解码总共耗时 14.1 秒。这对我来说似乎很长!
既然编码过程使用的是 YUV420p 像素格式,为什么 FFmpeg 需要 3.7% 的时间将原始 YUV420p 解码为相同格式?