文件名称:bbllive:rtmp实时流服务器
文件大小:38KB
文件格式:ZIP
更新时间:2024-03-16 03:11:57
Go
bbllive 支持rtmp协议流媒体服务器,初步测试30000+,供学习用go写高并发高级程序的同学参考go1.6 + 思想 通过消息通知共享数据,锁的消耗没想象的那么大 对象数量,减少垃圾收集 减少系统调用,通过数据包合并一次尝试发送多帧,本程序以GOP对齐后一次发送 减少对象复制,本程序没有彻底实现,应该还有优化空间 还可以优化的地方 读消息时一次系统调用可以读取更多消息 减少数据包复制,可以通过引用计数实现 可能哪里还有些内存泄漏 测试环境: 2颗E5-2650 v2,64G内存,单机测试(因为没有万兆网络环境) 推流工具xsplit2.7,关键帧间隔2秒,混合码流900kbps,CBR 负载工具srs-bench / sb_rtmp_load_fast 每次5000并发,共跑6个sb_rtmp_load_fast进程,每进程占用100% 因为是本机测试,所以软中断和负载程序
【文件预览】:
bbllive-master
----rtmp()
--------rtmp_netstream.go(15KB)
--------rtmp_stream_obj.go(7KB)
--------rtmp_handshake.go(8KB)
--------rtmp_amf.go(8KB)
--------rtmp_server.go(4KB)
--------client.go(971B)
--------rtmp_socket.go(26KB)
--------application.go(585B)
--------rtmp_writer.go(1KB)
--------rtmp_chunker.go(7KB)
--------rtmp_new_agent.go(6KB)
--------rtmp_msg.go(52KB)
--------rtmp.go(3KB)
--------rtmp_handler.go(3KB)
----hls()
--------rtmp_ts_writer.go(2KB)
----LICENSE(1KB)
----bbllive()
--------main.go(604B)
----config.go(1KB)
----.gitignore(266B)
----README.md(15KB)
----util()
--------filelogger.go(2KB)
--------util.go(4KB)
----getting-started.md(21B)
----codec()
--------h264.go(2KB)