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

news2024/9/28 5:34:39

RTSP系列:

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

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

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

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

目录

一、RTSP Server实战项目

1、准备

2、simple-rtsp-server下载编译

3、运行

4、拉流测试

二、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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1980850.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Model Counting 2024 Public Instance Track 1 3600s测试结果

测试求解器:SharpSAT-TD与SharpSATTD-CH 3600s测试结果 测试结果图 测试数据001-051 测试数据053-101 测试数据103-151 测试数据153-199

两垂直线斜率乘积为-1的证明

如上图所示,直线L1和直线L2相互垂直,求证L1和L2的斜率。 求证过程如下: 设A点坐标为,B点坐标为,C点坐标为, 可知直线L1的斜率为:,直线L2的斜率为:

科普文:微服务之微服务改造【无状态token】JWT-token

一、什么是JWT Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519). 该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。 JWT的声明一般被用来在身份提供者…

PayPal为什么会封号?PayPal会关联吗

在做跨境电商的卖家,多多少少都会听到或者使用过PayPal。PayPal作为一家海外知名的支付公司,在全球拥有4亿的用户体量。在欧美地区使用PayPal成为一种主流支付方式,PayPal同时也是多家电商平台还有独立站的主流支付方式。正因为如此&#xff…

【C++ STL】stackqueue

文章目录 stack&queue1. 介绍1.1 stack1.2 queue 2. 接口2.1 stack2.2 queue 3. OJ3.1 最小栈3.2 验证栈序列3.3 逆波兰表达式求值3.4 用栈实现队列3.5 用队列实现栈 4. 模拟实现4.1 stack4.2 queue stack&queue 1. 介绍 1.1 stack 栈(Stack)…

IP探针双端源码

源码耗费两年半的制作过程 将源码上传至你的服务器或你的主机 可以对接其他东西或者网站其他语言 使用方法 1.参数使用 http://域名/sc.php?id这是生成端 http://域名/sc1.php?id这是生成端生成的链接可以跳转链接 http://域名/ck.php?id这是查看IP 生成端,生成完…

“微软蓝屏”事件敲响网络安全的警钟

文章目录 前言一、对网络安全的警醒二、我们如何应对?总结 前言 “微软蓝屏”事件是一次由微软合作伙伴CrowdStrike的终端安全产品更新与操作系统内核冲突导致的全球性技术故障。这一事件不仅影响了多个国家的航空、银行、金融、零售、餐饮等多个行业,还…

游泳馆管理小程序的设计

管理员账户功能包括:系统首页,个人中心,会员管理,场馆类型管理,泳池类型管理,饮食类型管理,场馆信息管理,泳池信息管理,系统管理 微信端账号功能包括:系统首…

美国非农数据低迷引发货币波动

本周,全球外汇市场经历了剧烈波动,主要货币对在美国7月非农就业报告表现疲软的影响下展现出多样化的市场反应。美元指数跌至五个月低点 美国7月非农就业数据意外低于预期,仅增加11.4万个就业岗位,失业率上升至4.3%,加剧…

UE蓝图(一)——自定义事件、函数与宏

自定义事件、函数与宏是UE蓝图中实现功能的三种方式,本文对这三种方式的特点与使用场景进行总结 文章目录 自定义事件函数宏进阶触发与调用函数的访问权限纯函数(Pure function) 参考资料 自定义事件 事件(Events) 是从游戏性代码中调用的节点,其使得蓝…

微信报名二维码怎么做

在这个快节奏的时代,每一个细微的便捷都能成为连接品牌与消费者的桥梁。今天,就让我们一同探索一种创新而高效的营销利器——微信报名二维码,它是如何以简约而不简单的姿态,重新定义活动报名的体验,成为品牌营销中的璀…

FTP未授权访问漏洞(匿名登陆)

FTP未授权访问漏洞(匿名登陆) FTP弱口令或匿名登录漏洞,一般指使用FTP的用户启用了匿名登录功能,或系统口令的长度太短、复杂度不够、仅包含数字、或仅包含字母等,容易被黑客攻击,发生恶意文件上传或更严重…

江苏苏州高校大学智能制造实验室数字孪生可视化系统平台建设项目验收

苏州高校大学智能制造实验室数字孪生可视化系统平台建设项目,旨在通过数字孪生技术,实现对智能制造过程的实时监测、数据分析与决策支持。该平台不仅能为实验室的教学和科研提供有力支持,还能为企业的智能制造转型提供技术支撑和解决方案。 …

String的底层构造

1.String类对象的构造&#xff08;后面有每一个接口的实现&#xff09; #define _CRT_SECURE_NO_WARNINGS 1 #pragma once #include<iostream> #include<assert.h> using namespace std;namespace bit {class string{public:typedef char* iterator;typedef const…

提升写作技能:掌握ai写作免费生成器的高效使用法

最近&#xff0c;#沉浸式感受火把节#话题在网络上爆红&#xff0c;相关的宣传视频和文案铺天盖地。 但仔细观察&#xff0c;你会发现这些文案大多千篇一律&#xff0c;缺乏创意。火把节&#xff0c;这个充满激情与神秘的节日&#xff0c;难道就无法以更独特的方式呈现吗&#…

Linux:Linux权限解析

一、Linux下的用户分类 在Linux下&#xff0c;有两种用户&#xff0c;一种是超级用户&#xff0c;一种是普通用户 超级用户&#xff1a;可以再linux系统下做任何事情&#xff0c;不受权限限制&#xff08;制定规则&#xff0c;但不需要遵守规则&#xff09; 普通用户&#xff1…

Stable-Diffusion1.5

SD1.5权重&#xff1a;https://huggingface.co/runwayml/stable-diffusion-v1-5/tree/main SDXL权重&#xff1a;https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/tree/main diffusers库中的SD代码pipelines&#xff1a;https://github.com/huggingface/di…

来点八股文(六) 网络Linux调优

性能指标 如何衡量程序的网络性能&#xff1f;你会看哪一层&#xff1f;看哪些指标&#xff1f;用哪些工具&#xff1f; 我们通常用带宽、吞吐量、延时、PPS&#xff08;Packet Per Second&#xff09;等指标衡量网络的性能。 应用层**[wrk、Jmeter]** **每秒处理请求数和延…

ComfyUI插件:ComfyUI-BrushNet节点

前言&#xff1a; 学习ComfyUI是一场持久战&#xff0c;而ComfyUI-BrushNet是最近的局部重绘节点&#xff0c;其包含BrushNet和Powerpaint两个主要节点&#xff0c;其中BrushNet有SD1.5和SDXL两个版本&#xff0c;PowerPaint只有1.5的模型可以使用&#xff0c;学会该插件&…

自动驾驶中的三维坐标系变换:原理、方法与实践

文章目录 1. 摘要2. 背景介绍2. 常用的坐标系定义2.1 全局坐标系&#xff08;Global Coordinate System&#xff09;2.2 车体坐标系&#xff08;Vehicle Coordinate System&#xff09;2.3 相机坐标系&#xff08;Camera Coordinate System&#xff09;2.4 图像坐标系&#xff…