FFMpeg v4l2m2m зеленый выход - PullRequest
1 голос
/ 16 апреля 2020

Я использую аппаратное кодирование через FFMPEG и код h264_v4l2m2m c.

Если я использую FFmpeg h264_v4l2m2m, кодированное видео выглядит как this

ffmpeg -i small.mp4 -vcodec h264_v4l2m2m grb_2-v4l2.avi

[h264_v4l2m2m @ 0x13d24d0] driver 'bcm2835-codec' on card 'bcm2835-codec-isp'
[h264_v4l2m2m @ 0x13d24d0] driver 'bcm2835-codec' on card 'bcm2835-codec-encode'
[h264_v4l2m2m @ 0x13d24d0] Using device /dev/video11
[h264_v4l2m2m @ 0x13d24d0] driver 'bcm2835-codec' on card 'bcm2835-codec-encode'
[h264_v4l2m2m @ 0x13d24d0] Failed to set number of B-frames
    Last message repeated 1 times
[h264_v4l2m2m @ 0x13d24d0] Failed to set header mode
[h264_v4l2m2m @ 0x13d24d0] Failed to set gop size
[h264_v4l2m2m @ 0x13d24d0] h264 profile not found
[h264_v4l2m2m @ 0x13d24d0] Encoder adjusted: qmin (0), qmax (51)
[h264_v4l2m2m @ 0x13d24d0] Failed to set minimum video quantizer scale
[h264_v4l2m2m @ 0x13d24d0] Failed to set maximum video quantizer scale

И во время обработки:

[avi @ 0x145aa20] Non-monotonous DTS in output stream 0:0; previous: 0, current: 0; changing 
to 1. This may result in incorrect timestamps in the output file.

Если контейнер видео не является AVI, тогда полученное видео будет пустым.

Я хочу использовать этот кодировщик в качестве внутреннего кода c для OpenCV. Если я пытаюсь его использовать, я получаю следующую ошибку:

This encoder requires using the avcodec_send_frame() API

Что такое обходной путь и где мне искать?

  • Машина: Raspberry Pi 4B +
  • Система: Custom Yocto Distribution (основные ветви)
  • Версия OpenCV: 4.1.0
  • Версия FFMpeg: 4.2.2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...