背景描述 作为一个播放器,截图功能必不可少; 下面主要记录一下截图功能的实现: 实现流程 将解码后的帧进行格式转换(目标格式为RGB24); 采用独立的线程进行截图处理; 截图可保存为BMP或JPG两种格式; 代码实现 #define _WIDTHBYTES(c) ((c+31)/32*4) // c = width * bpp int Snapshot2File(RENDER_FORMAT renderFormat, SNAPSHOT_IMAGE_T *pSnapshot, char *pbu…
背景描述 作为一个播放器, 除了能播放视频和声音外,音量控制是绝对不能缺少的功能; 本文在音视频播放的基础上,增加对音量的控制: 实现流程 调用mixerGetDevCaps获取音频输出设备列表; 打开指定的音频输出设备; 获取指定音频输出设备的音频属性; 获取和设置音量; DWORD GetVolume(); int SetVolume(DWORD vol); int Init(DWORD ComponentType,int *min,int *max); int GetAudioOutput…
需求背景 应EasyPlayerPro某客户需求,在EasyPlayerPro启动时,自动播放指定的url源, 不需要每次都去手动填写, 且实现自动播放,不需要手动的单击播放按钮: 为响应该需求,特增加配置文件: EasyPlayerPro.xml, 实现以下功能: 1. 在启动过程中读取配置中的URL源, 以指定的协议主动连接源, 进行音视频播放; 2. 设置缓冲帧大小, 实现流畅和实时模式的调整; 3. 可隐藏工具栏,使播放器运行后,将工具栏进行隐藏, 最大化的利用窗口空间显示视频; 实现界…
需求 在安防行业应用中,除了在本地看到摄像机的视频和进行音频监听外,还有一个重要的功能,那就是对讲. EasyPlayerPro-win为了减轻二次开发者的工作量,将本地音频采集也进行了集成: 功能特点 支持获取本地所有音频输入设备列表; 可任意选择任一音频输入设备; 可设置采样率和采样精度及位率; 可设置编码格式(当前支持G711A,G711U,AAC); 实现流程 采用DirectSound8进行本地音频采集; 将采集到的音频数据写入编码队列; 在编码线程中获取源始音频数据,进行音频编码;…
问题来源 2017.12.18 今日有杭州某教育领域客户反馈EasyPlayerPro在播放一个rtmp源时,画面显示异常的问题.截图如下: 问题复现 一番思考, 将显示格式改为D3D显示, 正常, 截图如下: 问题调试 推测应该是分辨率的问题, D3D显示是固定的拷贝, 而GDI显示是由api DrawDibDraw实现, 在源端将分辨率固定为编码分辨率, 显示效果截图如下: 问题解决 的确,就是源端分辨率的问题, 仔细查看发现, 回调出来的分辨率是显示分辨率(width, height),而…
问题被反馈 今日一客户反馈说播放不了带用户名密码的流, 奇怪,这个问题不存在啊-,按照客户的说法, 是将url地址保存在配置文件中,然后再打开EasyPlayerPro运行: 问题复现 在EasyPlayerPro.xml中输入带用户名和密码(含有特殊字符&)的地址, 再运行EasyPlayerPro.exe; 果然,所有特殊字符&全都不见了,如下图: 问题分析与解决 找度娘,问tinyxml特殊字符: 从sourceforge.net下载tinyxml的源码; 使用vs2010打开tin…
背景描述 在视频监控软件中,我们看到很多的软件都有电子放大功能, 按住鼠标左键不放,框选一个区域,再松开鼠标左键,即对选中的区域进行放大显示, 且可以重复该操作,逐步放大所需显示的区域, 有没有觉得,这个功能在视频监控软件中还是有他的用武地. 今天我们就来实现该功能: 实现流程 //设置电子放大起起始点 int SetElectronicZoomStartPoint(int channelId, float fXPercent, float fYPercent, unsigned char sh…
背景描述 参照国内视频监控行业监控软件,实现当前视频的即时回放功能,例如: 监控人员发现刚刚的某个视频点有可疑,就像录像回放一样,想倒回去看一下,但又不想切换到录像回放界面, 此处就体现即时回放的价值了,还可将回放片断保存为录像文件; 实现流程 在视频播放时, 将收到的帧数据写入待解码播放队列; 当用户切换到即时回放功能, 则停止解码当前的帧; 在解码线程中修改用者ID(涉及到缓冲队列的设计); 解码线程一直读取历史队列中的帧进行解码显示; 当读到队列的最后一帧时,再从头开始循环; 代码实现 /…
问题来源 2017.12.21 前天有杭州某教育领域客户反馈有部分视频源在全屏模式下显示黑屏: 问题复现 EasyPlayerPro由于没有实现单个窗口完全全屏,故没有暴露该问题,晚上加班,加上单个窗口完全全屏,即把控制区全部隐藏,仅将视频铺满整个屏幕: 改完,电脑罢工了,今天上午还蓝屏两次,ASUS, 伤透了我的心- 复现问题, 发现其实是1080P的视频在全屏状态下显示黑屏, 且显示器分辨率刚好是1080P. 并且是GDI显示模式; 又是GDI- 问题解决 GDI显示视频使用的是DrawDi…
EasyPlayer-RTSP windows播放器支持D3D和GDI两种渲染方式,其中D3D支持格式如下: DISPLAY_FORMAT_YV12 DISPLAY_FORMAT_YUY2 DISPLAY_FORMAT_UYVY DISPLAY_FORMAT_A8R8G8B8 DISPLAY_FORMAT_X8R8G8B8 DISPLAY_FORMAT_RGB565 DISPLAY_FORMAT_RGB555 GDI支持格式如下: DISPLAY_FORMAT_RGB24_GDI GDI渲染方式…
远程娃娃机 目前市面上娃娃机的方案有很多种.核心的技术流程就是实现远程直播加上对娃娃机手臂的远程操作.其中最主要的技术还是视频直播方案,需要低延时,视频秒开等流媒体技术. 最简单的直播方案 视频直播方案包括摄像头视频推送到流媒体服务器,播放器从流媒体服务器获取实时视频.流媒体协议又有使用RTSP的,也有使用RTMP方案的.但是由于各大流媒体服务CDN厂商都是RTMP协议,所有直播使用RTMP方案的会比较多.娃娃机内部的摄像头可以直接安装具有RTMP推流功能的摄像头.这样就实现了娃娃机的视频直接推…
下面我们来讲解一下关于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全功能流媒体播放器开发计划中罗列的绝大部分功能,诸如大部分流媒体和媒体文件的支持,单帧播放,快进和慢放,抓图,录像(支持分片)等功能…
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; 当然,在此也郑重的感…
概述 libEasyPlayer实现对RTSP直播流进行实时采集和解码显示,稳定,高效,低延时:解码可采用intel硬件解码和软件解码两种方式,能实时进行录像和快照抓图,OSD叠加等功能. API接口函数定义  int EasyPlayer_Init(); 函数说明: 播放器初始化,播放器使用之前调用: 参数说明:  void EasyPlayer_Release(); 函数说明: 播放器资源释放,播放器不再使用以后调用: 参数说明: int EasyPlayer_OpenStream(c…
EasyPlayerPro-win基础版本的音频播放为单一通道播放,即同一时间仅允许一个通道播放声音,现应客户需求,在基础版本上实现独立的音频播放,即每个通道可同时播放视频和音频; 设计思路 将音频播放类DirectSoundPlayer移到每个播放通道中, 取消之前的音频通道关系判断; 音量控制类保持不变; DirectSoundPlayer 实现 打开音频播放设备 Open(WAVEFORMATEX *pWaveFormatEx); 调用开始播放: 将音频数据写入队列: 播放线程从队列中读取…
EasyPlayerPro主要基于ffmpeg进行开发,在EasyPlayerPro开发过程中,曾遇到一个相对比较棘手的问题,该问题一般在播放不是很标准的流或者网络情况较差,容易出现丢帧的情况特别容易出现: 基本表象在,播放一段时间程序会弹出错误或者崩溃,查代码逻辑根本无法查起,且不易重现(比如,我现在就想重现,也未能重现出来–!后面补上),不过在播放没有音频的rtsp流的时候比较容易出现,报错定位output.c源文件中,应该是字符串格式化输出的时候出错,经过排查,定位到ffmpeg的日志输出…
我使用的xampp 1.修改C:\Windows\System32\drivers\etc中的hosts文件,添加127.0.0.1 www.feiquan.com 2.修改D:\xampp\apache\conf\extra中的httpd-vhosts.conf,添加 <VirtualHost *:> DocumentRoot "网站路径" ServerName www.feiquan.com ErrorLog "logs/www.feiquan.com-err…
使用命令行运行apache目录下的httpd程序,它会提示哪里出错了,修改即可 D:\Program Files (x86)\Apache2.\bin\httpd…
解决步骤如下: 1.开始->运行cmd 2.执行 emctl start dbconsole 输入:C:\Documents and Settings\xcl>emctl start dbconsole      Environment variable ORACLE_SID not defined. Please define it.      提示:环境变量 ORACLE_SID 未定义,请定义.既然没有定义,那就定义一下. 3.设置 ORACLE_SID =ORCL ,其中orcl是or…
EasyPlayer RTSP Windows专用播放器 EasyPlayer RTSP Windows 播放器是由EasyDarwin团队开发和维护的一个完善的RTSP流媒体播放器项目,视频编码支持H.264,H.265,MPEG4,MJPEG,音频支持G711A,G711U,G726,AAC,支持RTSP over TCP/UDP协议,支持软/硬解码,是一套极佳的安防流媒体平台播放组件!EasyPlayer Windows版本经过了很多年的发展和迭代,在很多商业项目中使用,已经非常稳定.完整…
前言 关键字:Vitamio.VPlayer.Android播放器.Android影音.Android开源播放器 本章节把Android万能播放器本地播放的主要功能(缓存播放列表和A-Z快速查询功能)完成,和播放组件关系不大,但用到一些实用的技术,欢迎交流! 声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 系列 1.使用Vitamio打造自己的Android万能播放器(1)——准备…
EasyPlayer作为业界一款比较优秀的RTSP播放器,一直深受用户的好评,经过了近3年的开发和迭代,从一开始的简单PC版本的RTSP播放功能,到如今支持PC(支持ocx插件).Android.iOS全部都已经支持,而且功能越来越丰富,越来越优化,非常适合于安防行业的直播流播放: EasyPlayer项目地址:https://github.com/EasyDarwin/EasyPlayer 近期,经过开源团队成员Sword一周的努力,EasyPlayer RTSP Windows播放器成功支持…
EasyPlayer-RTSP播放器是一套RTSP专用的播放器,包括有:Windows(支持IE插件,npapi插件).Android.iOS三个平台,是由EasyDSS团队开发和维护的区别于市面上大部分的通用播放器,EasyPlayer-RTSP系列从2014年初发展至今得到了各行各业(尤其是安防行业)的广泛应用,其主要原因是EasyPlayer-RTSP更加精炼.更加专注,具备非常低的延时,非常高RTSP协议兼容性,编码数据解析等方面,都有非常大的优势,尤其是在有特殊参数/私有字段的情况下,…
好多开发者提到,RTMP播放器,不知道有哪些对标和考察指标,以下大概聊聊我们的一点经验,感兴趣的,可以关注 github: 1. 低延迟:大多数RTMP的播放都面向直播场景,如果延迟过大,严重影响体验,所以,低延迟是衡量一个好的RTMP播放器非常重要的指标,目前大牛直播SDK的RTMP直播播放延迟比开源播放器更优异(大牛直播SDK延迟在1秒左右,开源播放器如VLC,延迟在5-7秒),而且长时间运行下,大牛直播SDK播放端不会造成延迟累积,开源或第三方播放器,长时间运行,容易产生延迟累积: 部分服…
博客地址:https://ainyi.com/59 写在前面 这是我今年(2018)年初的小项目,当时也是手贱,不想用别的播放器,想着做一个自己的网页播放器,有个歌曲列表.可关键词搜索.歌词滚动播放的效果,于是乎,就做了这一个 Lily_music 当时的感慨 有好几天没有发表博客了,这也是因为一直开发音乐和完善我的博客项目,好不容易抽出时间总结一下这几天所做的东西,还这么多课,实则匆忙 今天难得逃了一次课,就趁这时间,该写写就写写吧~~ 进入正题:Lily_music 本次开发,参照本人之前所…
Potplayer 是高清影视常用的播放器,界面简洁,功能齐全,比 MPC-HC 和 MPC-BE 更人性化:但其默认方案十分糟糕,预设过多错误,无法正确播放 10-bit 视频,一直饱受诟病.VCB-Stuido 以往发布的数篇高清教程大多偏重于 madVR,在 PotPlayer 的设置方面有些错漏.为了广大观众能正确.便捷地用 PotPlayer 享受高清影视,我们为大家带来一篇基于 PotPlayer 的高清影视全套 64-bit 工具链完整配置图文详解教程. 本教程花大力气调整 Pot…
代码地址如下:http://www.demodashi.com/demo/11944.html 天道酬勤 前言 作为一名iOS开发者,每当使用APP的时候,总难免会情不自禁的去想想,这个怎么做的?该怎么实现呢?很久之前,就想写一个关于音乐方面的播放器,最近刚好得空,就趁机摸索着写了下,写的不好,还望多多指教. 前提准备 为了能够有明确的思路来做这个demo,我下载了QQ音乐和网易云音乐,然后分别对比,最终选择了QQ音乐来参照,先是获取了其中的所有资源文件,在这之后就是研究使用技术,这里我选择了F…