У меня возникли проблемы с записью видео h264 с OpenCV 3 через FFmpeg ( "X", "2", "6", "4" "FOURCC" ). Я видел все связанные записи на SO, но ничего не помогает. Код:
cv::VideoWriter writer(output_path.string(), CV_FOURCC('X','2','6','4'), 60, frame_size);
Вывод:
OpenCV: FFMPEG: тег 0x34363258/'X264' не поддерживается идентификатором кодека 28 и формат "mp4/MP4 (MPEG-4 часть 14)" OpenCV: FFMPEG: отключение к использовать тег 0x00000021/'!???'
Результирующее видео чрезвычайно мало (байт) и нечитабельно. Установка four_cc на -1 приводит к "неизвестному тегу" из FFmpeg, я не получаю никаких подсказок, чтобы выбрать кодек, как предложили другие.
В документе OpenCV 3 указывается:
Бэкэнд FFMPEG с контейнером MP4 изначально использует другие значения как fourcc код: см. ObjectType, чтобы вы могли получать предупреждающее сообщение от OpenCV о преобразовании кода в четыре капли.
В этой статье они не указаны h264/x264, и я не уверен, как интерпретировать этот оператор, поскольку ранее сообщения SO отображаются во всем списке X.2.6.4 в качестве соответствующего кода. Использование H.2.6.4 фактически дает идентичный результат.
Любые предложения/обходные пути?
P.S. ffmpeg является самым последним из поддерживающих Ubuntu, он перечисляет, что он был настроен с помощью --enable-libx264
EDIT: Я попытался использовать контейнер mkv вместо mp4. Предупреждение о том, что тег не поддерживается, исчез, но результирующее видео по-прежнему не читается.