Почему FFmpeg декодирует необработанное видео в плоском 8-битном пиксельном формате YUV420, а также кодирует видео с использованием того же пиксельного формата YUV420p?
Я провел несколько тестов производительности, кодирующих только необработанное видео YUV420p с использованием кодера MPEG2 на FreeScale PowerPC с использованием следующих настроек:
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 кадров в секунду), поэтому декодирование заняло 14,1 секунды. Это мне кажется много!
Поскольку в процессе кодирования используется пиксельный формат YUV420p, почему FFmpeg требуется 3,7% времени для декодирования необработанного YUV420p в тот же формат?