我正在尝试使用FFMPEG Remap过滤器将圆形鱼眼视频转换为等角矩形。为此,我使用FFMPEG文档的“重新映射”页面中记录的投影脚本来生成相机的地图文件。
我的问题是这个:
我可以成功处理静止图像,但是尝试输出视频时,只会出现黑框。
基于此链接:
Is there a fisheye or dual fisheye to equirectangular filter for ffmpeg?
我相信我需要在过滤器文件之前使用-loop参数,以将图像数据作为框架进行处理,但是当我尝试执行此操作时,出现错误:
failed to reallocate parser buffer
任何人都可以提供有关如何在视频文件上正确使用FFMPEG重映射的指南吗?
这是我正在使用的当前命令(除非我删除-loop参数,否则它将不起作用)
ffmpeg -i short.mp4 -loop 1 -i xfly.pgm -loop 1 -i yfly.pgm -filter_complex remap -c:v libx264 -c:a copy out.mp4
经过进一步研究,-loop选项应该在输入文件之前,而不是在输入图像地图之前……
FFMPEG -loop 1 -i file.mp4 -i x.pgm -i y.pgm -filter_complex remap out.mp4
但是现在我得到了:
Option loop not found
-循环似乎仅受某些图像扩展名支持
答案 0 :(得分:1)
使用
ffmpeg -i file.mp4 -i x.pgm -i y.pgm -filter_complex remap,format=yuv444p,format=yuv420p out.mp4
重新映射过滤器仅输出完全采样的色度,而不输出subsampled格式,并且大多数播放器仅播放4:2:0子采样的视频,因此必须插入格式过滤器以转换为可接受的格式。
这里的问题与循环播放视频或地图无关。重新映射将为视频的所有帧重用静态非循环映射。
答案 1 :(得分:0)
FFMPEG 的最新版本现在实现了 V360 过滤器:
ffmpeg -i input.jpg -vf v360:fisheye:equirectangular:ih_fov=180:iv_fov=180:pitch=0 -y output.jpg
可能不是很精确,因为它是“通用的”,但至少它很容易使用。