Я не могу заставить аппаратно-ускоренное декодирование работать с OpenCV в Windows 10.
Есть советы?Я уже скомпилировал и перепробовал все бэкэнды в последнем OpenCV 4.1.0 для Windows.
Я больше всего верил в декодирование MSMF, поскольку оно поддерживало поддержку DXVA.
(MSMF = Microsoft Media Foundation w/ DXVA)
Вот информация о сборке OpenCV.
getBuildInformation()
{
Video I/O:
DC1394: NO
FFMPEG: YES (prebuilt binaries)
avcodec: YES (58.35.100)
avformat: YES (58.20.100)
avutil: YES (56.22.100)
swscale: YES (5.3.100)
avresample: YES (4.0.0)
GStreamer: YES (1.16.0)
DirectShow: YES
Media Foundation: YES
DXVA: YES
Intel Media SDK: YES (.../x64/libmfx_vs2015.lib)
}
Вот мои результаты теста входного видео.
Results()
{
Intel_MFX
[12.0x] Frame: 12279/0 Speed: 224fps
Elapsed: 58.081 s <-- (Result Maxed CPU so it wasnt HWacclerated Decoding)
FFMPEG
[9.4x] Frame: 12400/12451 Speed: 170fps
Elapsed: 74.809 s <-- (Software Decoded, not HWacclerated)
GSTREAMER
[1.0x] Frame: 1382/-1 Speed: 18fps
Elapsed: Realtime Video Playback
MSMT
ERROR OPENING WITH BACKEND
Elapsed: 0.172 s
DSHOW
ERROR OPENING WITH BACKEND
Elapsed: 0.002 s
}
Вот как я читаю вводфайл в Python
{
video=cv2.VideoCapture('input_video.264', cv2.CAP_INTEL_MFX )
video=cv2.VideoCapture('input_video.264', cv2.CAP_FFMPEG )
video=cv2.VideoCapture('input_video.264', cv2.CAP_GSTREAMER )
video=cv2.VideoCapture('input_video.264', cv2.CAP_MSMF )
video=cv2.VideoCapture('input_video.264', cv2.CAP_DSHOW )
}
Есть ли какой-нибудь более простой (HW Accelerated) способ получить кадры из видеофайла в OpenCV?Мне нужно анализировать каждый 18-й кадр (1 кадр в секунду) для отслеживания движения.Чем быстрее, тем лучше !!
Используя DXVA Checker, я смогу добиться скорости воспроизведения в режиме реального времени 800 кадров / с / ~ 40x с ускоренным декодированием Intel_CPU HW.(У меня также есть AMD AMD, но его HW ускоренная скорость декодирования SLOW @ 100fps / ~ 5x воспроизведения в реальном времени)
Есть ли альтернативный двоичный файл FFMPEG, который я могу скомпилировать, который вызывает HW Decoding?Я знаю, что FFMPEG поддерживает ускорение HW!