原创博客地址:软件_搭建rtsp视频推送环境

live555编译安装启动

编译

1
2
3
4
5
wget  http://www.live555.com/liveMedia/public/live555-latest.tar.gz
tar xzf live555-latest.tar.gz
cd live
./genMakefiles linux-64bit    #注意后面这个参数是根据当前文件夹下config.<后缀>获取得到的
make

启动:cd mediaServer && ./live555MediaServer
打印出这些就说明编译安装成功了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[root@localhost mediaServer]# ./live555MediaServer
LIVE555 Media Serverversion 0.89 (LIVE555 Streaming Media library version 2016.06.26).
Play streams from this server using the URLrtsp://192.168.0.111/<filename> #这个就是访问的url地址
where <filename> is a file present in the current directory.
Each file's type is inferred from its name suffix:".264" => a H.264 Video Elementary Stream file".265" => a H.265 Video Elementary Stream file".aac" => an AAC Audio (ADTS format) file".ac3" => an AC-3 Audio file".amr" => an AMR Audio file".dv" => a DV Video file".m4e" => a MPEG-4 Video Elementary Stream file".mkv" => a Matroska audio+video+(optional)subtitles file".mp3" => a MPEG-1 or 2 Audio file".mpg" => a MPEG-1 or 2 Program Stream (audio+video) file".ogg" or ".ogv" or ".opus" => an Ogg audio and/or video file".ts" => a MPEG Transport Stream file(a ".tsx" index file - if present - provides server 'trick play' support)".vob" => a VOB (MPEG-2 video with AC-3 audio) file".wav" => a WAV Audio file".webm" => a WebM audio(Vorbis)+video(VP8) file
See http://www.live555.com/mediaServer/ for additional documentation.
(We use port 80 for optional RTSP-over-HTTP tunneling, or for HTTP live streaming (for indexed Transport Stream files only).)

填充视频

将视频放到和live555MediaServer同路径下就可以了。
需要留意的是live555并不支持mp4格式,需要将mp4转为mkv

1
ffmpeg -i xxx.mp4 xxx.mkv

此时用播放软件播放地址:

1
2
3
vlc rtsp://192.168.0.111/xxx.mkv
or
ffplay rtsp://192.168.0.111/xxx.mkv

花屏问题01缓冲区大小

