项目简介
本项目基于Linux/MacOS平台,利用C语言通过RTP(实时传输协议)实现了一个视频流服务器。它可发送携带H.264/HEVC媒体类型的RTP视频流。参考ffmpeg代码,能读取H.264裸流文件,查找NAL单元起始码获取完整NALU,根据NALU长度选择合适的RTP打包类型并组装RTP头部信息,最终将视频流发送到指定IP和端口。
项目的主要特性和功能
- 支持H.264视频格式实时传输,未来将支持HEVC。
- 采用RTP协议进行数据传输,适用于网络环境下的视频流传输。
- 可依据NALU长度选择单NALU分组、聚合分组、分片分组三种RTP打包类型。
- 提供使用FFmpeg/ffplay和VLC作为RTP客户端接收并播放视频流的方法。
安装使用步骤
安装步骤
假设用户已下载本项目的源码文件,且系统已安装C语言开发环境(如GCC编译器)和必要的库(如socket库)。在项目目录下打开终端,编译源代码。
使用步骤
服务器端
运行示例程序,该程序会读取Sample.h264
裸流文件,将其封装为RTP包后发送到本机1234端口。
客户端
使用FFmpeg/ffplay
1. 发送视频文件作为RTP服务器:
sh
ffmpeg -re -i Sample.h264 -vcodec copy -f rtp rtp://127.0.0.1:1234 > play.sdp
2. 播放RTP视频流:
sh
ffplay -protocol_whitelist "file,rtp,udp" play.sdp
使用VLC
在运行RTPServer之前,使用VLC打开play.sdp
文件。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】