JMGL_PANO

star_war_eve source 1

star_war_eve source 2

1. 介绍

JMGL_PANO 是Justin开源的一个全景视频播放器(Github)。基于硬件加速的视频解码和OpenGL渲染。仅供个人学习使用,商业使用请联系作者(Justin’s Email: mojing1999@gmail.com)

2. 相关库

  • OpenGL - OpenGL V3.3
  • GLEW - OpenGL核心库操作
  • GLFW - 和window相关操作
  • FFmpeg - 媒体解码库
  • pthread - 线程库
  • Intel Media SDK - 解码库
  • NV CUDA - 解码库
  • Video codec - 作者基于硬件加速的视频库
  • AnyOption - http://www.hackorama.com/anyoption/

3. 框架结构

  • FFmpeg/video_codec 媒体处理,输出YUV420图像
  • OpenGL 创建模型,贴图,渲染
  • GLFW 创建显示窗口,处理鼠标键盘输入

4. 使用

  • Usage: jmgl_pano [option] input_file
  • option: -d decode type, user can select decode library.
    • 0: Auto, 1: Nvidia, 2: Intel, 3: ffmpeg
  • switch view mode by keyboard input:
    • F1 : Rectilinear
    • F2 : Mirror Ball
    • F3 : Fisheye
    • F4 : Little Planet
    • ‘a’ : Auto rotation
    • ‘t’ : Stop auto rotation

程序截图

  • 全景预览

  • 水晶球

  • 小行星

5. TODO list

  • 处理键盘输入
  • 处理鼠标输入
  • 处理触摸屏输入
  • 全景模式变换
    • 全景浏览
    • 鱼眼模式
    • 水晶球模式
    • 小行星模式
  • 优化OpenGL渲染
  • 媒体文件硬解码支持
  • 贴图编码

注: 本页JPEG图片使用Google guetzli 工具压缩,压缩时间太长,压缩率还可以接受。

OpenGL Panorama Player的更多相关文章

  1. 计算机视觉code与软件

    Research Code A rational methodology for lossy compression - REWIC is a software-based implementatio ...

  2. 学习pano2vr制作html5全景笔记

    demo截图: demo下载: 百度网盘:http://pan.baidu.com/s/1o8yBwIA 密码:nf62(启服务端查看); 我制作是全屏定点360的全景页面,使用pano2vr软件制作 ...

  3. NeHe OpenGL教程 第三十五课:播放AVI

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  4. NeHe OpenGL教程 第二十一课:线的游戏

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  5. Media PLayer

    PotPlayer http://potplayer.daum.net/?lang=zh_CN KMPlayer 的原制作者姜龙喜先生(韩国)进入 Daum 公司后的新一代作品.PotPlayer 的 ...

  6. win10系统搭建虚拟机:VMware Workstation Player 12环境+Ubuntu Kylin 16.04 LTS系统

    笔者小白一枚,其实连虚拟机是个啥都不知道...实属惭愧,介于此所以今天倒腾了一下花了一上午就已经搭建好一个VMware Workstation Player 12免费版的,很哈皮,于是赶紧分享一下. ...

  7. OpenGL.Tutorial文章转载

    ZC:本来以为没有中文版的,原来有中文版,网址为: ZC: OpenGL3.0教程 _ 泰然网.html(http://www.tairan.com/archives/6126/) ZC: OpenG ...

  8. Player Settings 导出设置

    Player Settings is where you define various parameters (platform specific) for the final game that y ...

  9. 第11月第14天 opengl yuv beginners-tutorials

    1. Here is some snippets of code from my project 'movie player for iOS'. 1. fragment shader varying ...

随机推荐

  1. Spring加载xml配置文件的方式

    梳理Spring的流程 xml是最常见的spring 应用系统配置源.Spring中的几种容器都支持使用xml装配bean,包括: XmlBeanFactory,ClassPathXmlApplica ...

  2. PAT甲级——1077.Kuchiguse(20分)

    The Japanese language is notorious for its sentence ending particles. Personal preference of such pa ...

  3. MySQL允许某个IP网段从远程访问的方法

    grant select,insert,update,create on test.* to test@'192.168.8.%' identified by '123456';     允许增删改查 ...

  4. android课程表控件、悬浮窗、Todo应用、MVP框架、Kotlin完整项目源码

    Android精选源码 Android游戏2048 MVP Kotlin项目(RxJava+Rerotfit+OkHttp+Glide) Android基于自定义Span的富文本编辑器 android ...

  5. C#面向对象---对象成员、方法加载、引用类库

    一.方法重载: 1.两个函数同名,就互相构成方法的重载关系 2.重载的函数,必须跟其他函数之间具有不同的参数类型或参数个数 二.字段与属性 类的字段: 类里面是可以直接定义变量的,这些变量就叫类的字段 ...

  6. Git教程 - 远程仓库

    到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题了. 可是有用过集中式版本控制系统SVN的童鞋会站出来说,这些功能在SVN里早就有了,没看出Gi ...

  7. JS替换变量中的文字字母

    var text='Hello world, Hello world'; var b= text.replace('world','zhengxiaoya'); // 找到字符串中的第一个'world ...

  8. 吴裕雄--天生自然python学习笔记:pandas模块强大的数据处理套件

    用 Python 进行数据分析处理,其中最炫酷的就属 Pa ndas 套件了 . 比如,如果我 们通过 Requests 及 Beautifulsoup 来抓取网页中的表格数据 , 需要进行较复 杂的 ...

  9. Spring定义Bean的两种方式:和@Bean

    前言:    Spring中最重要的概念IOC和AOP,实际围绕的就是Bean的生成与使用. 什么叫做Bean呢?我们可以理解成对象,每一个你想交给Spring去托管的对象都可以称之为Bean. 今天 ...

  10. Qt error C2338: No Q_OBJECT in the class with the signal错误解决办法(无法编译过信号与槽)

    由于没有继承QObject类而引起的 只需继承QObject类即可 如果已经继承了QObject类,编译还出现错误 将QObject类放在最前面继承:public QObject 最后即可编译通过