EasyPlayerPro主要基于ffmpeg进行开发,在EasyPlayerPro开发过程中,曾遇到一个相对比较棘手的问题,该问题一般在播放不是很标准的流或者网络情况较差,容易出现丢帧的情况特别容易出现: 基本表象在,播放一段时间程序会弹出错误或者崩溃,查代码逻辑根本无法查起,且不易重现(比如,我现在就想重现,也未能重现出来–!后面补上),不过在播放没有音频的rtsp流的时候比较容易出现,报错定位output.c源文件中,应该是字符串格式化输出的时候出错,经过排查,定位到ffmpeg的日志输出…
EasyPlayerPro简介 EasyPlayerPro是一款全功能的流媒体播放器,支持RTSP.RTMP.HTTP.HLS.UDP.RTP.File等多种流媒体协议播放.支持本地文件播放,支持本地抓拍.本地录像.播放旋转.多屏播放等多种功能特性,核心基于ffmpeg,稳定.高效.可靠,支持Windows.Android.iOS三个平台,EasyPlayerPro播放器可广泛应用于流媒体客户端.互联网直播.在线教育.IPTV.赛事直播.本地视频文件播放等项目中.目前在多家教育.安防.行业型公司…
EasyPlayerPro for Windows是基于ffmpeg进行开发的全功能播放器,开发过程中参考了很多开源的播放器,诸如vlc和ffplay等,其中最强大的莫过于vlc,但是鉴于vlc框架过于庞大而其中仍存在诸多问题而舍弃了,而其他的更倾向于演示demo,只能提供部分借鉴意义:故而,EasyPlayerPro 一贯秉承Easy系列小而精,接口简单功能强大的宗旨从新设计了一套框架,该套框架能适应多线程调用以及多个播放实例同时运行,和EasyPlayer一样Easy; 当然,在此也郑重的感…
下面我们来讲解一下关于EasyPlayerPro接口的调用,主要分为C++和C#两种语言,C++也可以基于VC和QT进行开发,C++以VC MFC框架为例进行讲解,C#以Winform框架为例进行讲解. VC开发EasyPlayerPro 首先建一个基于MFC Dialog的工程,取名叫EasyPlayerPro,关于界面逻辑的处理过程就不做过多赘述了,大家有兴趣的可以去看EasyPlayerPro项目代码:下面我们讲解一下EasyPlayerPro的调用流程: (1) 打开一个流或文件进行播放…
EasyPlayerPro(windows)接口说明如下: EasyPlayerPro_Open 说明:打开一个媒体流或者媒体文件进行播放,同时返回一个 player 对象指针 参数说明: fileUrl - 文件路径(可以是网络流媒体的 URL) hWnd - Win32 的窗口句柄/其他平台渲染显示设备句柄 返回值: Easy_PlayerPro_Handle 指针类型,指向 easyplayerpro 对象句柄 声明如下: Easy_PlayerPro_Handle EasyPlayerP…
EasyPLyerPro(Windows)经过为期一个月的开发已经基本完成,虽然目前仍存在一些小问题,但是总体功能还是趋于比较稳定和强大的,下面对其功能和应用场景做简要介绍. 一.EasyPlayerPro功能介绍 Windows平台初始版本界面如下图所示: 如上截图EasyPlayerPro目前已支持EasyPlayerPro RTSP/RTMP/HLS/HTTP全功能流媒体播放器开发计划中罗列的绝大部分功能,诸如大部分流媒体和媒体文件的支持,单帧播放,快进和慢放,抓图,录像(支持分片)等功能…
预期效果 Django通过Ajax POST提交数据,前台弹窗处理结果 粗略代码 # views.py 代码 ...省略... msg = { 'code': 200, 'message': 'Hello World' } ...省略... return HttpResponse(json.dumps(msg), content_type='application/json') # hello.html 代码 ...省略... success: function (res) { var json…
1.1.Windows 8.1升级至Windows 10后,启动VisualSVN Server Manager报错:提供程序无法执行所尝试的操作 (0x80041024),VisualSVN Server Manager的当前版本为:3.0.1 1.Windows 8.1升级至Windows 10后,启动VisualSVN Server Manager报错:提供程序无法执行所尝试的操作 (0x80041024),VisualSVN Server Manager的当前版本为:3.0.1 2.2.…
在 Windows 10 上安装 3D Stuido Max 2016 报错,无法正常安装,查看日志是 VC 运行时安装错误,经过分析发现在 Windows 10 上已经有这些运行时并且版本比安装包中自带的还要高,所以安装总是失败,分析安装程序配套的 setup.ini 文件,发现里面有运行时安装的配置信息,并且可以忽略错误,因此修改 setup.ini 文件,然后就可以顺利进行安装了,修改后的 setup.ini 文件如所示 #============= VCREDIST Begin ====…
背景描述 作为一个播放器, 除了能播放视频和声音外,音量控制是绝对不能缺少的功能; 本文在音视频播放的基础上,增加对音量的控制: 实现流程 调用mixerGetDevCaps获取音频输出设备列表; 打开指定的音频输出设备; 获取指定音频输出设备的音频属性; 获取和设置音量; DWORD GetVolume(); int SetVolume(DWORD vol); int Init(DWORD ComponentType,int *min,int *max); int GetAudioOutput…
需求 在安防行业应用中,除了在本地看到摄像机的视频和进行音频监听外,还有一个重要的功能,那就是对讲. EasyPlayerPro-win为了减轻二次开发者的工作量,将本地音频采集也进行了集成: 功能特点 支持获取本地所有音频输入设备列表; 可任意选择任一音频输入设备; 可设置采样率和采样精度及位率; 可设置编码格式(当前支持G711A,G711U,AAC); 实现流程 采用DirectSound8进行本地音频采集; 将采集到的音频数据写入编码队列; 在编码线程中获取源始音频数据,进行音频编码;…
问题来源 2017.12.18 今日有杭州某教育领域客户反馈EasyPlayerPro在播放一个rtmp源时,画面显示异常的问题.截图如下: 问题复现 一番思考, 将显示格式改为D3D显示, 正常, 截图如下: 问题调试 推测应该是分辨率的问题, D3D显示是固定的拷贝, 而GDI显示是由api DrawDibDraw实现, 在源端将分辨率固定为编码分辨率, 显示效果截图如下: 问题解决 的确,就是源端分辨率的问题, 仔细查看发现, 回调出来的分辨率是显示分辨率(width, height),而…
问题来源 2017.12.21 前天有杭州某教育领域客户反馈有部分视频源在全屏模式下显示黑屏: 问题复现 EasyPlayerPro由于没有实现单个窗口完全全屏,故没有暴露该问题,晚上加班,加上单个窗口完全全屏,即把控制区全部隐藏,仅将视频铺满整个屏幕: 改完,电脑罢工了,今天上午还蓝屏两次,ASUS, 伤透了我的心- 复现问题, 发现其实是1080P的视频在全屏状态下显示黑屏, 且显示器分辨率刚好是1080P. 并且是GDI显示模式; 又是GDI- 问题解决 GDI显示视频使用的是DrawDi…
需求背景 应EasyPlayerPro某客户需求,在EasyPlayerPro启动时,自动播放指定的url源, 不需要每次都去手动填写, 且实现自动播放,不需要手动的单击播放按钮: 为响应该需求,特增加配置文件: EasyPlayerPro.xml, 实现以下功能: 1. 在启动过程中读取配置中的URL源, 以指定的协议主动连接源, 进行音视频播放; 2. 设置缓冲帧大小, 实现流畅和实时模式的调整; 3. 可隐藏工具栏,使播放器运行后,将工具栏进行隐藏, 最大化的利用窗口空间显示视频; 实现界…
问题被反馈 今日一客户反馈说播放不了带用户名密码的流, 奇怪,这个问题不存在啊-,按照客户的说法, 是将url地址保存在配置文件中,然后再打开EasyPlayerPro运行: 问题复现 在EasyPlayerPro.xml中输入带用户名和密码(含有特殊字符&)的地址, 再运行EasyPlayerPro.exe; 果然,所有特殊字符&全都不见了,如下图: 问题分析与解决 找度娘,问tinyxml特殊字符: 从sourceforge.net下载tinyxml的源码; 使用vs2010打开tin…
背景描述 作为一个播放器,截图功能必不可少; 下面主要记录一下截图功能的实现: 实现流程 将解码后的帧进行格式转换(目标格式为RGB24); 采用独立的线程进行截图处理; 截图可保存为BMP或JPG两种格式; 代码实现 #define _WIDTHBYTES(c) ((c+31)/32*4) // c = width * bpp int Snapshot2File(RENDER_FORMAT renderFormat, SNAPSHOT_IMAGE_T *pSnapshot, char *pbu…
背景描述 参照国内视频监控行业监控软件,实现当前视频的即时回放功能,例如: 监控人员发现刚刚的某个视频点有可疑,就像录像回放一样,想倒回去看一下,但又不想切换到录像回放界面, 此处就体现即时回放的价值了,还可将回放片断保存为录像文件; 实现流程 在视频播放时, 将收到的帧数据写入待解码播放队列; 当用户切换到即时回放功能, 则停止解码当前的帧; 在解码线程中修改用者ID(涉及到缓冲队列的设计); 解码线程一直读取历史队列中的帧进行解码显示; 当读到队列的最后一帧时,再从头开始循环; 代码实现 /…
背景描述 在视频监控软件中,我们看到很多的软件都有电子放大功能, 按住鼠标左键不放,框选一个区域,再松开鼠标左键,即对选中的区域进行放大显示, 且可以重复该操作,逐步放大所需显示的区域, 有没有觉得,这个功能在视频监控软件中还是有他的用武地. 今天我们就来实现该功能: 实现流程 //设置电子放大起起始点 int SetElectronicZoomStartPoint(int channelId, float fXPercent, float fYPercent, unsigned char sh…
tools/options/directories/include files  添加ffmpeg头文件所在路径 tools/options/directories/library files  添加ffmpeg库路径 project/settings/link/object/library modules 添加所用的ffmpeg库 二 二二 二. .. .报错解决 报错解决报错解决 报错解决 1.解决:Cannot open include file: 'inttypes.h' 更新ffmpe…
# if open wal org.apache.spark.SparkException: Could not read data from write ahead log record FileBasedWriteAheadLogSegment SparkStreaming开启了checkpoint wal后有时会出现如上报错,但不会影响整体程序,只会丢失报错的那个job的数据.其根本原因是wal文件被删了,被sparkstreaming自己的清除机制删掉了.通常意味着一定程度流式程序上存在…
可以看到图中的关闭log之前没有任务报错,这也让博主非常抓狂,这看着就像是人为关闭的,于是博主在群里问是不是有人动过该服务,确认没人关闭后,百度无果,社区上也没找到有关信息,最后灵光一闪,猜测是不是因为没有通过后台启动方式,一开始xshell连接后,启动服务,接着断开xshell连接后就会关闭服务,经过测验,确实如此. 解决办法: 改为后台启动:./elasticsearch -d 启动后通过 ps aux|grep elasticsearch 命令查看是否启动成功,也可以通过日志 至于为什么x…
Linux及Mac系统下使用source xxx.sql 可直接导入测试数据(注意必须先切换到当前xxx.sql的目录下), 但在Windows环境下导入会出现乱码报错的情况, 主要是因为编码的问题,解决方法如下: 1. 先切换路径到xxx.sql的目录下; 2. 使用cmd或PowerShell 登陆MySQL数据库; 3. 先输入     set  names  utf8 4. 再输入      source  xxx.sql        (或者把文件夹拖到终端也可以)…
使用anaconda,本来是为了减少装第三方模块依赖出错问题的. 但是,今天发现,也是有坑啊. 首先 import ssl 报错,import _ssl 说DLL load failed 解决办法:用官方的python zip文件包的_ssl.pyd 替换anaconda中的 _ssl.pyd 文件 1.在anaconda 安装目录找到DLLs/_ssl.pyd文件,改名为_ssl.pyd_bk,作为本分,以防不测.如果是使用了虚拟环境,也要将env中的虚拟环境中的_ssl.pyd替换 2.查看…
今天想安装下RabbitMQ写几个用例看下,发现最新的安装包有些问题,不能直接安装使用,遇到一些问题,记录一下解决办法. 下载安装包 因为RabbitMQ是Erlang编写,安装时,需要先安装Erlang.在RabbitMQ官网(https://www.rabbitmq.com/download.html)提供了Erlang下载(如下图红框内),也可以到Erlang官网下载最新版.我这里下载的都是windows 64位安装包(installer版本). 运行安装包 依次运行Erlang.Rabb…
本文转自EasyDarwin团队成员John的博客:http://blog.csdn.net/jyt0551/article/details/74502627 H.265编码算法作为新一代视频编码标准,在编码效果上有了很大的进步,同样清晰度的视频,265要比264有着更低的码率.关于265对比264的优越性,网上有更专业的文章来作分析,我也仅对这两种算法略知皮毛,因此不多阐述. 基于其更高的压缩比,H.265适用于安防行业再合适不过了!因为安防行业每天都有着海量的视频数据在产生,同时需要实时传输…
首先,先解决第一个问题,我们使用VS2010开发的时候,调试的时候,中文打印出来都是乱码,这个问题很纠结. 如下图: CCLOG("cclog: 测试使用标签的自动换行和个别字体大写");LOGNEWLINE; 输出结果如下图: <dict> cocos2d.x.version: 2.1rc0-x-2.1.4 cocos2d.x.compiled_with_profiler: false cocos2d.x.compiled_with_gl_state_cache: tru…
问题原因: 在使用分区助手迁移windows 10到ssd中,设置完boot管理器后,出现黑屏问题, 经过长时间的搜索,发现在迁移系统的时候,只迁移了C盘的系统,没有连同msr引导 文件一同传过去,会导致双系统中ssd的引导文件丢失,从而产生进不去系统的问题. 解决方法: 在网上搜了下,可靠的方法基本上是使用U盘做一张PE盘,然后使用pe系统里的工具来修复 引导文件.第二种做法,基本上就是,重新从ssd上安装一个新的操作系统. 经验教训: 在使用操作系统时,要及时的设置还原 点,在下载安装软件时…
错误重现: --------------------Configuration: curl - Win32 LIB Debug DLL Windows SSPI DLL WinIDN-------------------- xilink6: executing 'D:\vc6.0\VC98\Bin\link.exe' libcurld.lib(idn_win32.obj) : error LNK2001: unresolved external symbol __imp__IdnToAscii@…
要实现允许修改log这个功能,只需要在hooks目录下增加一个名为:pre-revprop-change.bat的文件,重启svn即可.该文件内容为:-----------------------------------------------------------if "%4" == "svn:log" exit 0 echo Property '%4' cannot be changed >&2 exit 1 ------------------…
先交待下开发环境: 操作系统:Windows 7 Python版本:2.7.9 Pip版本:6.1.1 其他环境忽略 在windows下使用pip下载python包,出现如下错误 Collecting xxxxxx Exception: Traceback (most recent call last): File "D:\Python27\lib\site-packages\pip-6.0.8-py2.7.egg\pip\basecommand.py", line 232, in m…