1.2024年 C++音视频开发学习路线(ffmpeg/rtsp/srs/webrtc/hls)
2.SRS(simple-rtmp-server)流媒体服务器源码分析--RTMP消息play
3.SRS4.0源代码分析之WebRTC服务总体介绍
4.分析流媒体服务器源码:Rtmp发布流程的码学SRS解析
5.CentOS7下使用SRS搭建流媒体服务器
6.用SRS搭建WebRTC流媒体服务器实战
2024年 C++音视频开发学习路线(ffmpeg/rtsp/srs/webrtc/hls)
音视频工作领域繁复多样,自学时易陷入迷茫。码学本文整理出九个前景不错的码学方向:直播、传输、码学算法、码学视频播放器、码学经纬查询源码流媒体后端、码学短视频、码学音频播放、码学视频编辑、码学图像处理。码学以下为详细学习路线: 音视频基础音频基础知识
视频基础知识
解复用基础知识
FFmpeg开发环境搭建
音视频开发常用工具
FFmpeg实战教程FFmpeg命令
SDL跨平台
FFmpeg基石精讲
FFmpeg过滤器
FFmpeg音视频解复用+解码
ffplay播放器
FFmpeg音视频编码+复用合成视频
ffmpeg多媒体
FFmpeg+ QT播放器
流媒体客户端RTMP推拉流项目实战
RTSP流媒体实战
HLS拉流分析
流媒体服务器SRS源码剖析协程
ZLMediaKit源码剖析
WebRTC项目实战WebRTC中级开发实践指南
WebRTC高级开发-SRS 4.0/5.0源码分析
WebRTC高级开发-MESH模型多人通话
WebRTC高级开发-Janus SFU模型多人通话
Android NDKAndroid NDK开发基础
Android FFmpeg编译和应用
Android RTMP推拉流
Android Ijkplayer源码分析
iOS音视频开发iOS FFmpeg 6.0编译和应用
iOS FFmpeg RTMP推拉流
VideoToolbox硬件编解码
iOS jkplayer编译和应用
iOS ijkplayer编译和应用
音视频项目实战 相关开源网站与地址 本文涵盖音视频全栈开发技术,码学适合各类技术人员。码学SRS(simple-rtmp-server)流媒体服务器源码分析--RTMP消息play
本章内容梳理了SRS在接收到RTMP信息后如何进行转发的码学过程。在此过程中,码学首先进行代码梳理,作者也在源码熟悉阶段,可能尚未完全梳理完接受到RTMP后信息如何处理、缓存以及转发给直播用户等内容。
SRS源码中的Play流程如下:
1. 进入play流程:本章内容直接从SrsRtmpConn::stream_service_cycle()方法开始梳理。
2. 在接受流程中,源码10110100客户类型为SrsRtmpConnFMLEPublish “fmle publish”,而在转发流程中,客户类型为SrsRtmpConnPlay。
3. 在/s/1x5DyST...(提取码:epxx)
参考网站与资源:
GitHub:ossrs/srs(SRS 源码)
SRS 官网:ossrs.net/(SRS 官方网站)
GitHub Wiki:ossrs/srs/wi...(SRS 起步知识与文档)
SRS:如何用 NGINX 搭建 HLS 分发集群(链接:qq.com)(关于使用 NGINX 与 SRS 集成搭建 HLS 分发集群的教程)
下载 ffmpeg 官方地址:ffmpeg.org/download.htm...(官方 ffmpeg 下载页面)
1、准备工作与环境搭建(使用 root 用户执行):
1.1、安装 CentOS 基础依赖环境
1.2、关闭与禁用防火墙(避免重启服务器后自动开启)
1.3、将 ffmpeg、yasm 和 kk.flv 等文件拷贝至 CentOS 主目录下(使用主目录作为存储位置)
1.4、安装 yasm 编译器
1.5、安装 ffmpeg
1.6、修改 /etc/ld.so.conf 文件
1.7、配置环境变量
1.8、检查环境变量配置是否生效
1.9、Windows 下安装 VLC 和 OBS 播放器
2、SRS 流媒体服务搭建:
2.1、获取 SRS 源码:
- 通过官网下载
- 通过 GitHub 使用**软件下载(推荐)
- 在国内码云使用 gitee.com/ossrs/srs 下载(推荐)
2.2、配置与编译 SRS:
2.3、查看 SRS 配置文件与支持的协议配置(参考 SRS 官方 Wiki)
2.4、启动与关闭 SRS 服务
2.5、注销源码通过网页控制台查看 SRS 状态
3、流媒体服务测试:
3.1、使用 ffmpeg 进行 RTMP 推流测试(注意替换实际值)
3.2、RTMP、HTTP-FLV、HLS 拉流地址获取与测试(VLC 或网页 SRS 播放器)
3.3、使用 OBS 播放器进行推流测试(文件推流、摄像头推流与更多推流方式)
4、扩展与学习资源:
4.1、Windows 下搭建 nginx-rtmp 流媒体服务器(参考教程)
4.2、深入学习 SRS 相关知识与技巧(访问 GitHub Wiki 或 SRS 官方网站)
用SRS搭建WebRTC流媒体服务器实战
WebRTC协议因其成熟性和稳定性,成为流媒体技术中的重要一环。然而,市面上基于WebRTC的高性能流媒体服务器项目相对稀缺。当前的流媒体服务器如Mediasoup、Janus、Medooze等,虽然功能丰富,但也存在部署复杂、接入成本高或性能欠佳等问题。影子源码SRS(Stream Router Server)以其专注于视频服务、专一功能、高效C++编程语言及支持多种媒体转换的强大特性,成为构建高性能流媒体服务器的优选。
安装与配置SRS主要涉及源码编译与运行,通过特定命令启用RTC支持。常用SRS命令用于管理和优化服务器性能。对于浏览器推流场景,建议配置nginx代理,确保HTTPS协议的使用。配置示例中提及了自定义域名与证书的设置。C++音视频开发学习资源提供了深入的FFmpeg/WebRTC/RTMP等技术的指导,覆盖音视频开发、大厂面试题、FFmpeg等主题。
搭建流程相对直观,从源码编译到运行、配置nginx,再到推流与拉流的实现,最终通过访问配置的ones 源码域名或浏览器推流链接测试服务端的搭建情况。推流与拉流链接提供了直观的访问入口,确保服务端成功运行。
总结与反思,虽然整体流程简洁明了,但官网文档中的知识点相对分散,搭建过程中可能需要额外的整合与理解。参考此篇文章,有助于快速搭建WebRTC流媒体服务器,实现高效、稳定的音视频传输。
FFmpeg开发笔记(三十六)Linux环境安装SRS实现视频直播推流
在FFmpeg开发实践中,MediaMTX虽然在《FFmpeg开发实战》一书的第章有所提及,但其功能过于基础,不适合实际的直播生产环境。真正的生产级流媒体服务器,如SRS和ZLMediaKit,更为可靠。SRS作为一款国产开源的实时视频服务器,支持RTMP、WebRTC等多种协议,是推流(发布)和播放(订阅)服务器模型的典型代表,能处理协议转换,如将RTMP转为HLS、WebRTC等。
要测试SRS与FFmpeg的音视频推拉流,首先在华为欧拉系统上进行编译安装。首先,确保Linux服务器上安装了必要的依赖,如git和patch,然后从gitee下载SRS源码并进行配置和编译。FFmpeg的编译安装步骤可以参考《FFmpeg开发实战》中的相关章节,这里不再详述。
启动SRS时,需要配置srs.conf文件,开启关键帧缓存,这对于画面渲染至关重要。随后,通过命令行启动SRS服务,并检查(RTMP)和(HTTP)端口是否开启。测试推流时,使用FFmpeg将本地视频推送到SRS,同时用VLC播放器通过RTMP或HTTP协议拉流验证视频是否正常播放。
总之,SRS与FFmpeg的集成是实现视频直播推流的重要步骤,通过上述操作,开发者可以充分了解和实践这一过程。更多关于FFmpeg的开发内容,可以参考《FFmpeg开发实战》这本书。
SRS(simple-rtmp-server)流媒体服务器源码分析--启动
小卒最近探索了SRS源码,并撰写博客以整理思路,方便日后查阅。SRS源码具备以下优势:
1、轻量化设计,代码结构清晰,SRS3.0版本代码量约为8万行,功能却足以支撑直播业务。
2、采用State Threads架构,实现高性能、高并发。
3、支持rtmp和hls,满足PC和移动直播的需求。
4、支持集群部署,适应不同规模的部署需求。
代码分析分为两个阶段:一、梳理代码框架,理解流程;二、深入细节,熟悉SRS工作原理。
SRS源码框架包括系统启动、RTMP消息处理、RTMP信息发布、HLS切片等功能模块。系统启动时,初始化类,监听端口,对每个访问请求创建线程,专门处理连接操作。
系统监听包含不同类型的请求,如RTMP连接、HTTP API等,通过创建线程处理。
RTMP连接处理中,SRS采用协程而非线程,实现高效并发。创建协程后,进入协程循环处理。
HTTP API连接监听机制与RTMP类似,仅参数不同。
HTTP API回调接口在run_master函数中注册,允许访问服务器参数。
SRS对拉流处理独特,通过ffmpeg工具实现,SRS代码负责简单的系统调用。
系统启动代码结构清晰,从初始化、监听到线程处理,再到回调注册、拉流处理、自服务,各环节紧密衔接。
总结SRS源码分析,不仅展现了代码的高效性和扩展性,还提供了灵活的部署方案,适用于多种直播场景。
SRS流媒体服务器——单机环境搭建和源码目录介绍
启动srs
2. 显示日志信息
3. 确认srs是否正常启动
4. 安全退出正在运行的srs
5. 默认后台启动,调试需修改配置文件为前台
相关视频推荐
SRS-RTMP-WebRTC流媒体服务器入门
全球Star第一的流媒体服务器SRS4.0 WebRTC音视频通话分析
SRS流媒体服务器架构设计及源码分析
免费FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发免费学习地址
纯干货免费分享C++音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击 加群免费领取哦~
源码目录介绍
1. trunk目录
2. src下的源码
3. app
4. core
5. kernel 音视频格式相关
6. libs
7. main
8. protocol 流媒体协议相关
9. service
. utest
. 八个目录,二百零三个文件