Win7 VS2017简单编译FFMPEG播放器FFPlay
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的更多相关文章
- Win7 VS2017 NASM编译FFMPEG(2018.12.22)
今天无意中在gayhub发现个牛逼工程,全VS工程编译FFMPEG库,包括依赖库全是VS生成的,无需Mingw等Linux环境. 简单记录下过程,以防将来重装系统等情况,备忘. https://git ...
- ffmpeg播放器实现详解 - 视频显示
ffplay是ffmpeg源码中一个自带的开源播放器实例,同时支持本地视频文件的播放以及在线流媒体播放,功能非常强大. FFplay: FFplay is a very simple and port ...
- 简单的音乐播放器(VS 2010 + Qt 4.8.5)
昨天历经千辛万苦,配置好了VS 2010中的Qt环境(包括Qt for VS插件),今天决定浅浅地品味一下将两者结合进行编程的魅力. 上网查了一些资料,学习了一些基础知识,决定做一个简单的音乐播放器, ...
- swift3.0 简单直播和简单网络音乐播放器
本项目采用swift3.0所写,适配iOS9.0+,所有界面均采用代码布局. 第一个tab写的是简单直播,传统MVC模式,第二个tab写的是简单网络音乐播放器.传说MVVM模式(至于血统是否纯正我就不 ...
- ffmpeg播放器实现详解 - 框架搭建
ffplay是ffmpeg源码中一个自带的开源播放器实例,同时支持本地视频文件的播放以及在线流媒体播放,功能非常强大. FFplay: FFplay is a very simple and port ...
- MinGW下简单编译FFmpeg
2009.03.21补充:ffmpeg-0.5正式发布,地址为:[url]http://www.ffmpeg.org/releases/ffmpeg-0.5.tar.bz2[/url].修改了第7步, ...
- 用PHP+H5+Boostrap做简单的音乐播放器(进阶版)
前言:之前做了一个音乐播放器(纯前端),意外的受欢迎,然后有人建议我把后台一起做了,正好也想学习后台,所以学了两天php(不要吐槽我的速度,慢工出细活嘛~)然后在之前的基础上也又完善了一些功能,所以这 ...
- iOS商品详情、ffmpeg播放器、指示器集锦、自定义圆弧菜单、实用工具等源码
iOS精选源码 电商商品详情 Swift.两种方式实现tableViewCell拖拽功能 ffmpeg+openGL播放器 微信聊天表情雨.表情下落.表情动画 iOS指示器集锦 弹窗增加 picker ...
- Android课程---简单的音乐播放器
第一个:用Activity实现 activity_music_play1.xml <?xml version="1.0" encoding="utf-8" ...
随机推荐
- 22 【python】入门指南:函数
#!/bin/python def test_func(): return "test_func" a = test_func() print(a) 输出结果: test_func ...
- 44-java断点调式dubug
转自:https://www.cnblogs.com/mq0036/p/3780538.html Eclipse 的单步调试 1.设置断点在程序里面放置一个断点,也就是双击需要放置断点的程序左边的栏目 ...
- Fresco加载显示gif图片
第一步:首先要导包 Android Studio 或者 Gradle dependencies { compile 'com.facebook.fresco:fresco:0.6.0+' } 第二步: ...
- Oracle_高级功能(10) 备份恢复
备份与恢复Oracle数据库有三种标准的备份方法,分别是导出/导入(EXP/IMP).热备份和冷备份.导出/导入是一种逻辑备份,冷备份和热备份是物理备份.一.导出/导入(Export/Import)利 ...
- CH6202 黑暗城堡
一道最短路+生成树 原题链接 实际上就是生成树的中每个点到节点\(1\)的距离等于原图中这个点到节点\(1\)的最短距离,求这样的生成树的棵数. 先用\(SPFA\)或\(Dijkstra\)求出所有 ...
- BZOJ 3123 [SDOI2013] 森林 - 启发式合并 主席树
Description 给你一片森林, 支持两个操作: 查询$x$到$y$的$K$大值, 连接两棵树中的两个点 Solution 对每个节点$x$动态开权值线段树, 表示从$x$到根节点路径上权值出 ...
- RAPID程序设计
1.ABB机器人软件 RobotWare 是ABB提供的机器人系列应用软件的总称. RobotStudio是ABB公司自行开发的机器人模拟软件, 能在PC机上模拟几乎所有型号的ABB 机器人几乎所有的 ...
- openssl_error_string()
其实已经成功了,openssl_error_string()一样会输出错误信息,忽略就好
- Python之路(第七篇)Python作用域、匿名函数、函数式编程、map函数、filter函数、reduce函数
一.作用域 return 可以返回任意值例子 def test1(): print("test1") def test(): print("test") ret ...
- EasyUITree设置节点选中
function callback1(){ reloadMind(); LoadTree0($("); setTimeout(function(){ var node = $('#tt1') ...