当前位置: 移动技术网 > IT编程>开发语言>.net > 使用FFmpeg进行360全景视频格式转换:filter v360

使用FFmpeg进行360全景视频格式转换:filter v360

2020年07月13日  | 移动技术网IT编程  | 我要评论

1. FFmpeg v360介绍

FFmpeg在目前最新版4.3中加入了一个新的filter v360,功能是对不同投影格式的360度全景视频做格式转换。在此之前据我了解只有很多小的第三方的实现,现在FFmpeg终于加入了这个功能。
官方文档: FFmpeg v360 filter.

2. 用法和参数

官方示例:实现从ERP到立方体的转换:

ffmpeg -i input.mkv -vf v360=e:c3x2:cubic:out_pad=0.01 output.mkv

解释一下参数的含义:
最基本的参数格式如下:

v360=input_format:output_format

其中input_format和output_format分别是原始投影格式和目标投影格式。
e: ERP 投影格式
c: 立方体投影格式
c3x2: c后面加3x2指的是输出立方体视频的排列方式。目前支持三种:3x2, 1x6, 6x1
如果对于输入输出中的格式还有额外的参数要求,使用如下格式:

v360=input_format:output_format:format_1:arg_name=value

这里format_1指某个你要具体设置的格式,在冒号后面用arg_name= value的格式加具体参数。
在这个官方示例中,对于立方体还有额外的参数设置: cubic:out_pad=0.01, 这个是指立方体每个面要向外padding的像素数量是边长的1%。具体实现方式还不清楚。

3. v360支持的视频格式

全部支持的格式可以参考文档,这里总结几个我常用的格式。

Format argument Full name Notes
‘e’, ‘equirect’ Equirectangular
‘c3x2’, ‘c6x1’, ‘c1x6’ Cubemap with 3x2/6x1/1x6 layout 大量额外设置可选
‘eac’ Equi-Angular Cubemap
‘tsp’ Truncated square pyramid

4. 立方体(cubemap)额外参数设置

4.1 Padding

4.2 设置不同面输出顺序

使用参数out_forder设置六个用何种顺序排列。对于c3x2, 各个面按从左到右,从上到下排列:
举例:

ffmpeg -i input.mkv -vf v360=e:c3x2:cubic:out_forder='rludfb' output.mkv

这个命令是指立方体的六个面按right, left, up, down, front, back的顺序输出。这个也是默认顺序。
注意,如果输入的视频不是默认顺序,则需要用in_forder来声明输入的顺序。举例:

ffmpeg -i input.mkv -vf v360=c3x2:e:cubic:in_forder='rludfb' output.mkv

4.3 分别设置每个面的旋转角度

使用参数in_frot和out_frot设置每个面的顺时针旋转角度。举例:

ffmpeg -i input.mkv -vf v360=e:c3x2:cubic:out_frot='000012' output.mkv

这个命令会将输出的第五个面旋转90度,第六个面旋转180度。
默认是’000000’, 使用0 1 2 3 代表0 90 180 270度的旋转

本文地址:https://blog.csdn.net/qiutiantxwd/article/details/107283224

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网