# stream_media_study **Repository Path**: suhuamo/stream_media_study ## Basic Information - **Project Name**: stream_media_study - **Description**: 流媒体学习 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-30 - **Last Updated**: 2025-08-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 流媒体协议学习项目 本项目实现了多种常见流媒体协议的基础功能,包括 RTMP、RTSP、HLS 和 HTTP-FLV。适用于学习流媒体传输原理及协议实现细节。 ## 目录结构 - `rtmp/` RTMP 协议实现 - `rtsp/` RTSP 协议实现 - `hls/` HLS 协议实现 - `http_flv/` HTTP-FLV 协议实现 ## 协议实现说明 ### RTMP 位于 `rtmp/` 目录下,实现了 RTMP 协议的基础交互,包括: - 消息头解析与构造 - AMF0 编码/解码 - 客户端连接处理 - 视频流传输基础功能 ### RTSP 位于 `rtsp/` 目录下,实现了基础 RTSP 服务器功能,支持: - TCP/UDP 套接字操作 - RTP 数据包发送 - 处理 OPTIONS, DESCRIBE, SETUP, PLAY 等命令 - H264 与 AAC 流媒体传输 ### HLS 位于 `hls/` 目录下,包含一个简单的 HLS 播放页面,展示了如何通过 HTTP 传输分片的视频流。 ### HTTP-FLV 位于 `http_flv/` 目录下,实现了通过 HTTP 传输 FLV 格式视频流的客户端处理逻辑。 ## 使用方法 每个协议目录包含一个 `main.cpp` 文件,可编译为独立的服务器程序。HTML 文件可用于在浏览器中播放流媒体。 ## 编译方法 每个子目录包含自己的 `CMakeLists.txt` 文件,可以使用 CMake 编译对应的协议实现。 ## 注意事项 - 本项目主要用于学习目的,可能不适用于生产环境 - 需要根据实际需求完善错误处理和功能实现 - 依赖第三方库需自行配置 ## 贡献指南 欢迎提交 Pull Request 来完善协议实现、增加功能或改进文档。请确保代码风格与现有代码一致。