现在位置: 首页 > 开源
实时音视频的开发学习有很多可以参考的开源项目。一个实时音视频应用共包括几个环节:采集、编码、前后处理、传输、解码、缓冲、渲染等很多环节。每一个细分环节,还有更细分的技术模块。比如,前后处理环节有美颜、滤镜、回声消除、噪声抑制等,采集有麦克风阵列等,编解码有VP8、VP9、H.264、H.265等。 我们今天汇总了一些能帮助到正在学习或进行音视频开发的实时音视频开发者们的开源项目与几个也在为开源社区贡献力量的商业...
阅读全文
2019-09-05 17:55 工业·编程 ⁄ 共 419字 暂无评论
libwebsockets增加ssl支持很简单,只需要在创建服务器时增加必要的信息就可以了。 一般来说只需要增加以下几行即可     struct lws_context_creation_info info;     ...     /*证书的路径*/     info.ssl_cert_filepath = "xxx";     /*私钥的路径*/     info.ssl_private_key_filepath = "xxx&...
阅读全文
实现websocket服务器本身也是libwebsockets库的初衷,本篇博客将介绍如何利用libwebsockets库来实现一个简单的ws服务器。 1、添加websocket协议 这里创建服务器句柄的流程与http一致,需要修改的地方只有在创建服务器时传入的协议数组,即     struct lws_context_creation_info info;     struct lws_context *context;     static struct lws_protocols protocols[] = &...
阅读全文
根据官方的说明来看,从2.0版本起,http协议的服务器已经自动集成在库中,不需要我们自己去实现。下面介绍如何使用库去实现http服务器。 1、填充服务器创建需要的参数 lws_context_creation_info是创建服务器句柄时用来定制服务器信息的结构体,所以我们首先需要填充该结构体。该结构体的定义如下。 /*这里只列出我们常用的成员,注释很详细,不做过多解释*/ struct lws_context_creation_info {     int port; ...
阅读全文
2019-09-02 17:45 工业·编程 ⁄ 共 936字 暂无评论
libwebsockets是一款轻量级用来开发服务器和客户端的C库。按照官方(https://libwebsockets.org/)给出的介绍来看,它不仅支持ws,wss还同时支持http与https,可以轻轻松松结合openssl等库来实现ssl加密。OK,本文将介绍如何下载使用功能这么强大的库。 下载 git clone https://github.com/warmcat/libwebsockets.git 编译 为了可以进行多平台编译,websockets项目采用CMake作为编译工具,所以如果机器上没有CMake需要去安装CMa...
阅读全文
2019-08-30 17:03 工业·编程 ⁄ 共 3213字 暂无评论
WebSocket 是 HTML5 的一个引入注目的特性,它通常用于 Web 端,为构建实时的 Web 应用提供方便。WebSocket 是一个基于 TCP 的协议,它借助于 HTTP 请求,建立客户端与服务器端之间的双向通道,通道建立完成后,客户端和服务器端都可以通过这条通道方便地收发消息,因而 WebSocket 一向有着 “Web 的 TCP” 之称。 WebSocket 不是 JavaScript 的一个接口,而是一个定义良好的基于消息的协议。得益于不同平台对于 WebSocket 协议的...
阅读全文
2019-08-29 15:53 工业·编程 ⁄ 共 6076字 暂无评论
本文对几种开源的流媒体服务器做对比。 1 概念 1.1 RTP 实时传输协议(Real-time Transport Protocol或简写RTP)是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的。 RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。它一开始被设计为一个多播协议,但后来被用在很多单播应用中。RTP协议常用于流媒体系统(配合RTSP协议),视频会议和一键通(Push to Talk)系统(配合H.323或SIP),...
阅读全文
2019-08-21 12:06 工业·编程 ⁄ 共 209字 暂无评论
流媒体解决方案 Live555 (C++) 流媒体平台框架 EasyDarwin (C++,国产精品) 实时流媒体播放服务器程序DarwinStreamingSrvr (C++) Flash流媒体服务器 Red5 (Java) 流媒体服务器 Open Streaming Server (Java) FMS流媒体服务器 (Adobe,收费的) Wowza流媒体服务器(Java) 开源流媒体平台FreeCast(Java) 最后补充一个 Ngix+RTMP插件
阅读全文
2019-08-12 07:50 工业·编程 ⁄ 共 479字 暂无评论
针对GitHub上的几个几个C++ Restful库做了一个系统的对比: Restful库 98%请求中的最大时间(越小越好) 每秒平均处理的请求数(越大越好) Sample代码的行数 C++ : cpprestsdk / default JSON implementation 51 30.70 48 C++ : cpprestsdk / RapidJSON 44 47.06 47 C++ : restbed 7 224.18 39 C++ : pistache 6 319.99 40 PHP : Native implementation 10 146.95 14 表格中第二列和第三列是性能指标,第四...
阅读全文
2019-08-03 07:44 工业·编程 ⁄ 共 11523字 暂无评论
2. Poco日志的实现 2.1 日志模块应该实现的业务 在讨论日志的实现之前,先来聊一下日志模块应该实现那些业务。日志的业务说简单可以很简单,就是输出记录。说复杂也复杂,来看它的复杂性: 首先,日志的输出对象是不同的,有控制台输出,本地文件输出,网络文件输出,输出到系统日志等。假如是网络日志,日志库中其实还会包含网络模块,真是越来越复杂了。 第二,日志输出的格式和内容。不同用户关心的内容和喜欢的输出格式是不...
阅读全文