Есть ли фильтр «рыбий глаз» или «двойной рыбий глаз» для равнопрямоугольного фильтра для ffmpeg?

Или способ сделать это с существующим фильтром? Чтобы вы могли снимать видео с камеры «рыбий глаз» или двойной камеры «рыбий глаз» (например, Ricoh Theta) и напрямую выводить равнопрямоугольное изображение в режиме реального времени на что-то вроде RTMP?


person Dan Pisarski    schedule 13.06.2016    source источник
comment
Удалось ли вам это осуществить?   -  person Rahnzo    schedule 11.08.2017
comment
Да, смотрите принятый ответ ниже, он работает!   -  person Dan Pisarski    schedule 12.08.2017


Ответы (2)


Фильтр Remap делает именно это:

Этот фильтр копирует попиксельно исходный кадр в целевой кадр. Он переназначает пиксели на новое место назначения x,y на основе двух файлов ymap/xmap.

Основной синтаксис команды

ffmpeg -i fisheye_grid_input.jpg -i fisheye_grid_xmap.pgm -i fisheye_grid_ymap.pgm -filter_complex remap out.png 

По этой ссылке также включены файлы отображения для

Камера Ricoh Theta S: входные файлы для разрешения 1920x960(1080)

person Gyan    schedule 08.08.2016
comment
Спасибо за ответ. Вы знаете, где я могу найти файлы PGM для разрешения Ricoh Theta S 1280x720? - person gumis; 16.11.2016
comment
Есть ли способ сделать это для существующего видео? а не просто изображение? - person mateuscb; 19.02.2017
comment
Конечно. Замените первый ввод видео. Вставьте -loop 1 перед 2-м и 3-м входами. И вывод на видео. - person Gyan; 19.02.2017
comment
@gumis Я расширил инструмент projection, чтобы вы могли создавать файлы проекций и для двойных камер типа «рыбий глаз». >github.com/raboof/dualfisheye2equirectangular - person Arnout Engelen; 25.05.2017
comment
Как я могу настроить карты, чтобы сделать их совместимыми с разными FOV? У моей камеры FOV 235°, у других 220 или 190 или 180. FOV >180 обязателен для хорошей сшивки, но ПО должно учитывать перекрытие. - person jumpjack; 05.07.2017
comment
Отлично, но знаете ли вы, как применить фильтр переназначения к выходу камеры, а не к одному изображению? - person Rahnzo; 11.08.2017
comment
Используйте видео в качестве первого входа. Если фильтр не использует повторно изображения X/Ymap, добавьте -loop 1 перед каждым входным изображением. - person Gyan; 11.08.2017
comment
Он работал с видео и потоками с веб-камеры, но когда я пытаюсь получить эту работу с ffserver и веб-камерой, у меня возникает следующая ошибка: MPEG 1/2 не поддерживает 15/1 кадр/с. Я не знаю, как заставить его работать - person Rahnzo; 05.09.2017
comment
Добавьте -r 30, чтобы изменить вывод на 30 кадров в секунду. - person Gyan; 05.09.2017

В последней версии ffmpeg вы можете сделать это, чтобы преобразовать видео «рыбий глаз» в равнопрямоугольное.

ffmpeg -y -i in.mp4 -vf v360=dfisheye:e:yaw=-90 -c:v libx265 -b:v 40000k -bufsize 5000k -preset ultrafast -c:a copy out.mp4
  • y : перезаписать вывод без предупреждения
  • я ххх : входной файл
  • vf yyy: use filter
    • yyy: параметры фильтра

    • v360 : имя фильтра

      • dfisheye : double fisheye (rectangular image containing two spheres/fisheye); use "fisheye" to use single sphere/fisheye
      • e : аббревиатура равнопрямоугольного
      • yaw : направление взгляда (=азимут) центра равнопрямоугольного вывода (=смотрите влево/вправо); используйте высоту тона, чтобы смотреть вверх/вниз
      • ih_fov : ввод горизонтального поля зрения; полусфера составляет 180 °, но некоторые камеры достигают 235 °
      • iv_fov : ввод вертикального поля зрения, обычно идентичного ih_fov
      • h_fov : выходной горизонтальный FOV
      • v_fov : выходной вертикальный FOV

Документы: https://ffmpeg.org/ffmpeg-filters.html#v360.

Примечание: фильтр отлично работает как с изображением, так и с видео в качестве входных данных.

person Wonson    schedule 11.10.2019
comment
были бы полезны некоторые комментарии к параметрам; Я знаю только те, что для изображений... - person jumpjack; 10.07.2021