首页 > 其他分享 >LIVE555 学习工作记录

LIVE555 学习工作记录

时间:2023-11-02 17:00:55浏览次数:36  
标签:LIVE555 记录 over live555 TCP 学习 RTP 目录 liveMedia

Windows搭建RTSP服务器

准备

live555-latest.tar.gz:下载网址http://www.live555.com/liveMedia/public/

步骤

1)修改win32config文件

a. TOOLS32 = c:\Program Files\DevStudio\Vc改为TOOLS32 = TOOLS32 =  C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC(你的vs目录)

b. LINK_OPTS_0 = $(linkdebug) msvcirt.lib改为LINK_OPTS_0 = $(linkdebug) msvcrt.lib

2)拷贝Win32.Mak和NtWin32.Mak文件到Live555目录下的几大模块中,当前VS2015安装到C盘,所在的目录为

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include

3)启动Visual Studio Command Prompt(2015),进入到Live555库

4) 执行genWindowsMakefiles.cmd

5) 进入liveMedia目录,执行nmake -f liveMedia.mak

依次进入Live555目录中的其他目录,执行相应的mak文件,然后可以编译出不同功能模块的库和可执行程序

6)Rtsp服务器所在的目录在mediaServer目录下,拷贝一个h264的流媒体文件到当前目录,然后启动live555MediaServer.exe

通过VLC播放器,输入url:rtsp://192.168.0.107/smoke.264, 就可以顺利进行视频的播放


Windows搭建调试环境

静态库模块:BasicUsageEnvironment groupsock liveMedia UsageEnvironment

rtsp服务器主程序:mediaServer

VS添加头文件,和源码文件

静态库:

常规/配置类型:静态库.lib

C/C++/常规/附加包含目录 将四个模块的include目录添加

库管理器/输出文件 指定输出文件

C/C++/代码生成/运行库:多线程调试MTd

出错处理

1)'fopen': This function or variable may be unsafe. Consider using fopen_s instead

C/C++预处理器添加宏_CRT_SECURE_NO_DEPRECATE

2)'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead  

C/C++预处理器添加宏_WINSOCK_DEPRECATED_NO_WARNINGS

3)无法解析的外部符号

无法解析的外部符号 _initializeWinsockIfNecessary

无法解析的外部符号 _our_random

无法解析的外部符号 _OnExpire

groupsock下有inet.c,liveMedia下有rtcp_from_spec.c,必须添加到工程

下载资料中提供了debugrtsp压缩包


花屏问题解决记录

场景

采用live555将摄像机的视频流通过RTSP的方式转发出去,出现花屏情况,目前转发的是4K的数据


解决方案

1 OutPacketBuffer

OutPacketBuffer默认大小只有60000,即是unsigned OutPacketBuffer::maxSize = 60000;

当前设置成1210241024


客户端TCP取流

live555 设置RTP over RTSP(TCP)

live555工程中testprogs作为一个简单的rtsp客户端,默认采用udp进行音视频数据的传输, 如果需要使用tcp进行数据的传输,可以进行如下代码的修改:

testRTSPClient.cpp文件#define REQUEST_STREAMING_OVER_TCP True即可

源代码

// By default, we request that the server stream its data using RTP/UDP.
// If, instead, you want to request that the server stream via RTP-over-TCP,  
//change the following to True:

#define REQUEST_STREAMING_OVER_TCP True


VLC默认播放TCP音视频流设置如下:

去复用器>RTP/RTSP>

testrtspclient客户端建立rtp over tcp 异常问题

场景

testrtspclient通过rtp over tcp 跟服务器进行连接,在进行几分钟的通信之后,出错如下:

envir() << “RTCPInstance error: Hit limit when reading incoming packet over TCP. (fNumBytesAlreadyRead (”

<< fNumBytesAlreadyRead << “) >= maxRTCPPacketSize (” << maxRTCPPacketSize

<< “)). The remote endpoint is using a buggy implementation of RTP/RTCP-over-TCP. Please upgrade it!\n”;


标签:LIVE555,记录,over,live555,TCP,学习,RTP,目录,liveMedia
From: https://blog.51cto.com/fengyuzaitu/8153679

相关文章

  • 滴水逆向视频学习总结
    滴水逆向笔记一、数据的宽度表示(正数和负数的二进制表示本质)4位的宽度表示8位的宽度表示16位的宽度表示32位的宽度表示二、逻辑运算的本质计算2+3=?步骤:2转换成二进制00103转换成二进制0011异或之后变成0001,R来存储0001然后将2和3的二进制,0010和0011进行与运算,得......
  • 双11学习节,2023年前沿技能盘点
    职场人的双11 赚钱+囤知识才是硬道理!1元抢好课,领券最高直降3000元购课开盲盒、赠百元好礼等多重双11福利来袭2023年前沿技术点/技能课给你摆在这了......
  • 11月春招准备帖子记录自己春招准备
    1<style>2.wrap{3overflow:hidden;4/*//新的BFC*/5/*可以看到上面几个案例,6都体现了BFC实际就是页面一个独立的容器,7里面的子元素不影响外面的元素*/8}9p{10color:#f......
  • 算法刷题记录-长度最小的子数组
    算法刷题记录-长度最小的子数组长度最小的子数组给定一个含有n个正整数的数组和一个正整数target。找出该数组中满足其总和大于等于target的长度最小的连续子数组[numsl,numsl+1,...,numsr-1,numsr],并返回其长度。如果不存在符合条件的子数组,返回0。示例1:输......
  • Kubernetes学习笔记-安装
    准备工作操作系统:Centos7.6容器环境:Docker所需工具:kubectl,minikube安装Docker#安装yum工具包yum-yinstallyum-utils#添加yum源yum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#安装docker社区版yuminstalld......
  • FX110:为什么学习外汇交易如此困难?
    对于大多数其他复杂技能,你可以在与你的能力水平或年龄组相匹配的环境中发展。最终,你可能会进步到足以对抗精英。但是,交易的情况并非如此。想象一下一个孩子与莱昂内尔·梅西一起踢足球,他甚至连触球的机会都可能美欧。他会感到沮丧、无助,最终放弃这项运动。能力的自我感知据一项著名......
  • 分享一个项目:`learning_go_plan9_assembly`, 学习 golang plan9 汇编
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯近期在学习golangplan9汇编,总算基本做到了手写汇编,并整理了很多笔记。plan9汇编的资料少,难学,难用。可能也有想学习汇编的人会遇到与我一样的问题。于是把笔记进......
  • Git学习记录
    概述:免费、开源、分布式版本控制系统、快速、高效、易于学习、占地小、性能快本地库在磁盘集中式版本控制工具CVS、SVN、VSS有单一的集中管理服务器,所有的人修改的是同一个代码,必须等待他人写完,自己才能提交进行修改。单点故障:服务器宕机,所有人都无法提交更新,无法协同工作。分布式......
  • Vue学习笔记1
    笔记脚手架文件结构├──node_modules├──public│├──favicon.ico:页签图标│└──index.html:主页面├──src│├──assets:存放静态资源││└──logo.png││──component:存放组件││└──HelloWorld.vue││......
  • flink-cdc学习记录
    添加依赖<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.......