是否有适用于ffmpeg的鱼眼或双鱼眼到全景滤镜?

15

或者通过现有的过滤器来完成?这样,您可以从鱼眼或双鱼眼相机(例如Ricoh Theta)接收视频,并直接实时输出到类似于RTMP的等距图像。


你能完成那个任务了吗? - Rahnzo
是的,请看下面被接受的答案,它有效! - Dan Pisarski
2个回答

12

Remap滤镜可以实现这一点:

该滤镜逐像素地将源帧复制到目标帧,根据两个文件ymap/xmap将像素重新映射到新的x,y目标。

基本命令语法如下:

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)的输入文件。


4
谢谢您的回复。您知道在哪里可以找到Ricoh Theta S 1280x720分辨率的PGM文件吗? - gumis
1
@gumis 我扩展了'投影'工具,以便您也可以为双鱼眼相机生成投影文件,您可以在https://github.com/raboof/dualfisheye2equirectangular获取它。 - Arnout Engelen
很好,但是您知道如何在相机输出上应用重新映射滤镜而不是单个图像吗? - Rahnzo
1
使用视频作为第一个输入。如果过滤器不重复使用X/Ymap图像,请在每个图像输入之前添加“-loop 1”。 - Gyan
1
添加“-r 30”以将输出更改为30 fps。 - Gyan
显示剩余4条评论

9
在最新的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: 不发出警告而覆盖输出
  • i xxx: 输入文件
  • vf yyy:使用过滤器
    • yyy:过滤器参数

    • v360:过滤器名称

      • dfisheye:双鱼眼(包含两个球体/鱼眼的矩形图像); 使用“fisheye”使用单个球体/鱼眼
      • e:缩写为“等距投影”
      • yaw:等距投影输出中心的视野方向(=azimut)(=左右看); 使用“pitch”向上/向下看
      • ih_fov:输入水平视野; 半球是180°,但有些摄像机可以达到235°
      • iv_fov:输入垂直视野,通常与ih_fov相同
      • h_fov:输出水平视野
      • v_fov:输出垂直视野

文档:https://ffmpeg.org/ffmpeg-filters.html#v360

注意:过滤器适用于图像或视频作为输入时。


一些参数的注释会很有用;我只知道图片的参数... - jumpjack

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接