RTSP系列四:RTSP Server/Client实战项目

RTSP系列:

RTSP系列一:RTSP协议介绍-CSDN博客

RTSP系列二:RTSP协议鉴权-CSDN博客

RTSP系列三:RTP协议介绍-CSDN博客

RTSP系列四:RTSP Server/Client实战项目-CSDN博客

目录

[一、RTSP Server实战项目](#一、RTSP Server实战项目)

1、准备

2、simple-rtsp-server下载编译

3、运行

4、拉流测试

[二、RTSP Client实战项目](#二、RTSP Client实战项目)

1、编译

2、测试


一、RTSP Server实战项目

地址:https://github.com/BreakingY/simple-rtsp-server

使用epoll,支持RTP OVER UDP、RTP OVER TCP,支持H264/H265、AAC/PCMA、支持鉴权。

1、准备

simple-rtsp-server依赖ffmpeg,版本要求>=4.x。支持系统:Linux

依赖安装:

复制代码
sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev libsdl2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev

汇编库:
sudo apt-get install yasm
sudo apt-get install nasm
 
视频库:
sudo apt-get install libx264-dev
sudo apt-get install libx265-dev
 
音频库:
sudo apt-get install libfdk-aac-dev
sudo apt-get install libmp3lame-dev
sudo apt-get install libopus-dev

ffmpeg源码下载:

复制代码
wget https://ffmpeg.org//releases/ffmpeg-4.0.5.tar.bz2
 
tar xjvf ffmpeg-4.0.5.tar.bz2
 
cd ffmpeg-4.0.5

编译安装:

复制代码
./configure --prefix=/usr/local --enable-libx264 --disable-x86asm --enable-nonfree --enable-libfdk-aac  --enable-shared --enable-gpl --enable-libmp3lame --enable-libopus  --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib
 
make
 
make install

2、simple-rtsp-server下载编译

复制代码
git clone https://github.com/BreakingY/simple-rtsp-server.git
 
cd simple-rtsp-server
 
mkdir build
 
cd build
 
cmake ..
 
make -j

3、运行

复制代码
cp -r ../mp4path .
 
./rtsp_server 0 (0-不鉴权;1-鉴权)

4、拉流测试

项目中mp4path自带了测试文件,后面把想回放的视频放到mp4path中即可

复制代码
TCP拉流:
ffmpeg -rtsp_transport tcp -i "rtsp://192.168.10.17:8554/test_h264_aac.mp4" -vcodec copy -acodec copy  test_h264_aac_tcp.mp4
 
UDP拉流:
ffmpeg -i "rtsp://192.168.10.17:8554/test_h264_aac.mp4" -vcodec copy -acodec copy  test_h264_aac_udp.mp4

也可通过VLC直接播放,点击媒体->打开网络串流,输入rtsp地址即可。默认是udp拉流,要使用TCP需要打开工具->偏好设置->输入/编解码器,拉到最下方,选择"RTP over RTSP(TCP)"

rtsp_server程序会把rtsp信令交互过程打印出来,让我们对rtsp信令交互过程更加清晰。

二、RTSP Client实战项目

地址:https://github.com/BreakingY/simple-rtsp-client

支持RTP OVER UDP、RTP OVER TCP,支持H264/H265、AAC/PCMA、支持鉴权。

不需要任何依赖。

1、编译

复制代码
git clone https://github.com/BreakingY/simple-rtsp-client.git

mkdir build

cd build

cmake ..

make -j

2、测试

复制代码
./rtsp_client rtsp_url

客户端会把收到的音视频写入文件,H264/H265写入到test_out.h26x,AAC写入到test_out.aac,PCMA写入到test_out.pcma。

相关推荐
Brandon汐2 分钟前
Linux文件传输:让数据飞起来!
linux·运维·网络
计算机鬼才~2 分钟前
网络安全·第二天·ARP协议安全分析
网络·安全·web安全·arp
AI服务老曹8 分钟前
包含网络、平台、数据及安全四大体系的智慧快消开源了
运维·人工智能·安全·开源·音视频
孤舟簔笠翁44 分钟前
【Audio开发三】音频audio中帧frameSize ,周期大小periodsize,缓冲区buffer原理详解以及代码流程分析
音视频
思陌Ai算法定制2 小时前
图神经网络+多模态:视频动作分割的轻量高效新解法
人工智能·深度学习·神经网络·机器学习·音视频·医学影像
菌菌巧乐兹3 小时前
电脑知识 | TCP通俗易懂详解 <一>
服务器·网络·tcp/ip
逼子格3 小时前
十三种物联网/通信模块综合对比——《数据手册--物联网/通信模块》
嵌入式硬件·物联网·音视频·硬件工程师·硬件测试·硬件笔试真题·通信模块
无名之逆4 小时前
[特殊字符] 超轻高性能的 Rust HTTP 服务器 —— Hyperlane [特殊字符][特殊字符]
java·服务器·开发语言·前端·网络·http·rust
稳联技术4 小时前
玻璃厂退火炉“温度智囊”:Profinet转ModbusRTU网关
运维·服务器·网络
菊风 Juphoon5 小时前
菊风RTC 2.0 开发者文档正式发布,解锁音视频新体验!
音视频·实时音视频