Win平台简单编译FFPlay播放器,顺便纪念下雷霄骅,一年前刚学FFMPEG时还看过他的博客,昨晚再次搜FFMPEG文章时才知道人已经走了...

做成了视频放到B站

https://www.bilibili.com/video/av19500533/

C++版本也是可以编译的,只是要修改非常多的C语言转C++的强制类型转换,这个例子是C语言写的,改扩展名为cpp后,有不少cpp关键字的参数要修正,不过基本上花点时间就能解决,没什么难度。

现在主要问题是网上能找到的例子,包括FFPlay都是基于SDL的,新版FFPlay基于SDL2,但是始终找不到脱离SDL版本的音视频的例子,网上虽然有单帧解码的例子,但是缺少音视频同步,google都没找到,自己又没写过什么并行的程序,

SDL中的mutex,cond,signal转成C++11失败了,根本不知道怎么写能正确。

所以目前没办法,还是得暂时依赖SDL,好像SDL有OpenGL接口,改改应该还是能用OpenGL的。

于是今年打算花点时间把这个libav库整合进自己的代码中,争取让自己写的简单引擎也能播放常见视频。

有趣的是除了商业引擎,开源的C++游戏引擎几乎看不到任何支持视频播放的,Ogre,Urho3D,还有什么的全都不行,国内外一些旧贴子零星的提到过一点Ogre里使用FFMPEG播放视频的,但是也没什么工程或者解决方案。

还有蓝星第一XX引擎Klayge也只是有个简单视频,没什么音视频同步,这种其实我感觉不能算是完全支持视频的,因为视频这东西一般不是放OP就是在游戏中放画中画用的,没声音那基本和图像序列没区别...

也可能是FFMPEG协议问题导致没有游戏引擎使用他。不过其实也有些其他的,如ogg那个库,还有什么bik也没看有什么引擎支持。

扯得太远也没意义,反正自己用,方便自己又不商用,花点时间整合一下FFMPEG还是值得的。

更有意思的是,FFMPEG这协议好像是要部分开源的,而有些项目,好像是KMPlayer吧,没开源居然上了FFMPEG的耻辱柱黑名单,还有国内的一堆XX影音,虽然一个也没用过...不过渣渣如我估计也写不出啥出名的程序,基本也没啥能上人家黑名单的机会了...

Win7 VS2017简单编译FFMPEG播放器FFPlay的更多相关文章

  1. Win7 VS2017 NASM编译FFMPEG(2018.12.22)

    今天无意中在gayhub发现个牛逼工程,全VS工程编译FFMPEG库,包括依赖库全是VS生成的,无需Mingw等Linux环境. 简单记录下过程,以防将来重装系统等情况,备忘. https://git ...

  2. ffmpeg播放器实现详解 - 视频显示

    ffplay是ffmpeg源码中一个自带的开源播放器实例,同时支持本地视频文件的播放以及在线流媒体播放,功能非常强大. FFplay: FFplay is a very simple and port ...

  3. 简单的音乐播放器(VS 2010 + Qt 4.8.5)

    昨天历经千辛万苦,配置好了VS 2010中的Qt环境(包括Qt for VS插件),今天决定浅浅地品味一下将两者结合进行编程的魅力. 上网查了一些资料,学习了一些基础知识,决定做一个简单的音乐播放器, ...

  4. swift3.0 简单直播和简单网络音乐播放器

    本项目采用swift3.0所写,适配iOS9.0+,所有界面均采用代码布局. 第一个tab写的是简单直播,传统MVC模式,第二个tab写的是简单网络音乐播放器.传说MVVM模式(至于血统是否纯正我就不 ...

  5. ffmpeg播放器实现详解 - 框架搭建

    ffplay是ffmpeg源码中一个自带的开源播放器实例,同时支持本地视频文件的播放以及在线流媒体播放,功能非常强大. FFplay: FFplay is a very simple and port ...

  6. MinGW下简单编译FFmpeg

    2009.03.21补充:ffmpeg-0.5正式发布,地址为:[url]http://www.ffmpeg.org/releases/ffmpeg-0.5.tar.bz2[/url].修改了第7步, ...

  7. 用PHP+H5+Boostrap做简单的音乐播放器(进阶版)

    前言:之前做了一个音乐播放器(纯前端),意外的受欢迎,然后有人建议我把后台一起做了,正好也想学习后台,所以学了两天php(不要吐槽我的速度,慢工出细活嘛~)然后在之前的基础上也又完善了一些功能,所以这 ...

  8. iOS商品详情、ffmpeg播放器、指示器集锦、自定义圆弧菜单、实用工具等源码

    iOS精选源码 电商商品详情 Swift.两种方式实现tableViewCell拖拽功能 ffmpeg+openGL播放器 微信聊天表情雨.表情下落.表情动画 iOS指示器集锦 弹窗增加 picker ...

  9. Android课程---简单的音乐播放器

    第一个:用Activity实现 activity_music_play1.xml <?xml version="1.0" encoding="utf-8" ...

随机推荐

  1. 22 【python】入门指南:函数

    #!/bin/python def test_func(): return "test_func" a = test_func() print(a) 输出结果: test_func ...

  2. 44-java断点调式dubug

    转自:https://www.cnblogs.com/mq0036/p/3780538.html Eclipse 的单步调试 1.设置断点在程序里面放置一个断点,也就是双击需要放置断点的程序左边的栏目 ...

  3. Fresco加载显示gif图片

    第一步:首先要导包 Android Studio 或者 Gradle dependencies { compile 'com.facebook.fresco:fresco:0.6.0+' } 第二步: ...

  4. Oracle_高级功能(10) 备份恢复

    备份与恢复Oracle数据库有三种标准的备份方法,分别是导出/导入(EXP/IMP).热备份和冷备份.导出/导入是一种逻辑备份,冷备份和热备份是物理备份.一.导出/导入(Export/Import)利 ...

  5. CH6202 黑暗城堡

    一道最短路+生成树 原题链接 实际上就是生成树的中每个点到节点\(1\)的距离等于原图中这个点到节点\(1\)的最短距离,求这样的生成树的棵数. 先用\(SPFA\)或\(Dijkstra\)求出所有 ...

  6. BZOJ 3123 [SDOI2013] 森林 - 启发式合并 主席树

    Description 给你一片森林, 支持两个操作: 查询$x$到$y$的$K$大值,  连接两棵树中的两个点 Solution 对每个节点$x$动态开权值线段树, 表示从$x$到根节点路径上权值出 ...

  7. RAPID程序设计

    1.ABB机器人软件 RobotWare 是ABB提供的机器人系列应用软件的总称. RobotStudio是ABB公司自行开发的机器人模拟软件, 能在PC机上模拟几乎所有型号的ABB 机器人几乎所有的 ...

  8. openssl_error_string()

    其实已经成功了,openssl_error_string()一样会输出错误信息,忽略就好

  9. Python之路(第七篇)Python作用域、匿名函数、函数式编程、map函数、filter函数、reduce函数

    一.作用域 return 可以返回任意值例子 def test1(): print("test1") def test(): print("test") ret ...

  10. EasyUITree设置节点选中

    function callback1(){ reloadMind(); LoadTree0($("); setTimeout(function(){ var node = $('#tt1') ...