C/C++Linux服务器开发/高级架构师
https://ke.qq.com/course/417774?taid=3559187859005422
2019年最新总结,从程序员到CTO,从专业走向卓越,大牛分享文档pdf与PPT整理
整理大牛分享文档如下,持续更新一线开发架构,技术文档
下载地址:https://github.com/0voice/from_coder_to_expert
博客
iOS WebRTC语音视频通话实现与demo
https://blog.csdn.net/qq_35316446/article/details/70160326Dale工作学习笔记 linux服务器开发
Dale工作学习笔记流媒体: FFmpeg专项
https://blog.csdn.net/fireroll/article/category/565707Qt界面开发(各种控件以及图表)
https://blog.csdn.net/ZhangXiaoyu_sy/article/details/78925221FFMPEG命令行处理视频进阶——高阶必读
https://blog.csdn.net/zhangamxqun/article/details/80295833FFMpeg 滤镜中英文对照
http://www.it610.com/article/3656074.htm基于socket.io即时通讯IM实现,webRTC实现视频通话
https://blog.csdn.net/foxPower/article/details/77990490结合 AppRTC(IOS移动端) 源码分析 WebRTC 建立连接的过程
https://juejin.im/entry/5c7a86995188251a006ad790前端开发
技术胖 专注于前端开发
webrtc
-
iOS基于Socket.io即时通讯IM实现,WebRTC实现视频通话
https://www.jianshu.com/p/686c4bf6df3f
多媒体相关
播放器
GSYVideoPlayer
Android播放器,功能非常强大
https://github.com/CarGuo/GSYVideoPlayer
视频播放器(IJKplayer、ExoPlayer、MediaPlayer),HTTPS支持,支持弹幕,支持滤镜、水印、gif截图,片头广告、中间广告,多个同时播放,支持基本的拖动,声音、亮度调节,支持边播边缓存,支持视频本身自带rotation的旋转(90,270之类),重力旋转与手动旋转的同步支持,支持列表播放 ,直接添加控件为封面,列表全屏动画,视频加载速度,列表小窗口支持拖动,动画效果,调整比例,多分辨率切换,支持切换播放器,进度条小窗口预览,列表切换详情页面无缝播放,其他一些小动画效果,rtsp、concat、mpegvideo
用ffmpeg封装demuxer,muxer,decoder,encoder
https://github.com/qflow/videomp4-sip-rtsp-rtmp
支持的协议非常多,具体目录:mp4-sip-rtsp-rtmp/tree/master/app/src/main/cpp/libstreamProtocol-android
https://github.com/qingfuliao/mp4-sip-rtsp-rtmpmyRtspClient
myRTSPClient是一个轻量级的RTSP客户端C++函数库。
支持多平台,支持H264,H265,MPA等音视频传输。
https://github.com/Ansersion/myRtspClientflvpusher
A tool for pushing flv/mp4/ts/rtmp/rtsp/hls source to rtmp/rtspserver.
https://github.com/dengxiayehu/flvpusher
流媒体服务器
-
pion各种go相关的流媒体开发,主要是WebRTC
The Open Source, Cross Platform Stack for Real-time Media and Data Communication
https://github.com/pion
v4l2rtspserver
RTSP Server for V4L2 device capture supporting HEVC/H264/JPEG/VP8/VP9
https://github.com/mpromonet/v4l2rtspserverlivego
Go写的rtmp、http、hls流媒体服务器
https://github.com/gwuhaolin/livego-
ZLMediaKit
https://github.com/xiongziliang/ZLMediaKit- 基于C++11开发,避免使用裸指针,代码稳定可靠;同时跨平台移植简单方 便,代码清晰简洁。
- 打包多种流媒体协议(RTSP/RTMP/HLS),支持协议间的互相转换,提供一站式的服务。
- 使用epoll+线程池+异步网络IO模式开发,并发性能优越。
- 已实现主流的的H264/H265+AAC流媒体方案,代码精简,脉络清晰,适合学习。
- 编码格式与框架代码解耦,方便自由简洁的添加支持其他编码格式
- 代码经过大量的稳定性、性能测试,可满足商用服务器项目。
- 支持linux、macos、ios、android、windows平台
- 支持画面秒开(GOP缓存)、极低延时(1秒内)
webrtc
AppRTC
WebRTC官方demo
https://github.com/webrtc/apprtcWebRTC-Experiment
各种WebRTC相关的范例
https://github.com/muaz-khan/WebRTC-Experimentwebrtc_android
sky p2p metting是基于webrtc开发的一套可以进行单路或者多路语音、视频的系统。高仿微信九宫格显示,最多可支持 9 路视频。
https://github.com/ddssingsong/webrtc_androidEasyRTC
A bundle of Open Source WebRTC joy!
https://github.com/priologic/easyrtc-
media-server-go
功能强大,想使用go设计WebRTC SFU的同学可以深入研究下。
WebRTC media server for go
https://github.com/notedit/media-server-go
支持:- WebRTC-Broadcast: WebRTC publish and play
- Raw-RTP-Input: Send raw rtp data into webrtc
- WebRTC-Record: WebRTC record
- RTMP-To-WebRTC: Rtmp to webrtc
- Server-To-Server: WebRTC server relay
- WebRTC-To-RTMP: WebRTC to rtmp
- WebRTC-To-HLS: WebRTC to hls
- MP4 multitrack recording support for all WebRTC codecs: H264,VP8,VP9, OPUS and PCMU/A.
- VP9 SVC layer selection
- Simulcast with temporal layer selection
- RTP transport wide congestion control
- Sender side BitRate estimation
- Flex FEC draft 3
- NACK and RTX support
- [RTCP reduced size] (https://tools.ietf.org/html/rfc5506)
- Bundle
- ICE lite
WebRTC统计
Chrome支持良好,Edge、Firefox支持度一般
https://github.com/muaz-khan/getStatslaravel-video-chat
没实际使用,不清楚效果怎么样
Laravel Video Chat using Socket.IO and WebRTC
laravel-video-chatRTCMultiConnection
多人通话范例
https://github.com/muaz-khan/RTCMultiConnectionIOS webrtc eVisit-cordova-meetRTC参考
https://github.com/spacewideweb/eVisit-cordova-meetRTC/tree/master/eVisit-master/MeetRTC
即时通讯
go
-
Terry-Mao/goim 是一个支持集群的im及实时推送服务。
https://github.com/Terry-Mao/goim- 轻量级
- 高性能
- 纯Golang实现
- 支持单个、多个、单房间以及广播消息推送
- 支持单个Key多个订阅者(可限制订阅者最大人数)
- 心跳支持(应用心跳和tcp、keepalive)
- 支持安全验证(未授权用户不能订阅)
- 多协议支持(websocket,tcp)
- 可拓扑的架构(job、logic模块可动态无限扩展)
- 基于Kafka做异步消息推送
-
im_service
https://github.com/GoBelieveIO/im_service
官方QQ群:450359487,加群请附加说明信息。- 支持点对点消息, 群组消息, 聊天室消息
- 支持集群部署
- 单机支持50w用户在线
- 单机处理消息5000条/s
- 支持超大群组(3000人)
im
较为适合入门的IM程序
https://github.com/Terry-Ye/imgoim
有框架设计图
https://github.com/alberliu/goim
goim是一个即时通讯服务器,代码全部使用golang完成,功能包含好友之间一对一聊天,群组聊天,支持单用户多设备同时在线,就像微信一样,当你同时使用两个设备登录账号时,两个设备可以都可以接收到消息,当你用一个设备发送消息时,另一个设备也能收到你发送的消息。目前已经更新到1.1.0版版本,1.1.0版本主要实现了logic层和connect层的服务拆分,虽然现在距离生产环境使用还有一定的差距,但是会不断完善,使其可以用于生产环境。
测试api:https://documenter.getpostman.com/view/4164957/RzZ4q2hJ?version=latest#eeba83e9-e67c-44e2-8164-5d824dddd53eGo语言非官方开源telegram服务端
https://github.com/nebulaim/telegramdFishChatServer2 聊天
https://github.com/oikomi/FishChatServer2
node.js
-
Vchat
体验账号:10001793 密码:123456
https://github.com/wuyawei/Vchat
【从头到脚】撸一个社交聊天系统(vue + node + mongodb)
c++
-
TeamTalk
TeamTalk是一款蘑菇街开源的企业内部即时通讯软件,目前支持pc、安卓、IOS、Mac和web多个终端,这是各个版本的代码和部署脚本。
https://github.com/balloonwj/TeamTalk
监控
开源监控利器grafana
https://github.com/grafana/grafanaCAT 简介
https://github.com/dianping/cat
CAT 是基于 Java 开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务。
CAT 作为服务端项目基础组件,提供了 Java, C/C++, Node.js, Python, Go 等多语言客户端,已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。
CAT 很大的优势是它是一个实时系统,CAT 大部分系统是分钟级统计,但是从数据生成到服务端处理结束是秒级别,秒级定义是48分钟40秒,基本上看到48分钟38秒数据,整体报表的统计粒度是分钟级;第二个优势,监控数据是全量统计,客户端预计算;链路数据是采样计算。
网关
go
- Gateway
是一个基于HTTP协议的restful的API网关。可以作为统一的API接入层。
https://github.com/fagongzi/gateway- 流量控制(Server或API级别)
- 熔断(Server或API级别)
- 负载均衡
- 服务发现
- 插件机制
- 路由(分流,复制流量)
- API 聚合
- 等等等等............
模块组件
go
-
websocket
https://github.com/gorilla/websocket -
cellnet
cellnet是一个组件化、高扩展性、高性能的开源服务器网络库
https://github.com/davyxu/cellnet
C++
-
A C++ High Performance Web Server
https://github.com/linyacool/WebServer
工具
-
蓝灯
访问国外的软件
https://github.com/getlantern/download