原文:linux_教ubuntu搭建rtsp视频推送服务live555compileinstallstartcompilewgethttp://www.live555.com/liveMedia/public/live555-latest.tar.gztarxzflive555-latest.tar.gzcdlive./genMakefileslinux-64bit#注意后面的参数是根据当前文件夹中的config.获取的makestartup:cdmediaServer&&./live555MediaServer把这些打印出来说明编译安装成功。[root@localhostmediaServer]#./live555MediaServerLIVE555MediaServerversion0.89(LIVE555StreamingMedialibraryversion2016.06.26).PlaystreamsfromthisserverusingtheURLrtsp://192.168.0.111/#这个就是访问的url地址其中是当前目录中的文件。每个文件的类型都是从其名称后缀推断的:“.264”=>一个H.264视频基本流文件“.265”=>一个H.265视频基本流文件“.aac”=>AAC音频(ADTS格式)文件“.ac3”=>AC-3音频文件“.amr”=>AMR音频文件“.dv”=>DV视频文件“.m4e"=>一个MPEG-4视频基本流文件".mkv"=>一个Matroska音频+视频+(可选)字幕文件".mp3"=>一个MPEG-1或2音频文件".mpg"=>一个MPEG-1或2节目流(音频+视频)文件“.ogg”或“.ogv”或“.opus”=>Ogg音频和/或视频文件“.ts”=>一个MPEG传输流文件(“.tsx”索引文件-如果存在-提供服务器“特技播放”支持)“.vob”=>一个VOB(带有AC-3音频的MPEG-2视频)文件“.wav”=>一个WAV音频文件“.webm”=>一个WebM音频(Vorbis)+视频(VP8)文件请参阅http://www.live555.com/mediaServer/以获取更多文档。(我们使用端口80foroptionalRTSP-over-HTTPtunneling,orforHTTPlivestreaming(forindexedTransportStreamfilesonly.)Fillthevideoandputthevideointhesamepathaslive555MediaServerConvertmp4tomkvffmpeg-ixxx.mp4xxx.mkv在这次用播放软件播放地址:vlcrtsp://192.168.0.111/xxx.mkvorffplayrtsp://192.168.0.111/xxx.mkv花屏问题01buffersize第一个可能是花屏问题几秒钟的视频。我在网上查过。原因是缓冲区大小不足。需要修改缓冲区大小。live555推送后的视频流出现模糊。检查DynamicRTSPServer.cpp文件的源代码。源码如下:sms->addSubsession(MPEG4VideoFileServerMediaSubsession::createNew(env,fileName,reuseSource));}elseif(strcmp(extension,".264")==0){//假定为H.264视频基本流文件:NEW_SMS("H.264Video");OutPacketBuffer::maxSize=100000;//允许一些可能较大的H.264帧sms->addSubsession(H264VideoFileServerMediaSubsession::createNew(env,fileName,reuseSource));}elseif(strcmp(extension,".265")==0){//假定为H.265视频基本流文件:NEW_SMS("H.265Video");OutPacketBuffer::maxSize=100000;//允许一些可能较大的H.265帧sms->addSubsession(H265VideoFileServerMediaSubsession::createNew(env,fileName,reuseSource));}elseif(strcmp(extension,".mp3")==0){//假定为MPEG-1或2音频文件:NEW_SMS("MPEG-1or2Audio")参见上面红色部分的H264和H265输出最大数据包缓冲区大小为100000字节(100K),高清视频缓冲区太小,必须改成80万。使用VLC播放1080P视频时,不会出现花屏现象。您可以使用以下信息找出需要修改的文件:grep-rnw。-e'OutPacketBuffer::maxSize=',需要修改buff的文件。修改后可能会存在花屏问题,但视频卡顿问题会得到解决。02视频格式模糊问题依然存在。我试过把mkv换成h264格式,发现live555无法识别h264格式。无意中扫了下命令提示符,发现live555支持的h264的扩展格式是264,将h264的扩展名改为For264,发现花屏问题已经解决(但解决的并不完美)。视频处理:ffmpeg-ixxx.mp4xxx.h264mvxxx.h264xxx.264将视频复制到live555MediaServer同路径,启动后连接rtsp地址,发现花屏问题解决。小视频一般没问题(小于10M),大视频就会有问题(大于200M)。vlc连接大视频的rtsp时,还是会出现花屏问题。opencv连接rtsp:okffplay连接rtsp:okvlc连接rtsp:花屏猜测是vlc对某些码流数据不兼容,或者视频源有问题。总之3个播放工具2个都可以,rtsp也算ok。无法推送到外网(腾讯云)使用腾讯云主机搭建rtsp服务器,发现生成的拉取地址ip不是外网ip,而是172开头的ip。一:live555如何获取知识产权?发现在live555源码的groupsock/GroupsockHelper.cpp中,live555通过连接本机15947端口来确定自己的ip。其实就是eth0网卡的地址。腾讯云运行:ipaddrshoweth0发现确实是172开头的ip,为什么?因为腾讯云玩过花样,具体可以参考参考《腾讯云公网IP无法访问(公网IP无法绑定-监听)的解决办法》。如果监听172地址,肯定是外网访问不到,导致外网无法拉取流量。怎么做?让它监控0.0.0.0,怎么让它监控0呢?从其他博文可以看出,groupsock/GroupsockHelper.cpp的函数ipv4AddressBitsourIPAddress(UsageEnvironment&env)的返回值为ip。将其返回值改为0。修改后需要重新编译源码。参考:live555学习经验2(获取本地IP地址方法一):https://blog.csdn.net/wesleyl...腾讯云公网IP无法访问(公网IP无法绑定-监控)解决方法:https://blog.csdn.net/chenggo...error:Theinputframedatawastoolargeforourbuffersize修改01:vimlive/liveMedia/MultiFramedRTPSource.cppline76:increaseReceiveBufferTo(env,RTPgs->socketNum(),2000*1024);修改02:vimlive/liveMedia/StreamParser.cppline26:BANK_SIZE600000修改03:vimlive/liveMedia/MediaSink.cppline113:unsignedOutPacketBuffer::maxSize=600000;修改04:vimlive/mediaServer/DynamicRTSPServer.cpp修改第141、146、202、208行:OutPacketBuffer::maxSize=600000;修改06:vimlive/testProgs/playCommon.cppline116:unsignedfileSinkBufferSize=600000;重新编译参考:live555:Theinputframedatawastoolargeforourbuffersizebuffer:https://blog.csdn.net/xionli...参考使用VLC作为流媒体服务器:https://blog.csdn.net/redstar...win:Lee使用live555搭建最简单的rtsp流媒体服务:https://blog.csdn.net/huweiji...linux下使用live555搭建rtsp服务器:https://www.cnblogs.com/dpf-1...nginx+rtmp:https://hub.docker.com/r/data...nginx+rtsp:https://hub.docker.com/r/srnb...ffmpeg+ffserver搭建rtsp服务器:https://blog.csdn.net/FPGATOM...live555推1080p虚屏:https://blog.csdn.net/youyicc...流媒体开发开源项目live555---改变服务器的帧率和码率:https://www.cnblogs.com/pengk...