live555编译运行笔记

live555简介

学习rtsp协议实战时候,一般需要有一个rstp的服务进行测试和验证,这个rtsp服务器最好是大家可以手写一个,但是这样可能比较耗费时间,初学者建议可以先拿开源的rtsp服务进行验证抓包学习流程等。

​ 一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持,包括MPEG、H.263+、DV、JPEG视频和多种音频编码。同时由于良好的设计,Live555非常容易扩展对其他格式的支持。目前,Live555已经被用于多款播放器的流媒体播放功能的实现,如VLC(VideoLan)、MPlayer。

编译下载live555

官方下载地址
http://www.live555.com/liveMedia/public/

下载这个 live555-latest.tar.gz,其他的264,265文件是测试的文件而已

编译live555

解压代码

bash 复制代码
tar vxf live555-latest.tar.gz

解压后会有个live目录

进入live目录准备编译

bash 复制代码
cd live

进行config makefile文件编译操作

这里live目录有个genMakefiles文件,自己需要根据操作系统情况加上参数

bash 复制代码
./genMakefiles linux-64bit

linux-64bit就代表linux 64位

最后执行make命令

bash 复制代码
make

会有一个报错如下:

bash 复制代码
BasicTaskScheduler.cpp:191:40: error: 'struct std::atomic_flag' has no member named 'test'
  191 |       if (fTriggersAwaitingHandling[i].test()) {

解决方法如下:

修改根目录的config.linux-64bit文件

bash 复制代码
vi config.linux-64bit

COMPILE_OPTS选项末尾加上-DNO_STD_LIB

再进行编译 make,一切正常后一般如下:
最后进行安装:

bash 复制代码
sudo make install

上面就已经完成了live555的编译安装,整体还是比较简单的。

测试live555

测试目录:

在live目录的testProgs下,执行testH264VideoStreamer程序

bash 复制代码
./testH264VideoStreamer

会提示要准备一个test.264文件

执行后

再使用vlc播放

填入地址

播放成功

投屏专题部分:
https://mp.weixin.qq.com/s/IGm6VHMiAOPejC_H3N_SNg

更多framework详细代码和资料参考如下链接

hal+perfetto+surfaceflinger

https://mp.weixin.qq.com/s/LbVLnu1udqExHVKxd74ILg

其他课程七件套专题:

点击这里
https://mp.weixin.qq.com/s/Qv8zjgQ0CkalKmvi8tMGaw

视频试看:
https://www.bilibili.com/video/BV1wc41117L4/

参考相关链接:

https://blog.csdn.net/zhimokf/article/details/137958615

更多framework假威风耗:androidframework007

相关推荐
zeruns8024 分钟前
如何用安卓玩Java版Minecraft,安卓手机安装我的世界Java版游戏的教程
android·java·智能手机·minecraft·mc
m0_6896182839 分钟前
基于铁-多巴胺复合物的水凝胶有啥用?拉伸、粘合、生物相容全具备!
笔记
滴水成冰-1 小时前
Kotlin-Flow学习笔记
笔记·学习·kotlin
我命由我123452 小时前
ADB 之 logcat 极简小抄(过滤日志、保存日志到文件)
android·运维·adb·android studio·安卓·运维开发·android-studio
不吃饭的猪2 小时前
mysql一主2从部署
android·mysql·adb
圆头圆脑圆JAVA2 小时前
MQ(RabbitMQ)笔记
笔记·rabbitmq·java-rabbitmq
mit6.8242 小时前
[Linux#49][UDP] 2w字详解 | socketaddr | 常用API | 实操:实现简易Udp传输
linux·网络·c++·笔记·后端
scdifsn3 小时前
动手学深度学习8.5. 循环神经网络的从零开始实现-笔记&练习(PyTorch)
pytorch·笔记·rnn·深度学习·梯度剪裁
振华OPPO3 小时前
我的5周年创作纪念日,不忘初心,方得始终。
android·java·android studio·安卓·安卓app
星迹日3 小时前
C语言:结构体
c语言·开发语言·经验分享·笔记