![为什么 FFmpeg 要解码原始 YUV420p 视频?](https://linux22.com/image/1356132/%E4%B8%BA%E4%BB%80%E4%B9%88%20FFmpeg%20%E8%A6%81%E8%A7%A3%E7%A0%81%E5%8E%9F%E5%A7%8B%20YUV420p%20%E8%A7%86%E9%A2%91%EF%BC%9F.png)
为什么 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 解码为相同格式?