视频的前几秒钟可能会有花屏问题,网上查了查,原因在于缓冲区大小不足。需要修改缓冲区大小

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
live555推送之后的视频流出现花屏,查看源码DynamicRTSPServer.cpp文件,源码如下:sms->addSubsession(MPEG4VideoFileServerMediaSubsession::createNew(env, fileName, reuseSource));} else if (strcmp(extension, ".264") == 0) {// Assumed to be a H.264 Video Elementary Stream file:NEW_SMS("H.264 Video");OutPacketBuffer::maxSize = 100000; // allow for some possibly large H.264 framessms->addSubsession(H264VideoFileServerMediaSubsession::createNew(env, fileName, reuseSource));} else if (strcmp(extension, ".265") == 0) {// Assumed to be a H.265 Video Elementary Stream file:NEW_SMS("H.265 Video");OutPacketBuffer::maxSize = 100000; // allow for some possibly large H.265 framessms->addSubsession(H265VideoFileServerMediaSubsession::createNew(env, fileName, reuseSource));} else if (strcmp(extension, ".mp3") == 0) {// Assumed to be a MPEG-1 or 2 Audio file:NEW_SMS("MPEG-1 or 2 Audio")

查看上面红色部分对于H264和H265输出包最大缓冲100000字节(100K),对于高清视频缓冲区太小了,必需更改大些。目前更改到800000,对于1080P视频使用VLC播放时,不会再出现花屏。
可用如下信息查询出需要修改那些文件:grep -rnw . -e ‘OutPacketBuffer::maxSize = ‘,需要修改buff的文件
修改后花屏问题可能存在,但视频卡顿问题会得到解决。

花屏问题02视频格式

花屏问题依然存在,本人曾经尝试过用h264格式代替mkv,发现live555无法识别h264格式,偶然扫到命令提示部分,发现live555支持的h264需要的扩展格式为264,将h264扩展改为264,发现花屏问题得到解决,(但是解决的并不完美)。
视频处理:

1
2
ffmpeg -i xxx.mp4 xxx.h264
mv xxx.h264 xxx.264

将视频复制到live555MediaServer同路径下,启动后连接rtsp地址,发现花屏问题得以解决。
小视频一般都是ok的(小于10M),大视频则会有问题(大于200M),vlc连接大视频的rtsp时依然会出现花屏问题。

1
2
3
opencv连接rtsp:ok
ffplay连接rtsp:ok
vlc连接rtsp:花屏

猜测是vlc对部分码流数据兼容不佳,或者视频源有问题,总之3个播放工具2个没问题,可以认为rtsp是ok的。

参考

用VLC做流媒体服务器:https://blog.csdn.net/redstarofsleep/article/details/49273405
win:利用live555搭建最简单的rtsp流媒体服务:https://blog.csdn.net/huweijian5/article/details/53928521
使用live555 在linux下搭建 rtsp server:https://www.cnblogs.com/dpf-10/p/5623101.html
nginx+rtmp:https://hub.docker.com/r/datarhei/nginx-rtmp/
nginx+rtsp:https://hub.docker.com/r/srnbckr/nginx-rtsp
ffmpeg+ffserver搭建rtsp服务器:https://blog.csdn.net/FPGATOM/article/details/98782202
live555推送1080p花屏:https://blog.csdn.net/youyicc/article/details/79862762
流媒体开发之开源项目live555—更改server端的帧率大小和码率大小:https://www.cnblogs.com/pengkunfan/p/3975442.html

软件_搭建rtsp视频推送环境相关推荐

  1. 软件_搭建rtmp视频推送环境,腾讯云,ubuntu16

    原创博客地址:软件_搭建rtmp视频推送环境,腾讯云,ubuntu16 1,安装conda,ffmpeg,nginx,nginx-rtmp-module (建议先修改主机pip,conda的源) 安装 ...

  2. live555搭建rtsp服务器推送实时流花屏问题解决

    使用live555搭建rtsp服务器推送实时流时总是出现花屏,查阅资料按照大多数人所说的修改做了以下几项修改: 1.修改OutPacketBuffer::maxSize=1024*1024 ; 2.扩 ...

  3. Windows平台RTMP/RTSP直播推送模块设计和使用说明

    开发背景 好多开发者一直反馈,Windows平台,做个推屏或者推摄像头,推RTMP或者RTSP出去,不知道哪些功能是必须的,哪些设计是可有可无的,还有就是,不知道如何选技术方案,以下是基于我们设计的W ...

  4. 极光为华硕 ROG 游戏手机 3 搭建符合统一推送联盟标准的推送系统

    2020年7月23日,华硕 ROG 游戏手机3正式发布.该款手机为 ROG 玩家深度定制,旨在提供专属沉浸式游戏体验.华硕在发布会上同时宣布,由其合作伙伴.中国领先的移动开发者服务提供商极光(Auro ...

  5. SRS流媒体服务进行视频推送拉取

    前言 SRS是一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181. Note: 简单的单节点架构,适用于大多数场景 一.SRS部署 1. 地址 ...

  6. GDLiveStreaming视频推送RTMP

    所谓的视频推送就是把摄像头和麦克风捕获到视频和音频推送到直播服务器上.我们这里使用推送协议是RTMP协议. 扩展:腾讯直播平台,阿里直播平台,百度直播平台提供均为RTMP的推流和HLS/RTMP等拉流 ...

  7. python爬虫公众号_python爬虫_微信公众号推送信息爬取的实例

    问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...

  8. python report_ReportPortal(自动化报表统一平台)的搭建与python推送

    ReportPortal(自动化报表统一平台)的搭建与python推送 ReportPortal(自动化报表统一平台)的搭建与python推送 项目地址 GIT:https://github.com/ ...

  9. python微信爬取教程_python爬虫_微信公众号推送信息爬取的实例

    问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...

最新文章

  1. iOS使用Workspace来管理多项目
  2. -webkit-scrollbar
  3. chromium net库设计
  4. 387. First Unique Character in a String QuestionEditorial Solution
  5. c#开发-基础知识及有用技巧(一)
  6. Tomcat提示Null component
  7. oracle 12c pl/sql语言,ORACLE 12C SQL语句中通过with 定义PL/SQL 函数
  8. ES6新特性_浏览器使用ES6模块化引入模块---JavaScript_ECMAScript_ES6-ES11新特性工作笔记042
  9. C语言的C11 标准有哪些改进的地方?C11 为何不如 C++11 流行?
  10. 微信消息自动回复并汇总
  11. k线符号图解大全_k线图解大全,带你了解k线形态!
  12. 通过Ubuntu16.04编译Android下的osip动态库
  13. FileZilla 服务器 报Warning: FTP over TLS is not enabled, users cannot securely log in.
  14. 明日之后服务器邮箱,明日之后服务器不一样怎么办_区服不同如何解决_软吧
  15. MATLAB:Radon正变换的理解
  16. 常微分方程-变量分离、变量变换、线性微分方程和常数变易法
  17. 手机连接电脑linux系统怎么样的,手机真能取代电脑吗?谈手机/PC系统的大一统...
  18. xtrabackup: error: it looks like InnoDB log has wrapped around before xtrabackup could process all r
  19. 带id的市和区/县 json数据
  20. springBoot雷神教程学习笔记

热门文章

  1. 为什么以前的电视一打雷就容易烧坏,现在的电视就不那么怕雷?
  2. 使用Oraclize让智能合约调用外部数据
  3. go socket编程(详细)
  4. sql 查询数据库索引重建_不良的数据库索引– SQL查询性能的杀手–建议
  5. 持续集成最佳实践_集成服务性能最佳实践–数据流优化
  6. Net需要掌握的知识
  7. NODE安装N管理出错
  8. System类的概述和方法使用
  9. Swift自定义Class实现Hashable
  10. Biztalk中使用SQL适配器获取数据并用web服务发布的例子