Перейти к основному содержимому

Апаратное кодирование видео

Поддерживаемые форматы аппаратного кодирования:

  • 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 пройден успешно.
Проверка 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 пройден успешно.
Проверка 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