高RTSP兼容RTSP播放器网页无插件流媒体播放器EasyPlayer-RTSP-Win64位代码编译升级调试过程介绍

本文主要是介绍高RTSP兼容RTSP播放器网页无插件流媒体播放器EasyPlayer-RTSP-Win64位代码编译升级调试过程介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大多数RTSP的播放都面向直播场景,如果延迟过大会严重影响体验。所以,低延迟是衡量一个好的RTSP播放器非常重要的指标,目前大牛直播SDK的RTSP播放延迟控制在几百毫秒,VLC在几秒。

除了H.264,还需要支持H.265,目前市面上的RTSP H.265摄像头越来越多,支持H.265的RTSP播放器迫在眉睫,此外,单纯的播放H.265还不够,还需要可以能把H.265的数据能录制下来。

EasyPlayerRTSP.png

EasyPlayer-RTSP-Win64位代码编译升级

大牛直播SDKRTSP播放器EasyPlayer-RTSP-Win支持多路拉流播放,而拉流解码的过程需要占用系统资源,而我们都知道32位程序最多只能利用4G的内存,而现在动则8G,16G的内存空间是完全不能被利用的;所以,为了充分利用内存资源,EasyPlayer-RTSP-Win也将会升级到64位版本。

1.新建64位编译平台

51.jpg

所有依赖库编译成64位
1> gpac库编译64位
官网下载gpac源码,通过cmake生成对应的VS版本,然后编译64位平台即可;
2> libEasyAACEncoder库编译64位
3> ffmpeg编译64位
ffmpeg可从官网下载源码,通过交叉编译或者cmake编译64位;
4> IntelHardCodec编译64位
5> SaveJPGDll库编译64位
6> FFDecoder编译64位
7> D3DRender编译64位
这里郑重感谢Gavin大神百忙之中抽出时间帮忙编译64位版本库;
8> EasyRTSPClient编译64位

2.程序编译64位并兼容32位调试
程序编译很简单,指定编译平台,然后附加对应平台的依赖项的头文件和库文件即可;
通过本次编译64位版本,遇到的几个问题及注意事项:
(1)程序依赖的DLL库编译64位的通过要注意其所依赖的库(系统的或者第三方的)都要编译的64位支持;
(2)如果没有源码,由第三方提供的库,如果需要兼容编译,可以通过宏定义的方式解决,如:

	
#ifdef _WIN64
#include "D3DRender\include\x64\D3DRenderAPI.h"#pragma comment(lib, "EasyRTSPClient/lib/x64/libEasyRTSPClient.lib")
#pragma comment(lib, "FFDecoder/lib/x64/EasyDecoder.lib")
#pragma comment(lib, "./D3DRender/lib/x64/D3DRender.lib")
#pragma comment(lib, "IntelHardCodec/lib/x64/IntelHardCodec.lib")
#pragma comment(lib, "libEasyAACEncoder/lib/x64/libEasyAACEncoder.lib")
// 增加MP4box和SaveJPG库的支持 [9/20/2016 dingshuai]
// JPGSave
#pragma comment(lib, "SaveJPGDll/lib/x64/SaveJpgDll.lib")#else
#include "D3DRender\include\x86\D3DRenderAPI.h"#pragma comment(lib, "EasyRTSPClient/lib/x86/libEasyRTSPClient.lib")
#pragma comment(lib, "FFDecoder/lib/x86/EasyDecoder.lib")
#pragma comment(lib, "D3DRender/lib/x86/D3DRender.lib")
#pragma comment(lib, "IntelHardCodec/lib/x86/IntelHardCodec.lib")
#pragma comment(lib, "libEasyAACEncoder/lib/x86/libEasyAACEncoder.lib")
#endif

目前x64的系统已广泛使用,未来主流程序都应该是64位的,为了充分利用内存资源,也建议大家都将目前的32位程序升级成64位;最新兼容64和32位的EasyPlayer-RTSP-Win将在近期发布。

本文转自:https://www.jianshu.com/p/3902dbc36b9d

这篇关于高RTSP兼容RTSP播放器网页无插件流媒体播放器EasyPlayer-RTSP-Win64位代码编译升级调试过程介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/930882

相关文章

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

PLsql Oracle 下载安装图文过程详解

《PLsqlOracle下载安装图文过程详解》PL/SQLDeveloper是一款用于开发Oracle数据库的集成开发环境,可以通过官网下载安装配置,并通过配置tnsnames.ora文件及环境变... 目录一、PL/SQL Developer 简介二、PL/SQL Developer 安装及配置详解1.下

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程

《在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程》本文介绍了在Java中使用ModelMapper库简化Shapefile属性转JavaBean的过程,对比... 目录前言一、原始的处理办法1、使用Set方法来转换2、使用构造方法转换二、基于ModelMapper