该指南指导编译基于Transform360的FFmpeg,并介绍Transform Filter的使用方法。基于这个你可以获取到将等圆柱映射的全景视频转换为正方体映射的全景视频。

什么是Transform360

Transform360的Github地址为: https://github.com/facebook/transform360

其官方介绍为:Transform360 is an equirectangular to cubemap transform for 360 video. 作用就是将图1的视频转换为图2的视频样子。 http://i.imgur.com/Ro5c6P4.png 图1

http://i.imgur.com/Ro5c6P4.png 图2

CubeMap优点

相比于equirectangular,cubemap可以在保持全景效果不变的情况下缩小25%的冗余内容。原因如下:例如平面视频标清的分辨率为 720×480 ,如果用六面体来表示所有的面临的六个面,则至少需要 6×480×480 的大小,而在保持同等清晰度的前提下,采用等圆柱映射在需要 8×480×480 的大小。

通过转换对比可见,等圆柱映射的4K全景视频(3840*1920),转换为相同的正方体映射的分辨率为(2880*1920),文件大小缩小了近1/3(不同视频是有差异)

编译指南

以下命令基于Ubuntu 16.04执行测试通过。

  • 下载FFmpeg代码和Transform360代码

    git clone https://github.com/facebook/transform360.git
    git clone https://github.com/FFmpeg/FFmpeg.git
    
  • transform360/Transform_V1/vf_transform_v1.c文件复制到FFmpeg/libavfilter文件夹下

  • 进入FFmpeg/libavfilter文件夹,修改allfilters.c,在video filter块中添加代码REGISTER_FILTER(TRANSFORM_V1, transform_v1, vf);
  • 修改文件Makefile,在Filter块中添加代码OBJS-$(CONFIG_TRANSFORM_V1_FILTER) += vf_transform_v1.o
  • 回退到FFmpeg目录,开始编译。

    sudo apt install pkg-config yasm libx264-dev
    ./configure --enable-shared --enable-libx264 --enable-gpl  --prefix=/usr/local/ffmpeg
    make -j8 //8为CPU线程数目,可以加速编译
    sudo make install、
    sudo vim /etc/ld.so.conf.d/ffmpeg.conf
    //在文件中添加如下内容: /usr/local/ffmpeg/lib
    sudo ldconfig
    
  • 到达任意目录,执行ffmpeg查看是否正常运行,如果正常则编译完成。

转换视频指南

  • 通过ffmpeg -h filter=transform_v1可以查看帮助手册
  • 转换命令ffmpeg -i input.mp4 -vf transform_v1="input_stereo_format=MONO :max_cube_edge_length=960 :expand_coef=1.01" -vcodec h264 output.mp4

  • 参数说明

input_stereo_format 输入视频格式,不确定可以不选会自动判定

output_layout 输出视频格式,默认CUBEMAP_32

max_cube_edge_length 每个正方形的边长,设置过大会自动设置为视频能转换的最大值

expand_coef 模糊边界参数,默认1.01不建议修改,设置为1的时候视频播放会有边界


济南公交信息接口

2017-02-28(二) by chenjia.me

使用前需知

使用API请求方式为GET,头部需要添加如下信息:

  "User-Agent":"WayBook …
read more

无缝迁移CM代码到LineageOS

2017-01-05(四) by chenjia.me

从CM迁移代码到Lineage OS

CM 由于总所周知的问题,现在社区变为Lineage …

read more

Ubuntu 配置手册

2016-10-20(四) by chenjia.me

Ubuntu 配置手册

为了方便每次做Linux系统时候配置电脑,故记录操作步骤。

Ubuntn …

read more

Android 5.0 通知栏setsmallicon的坑

2016-04-23(六) by chenjia.me

Android 5.0规范修改

Android 5 …

read more

SIM信息清理查看工具(重点在ROOT权限的利用)

2015-10-04(日) by chenjia.me

原理

通过查看/data/data/com …

read more

Android Telephony Providers数据库分析

2015-10-04(日) by chenjia.me

目标

由于在New Moto G LTE …

read more

查找手机QQ特别关心铃声

2015-03-25(三) by chenjia.me

iOS QQ因为苹果限制导致不可以更换特别关心铃声~不过作为程序猿怎么会被限制呢~

获得qq特别关心铃声

小白步骤 …

read more

为安全研究专门开了一个新Blog

2014-11-27(四) by chenjia.me

回顾这几个月来做的事情,准备吧某些东西给写出来,因为研究这种东西过程往往比结果来的漫长,来的枯燥。

刚好之前汪海推荐过一个叫Typecho的博客系统 …

read more

Andorid 颜色渐变的实现

2014-11-24(一) by chenjia.me

颜色渐变

今天看到一个软件清理~动态效果很不错,从黄色到绿色表示的是电脑垃圾减少的过程~

然后就想实现一个 …

read more