C++/GO/多媒体方向
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多路解碼
https://github.com/ithewei/hplayer/tree/master/src基于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編譯
https://github.com/shiguredo/sora-webrtc-buildwebrtc_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
from:https://www.jianshu.com/p/ed6166936246
總結
以上是生活随笔為你收集整理的C++/GO/多媒体方向的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FFMPEG命令行处理视频进阶——高阶必
- 下一篇: ubuntu安装http server