该指南指导编译基于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的时候视频播放会有边界


Hyper.sh docker使用

2016-08-23(Tue) by chenjia.me

注册+初始化

邀请链接:https://console …

read more

SDU Speed Downloader 原理和编程过程

2016-08-21(Sun) by chenjia.me

山大网速现状

山大工作时间的网速白天限制在347k,也就是我们所的3M宽带,晚上限速178k,也就是我们1 …

read more

Ubuntu 15.04 64/32bit 配置Android 开发环境

2015-08-13(Thu) by chenjia.me

手动

  1. 官网下载Android Studio
  2. 安装32位支持很重要 …

read more

【2014年8月18日】Android第三方SDK使用的一些提示

2014-08-19(Tue) by chenjia.me

提示一些在使用不是很完整的SDK的时候应该注意到的事情

read more

【2014年8月17日】Android的设备管理器(一)

2014-08-18(Mon) by chenjia.me

Android设备管理器的使用

read more

【2014年8月14日】关于正则表达式的一些事情

2014-08-15(Fri) by chenjia.me

PHP中正则表达式的用法

read more

【2014年8月12日】分享一些好的简历生成网站

2014-08-13(Wed) by chenjia.me

推荐几个好的 简历网站。

read more

【2014年8月10日】原来,没有GPS,手机是这么定位的

2014-08-11(Mon) by chenjia.me

手机如何通过WiFi和基站进行定位

read more