Апаратное кодирование видео
Поддерживаемые форматы аппаратного кодирования:
- H.264
- HEVC
- VP8
- VP9
Подготовьте тестовый файл для кодирования видео. Например, вы можете декодировать файл big_buck_bunny_1080p_h264.mov, чтобы получить файл YUV в формате NV12 big_buck_bunny_1080p.nv12.
- Скачайте файл big_buck_bunny_1080p_h264.mov:
wget https://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_1080p_h264.mov
- Затем получите первые 60 секунд видеофайла big_buck_bunny_1080p_h264.mov
ffmpeg -i big_buck_bunny_1080p_h264.mov -t 60 -c copy output_first_1min.mov
- Кодируйте файл output_first_1min.mov, чтобы получить YUV-файл в формате NV12:
gst-launch-1.0 filesrc location=output_first_1min.mov ! decodebin ! video/x-raw,format=NV12 ! filesink location=big_buck_bunny_1080p.nv12
- Готовый YUV-файл выглядит следующим образом:

Метод тестирования аппаратного кодирования видео H.264 выглядит следующим образом:
- Выполните следующую команду для проверки функции кодирования H.264:
gst-launch-1.0 filesrc location=big_buck_bunny_1080p.nv12 ! videoparse width=1920 height=1080 framerate=30/1 format=i420 ! video/x-raw,colorimetry=bt709 ! v4l2h264enc capture-io-mode=mmap output-io-mode=dmabuf extra-controls="encode,fixed_qp=28" ! video/x-h264,profile=main,level=\(string\)5 ! filesink location=big_buck_bunny_1080p.h264
- Во время теста откройте другой терминал и введите следующую команду. Если вы видите, что используется VPU Utilization и вызывается кодировщик H.264, значит, тест аппаратного кодирования H.264 пройден успешно.

- Готовый файл выглядит следующим образом:

Метод тестирования аппаратного кодирования видео HEVC выглядит следующим образом:
- Выполните следующую команду для проверки функции кодирования HEVC:
gst-launch-1.0 filesrc location=big_buck_bunny_1080p.nv12 ! videoparse width=1920 height=1080 framerate=30/1 format=i420 ! video/x-raw,colorimetry=bt709 ! v4l2h265enc capture-io-mode=mmap output-io-mode=dmabuf extra-controls="encode,fixed_qp=28" ! video/x-h265,profile=main,level=\(string\)5 ! filesink location=big_buck_bunny_1080p.hevc
- Во время теста откройте другой терминал и введите следующую команду. Если вы видите, что используется VPU Utilization и вызывается кодировщик HEVC, тест аппаратного кодирования HEVC пройден успешно.

- Готовый файл выглядит следующим образом:

Для тестирования аппаратного кодирования VP8 и VP9 используйте команды:
- VP8
gst-launch-1.0 filesrc location=big_buck_bunny_1080p.nv12 ! videoparse width=1920 height=1080 framerate=30/1 format=i420 ! video/x-raw,colorimetry=bt709 ! v4l2vp8enc ! webmmux ! filesink location=big_buck_bunny_1080p.vp8
- VP9
gst-launch-1.0 filesrc location=big_buck_bunny_1080p.nv12 ! videoparse width=1920 height=1080 framerate=30/1 format=i420 ! video/x-raw,colorimetry=bt709 ! v4l2vp9enc ! webmmux ! filesink location=big_buck_bunny_1080p.vp9
Для проверки использования VPU Utilization и вызова нужного кодировщика используйте в отдельном терминале команду sudo vpu_test.sh