datagrid 重载本地数据_音视频系列3:使用ffmpeg + nginx搭建本地转发服务器
本文与csdn博客同步:https://blog.csdn.net/Hanghang_/article/details/104893135,欢迎关注,点赞,评论。
前言
音视频系列:
HectoorZ:音视频系列1:ffmpeg+rtmp拉流zhuanlan.zhihu.com
HectoorZ:音视频系列2:ffmpeg将H.264解码为RGBzhuanlan.zhihu.com
有兴趣的朋友可以看看。
上一节我们采用ffmpeg拉取芒果台视频,并处理成rgb,奈何芒果台不给力,拉流卡卡的,这样就不知道是我代码的问题,还是芒果台服务器的问题了,为了杜绝这个问题发生,我们这一节在本地搭建nginx服务器,用ffmpeg进行本地推流,再用自己的代码和VLC播放器进行PK测试。
为啥要这么做,因为本地推流,本地接收,可以保证推出来的流肯定是流畅的,这样自己代码出了问题(比如很卡)那么就能够第一时间知道,等于排除了服务器的问题。
实际操作
nginx+nginx-rtmp-module安装
nginx下载地址:http://nginx.org/en/download.html
我自己是下载了Mainline version,下载完进行解压,会发现有个configue可执行文件,等下我们要用它生成Makefile文件。
然后这是编译nginx的参数说明:http://nginx.org/en/docs/configure.html
nginx-rtmp-module下载:直接用git clone命令 git clone https://github.com/arut/nginx-rtmp-module.git
由于我们只需要实现推流,而不需要其他的module和环境,所以编译的时候,我们只需要安装nginx-rtmp-module,以及openssl证书。
首先我们看看openssl,在哪。
查看openssl位置命令:
which openssl
显示:/usr/local/openssl/bin/openssl
去掉bin/openssl,在nginx目录下,使用configure指令:
./configure --with-openssl=/usr/local/openssl/ --add-module=nginx-rtmp-module
注意,--with-openssl=
填写刚刚获取的openssl路径,去掉bin/openssl
。 --add-module=
填写nginx-rtmp-module
的路径。
运行发现有问题:
'/usr/local/openssl/.openssl/include/openssl/ssl.h' failed
说是没发现.openssl/目录,修改nginx目录下,auto/lib/openssl/conf文件 ,修改成正确的路径。
CORE_INCS="$CORE_INCS $OPENSSL/include"CORE_DEPS="$CORE_DEPS $OPENSSL/include/openssl/ssl.h"CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libssl.a"CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libcrypto.a"
再运行:
./configure --with-openssl=/usr/local/openssl/ --add-module=nginx-rtmp-module
make -j2
sudo make install
安装完成。
配置nginx的rtmp应用
sudo vim /usr/local/nginx/conf/nginx.conf
修改nginx.conf,增加rtmp的application
rtmp {server {listen 1935;chunk_size 4096;application rtmplive {live on;max_connections 1024;allow publish all; # control access privilegeallow play all; # control access privilege}}
}
其中: application的名字为rtmplive; 最大可连接数为1024; chunk_size分开数据大小为4096; 监听的端口为1935。
打开nginx服务,(注意要使用sudu,不然不够权限)
sudo /usr/local/nginx/sbin/nginx
报错,bind() to 0.0.0.0:80 failed (98: Address already in use)
原因是nginx已经启用,使用ps -e | grep nginx
查看有无启动nginx服务,有的话,可以先sudo kill -9 PID号
再启动nginx:
sudo /usr/local/nginx/sbin/nginx
或者你也可以重载nginx程序:
/usr/local/nginx/sbin/nginx -s reload
到这里nginx就配置好了。
启动ffmpeg推流
ffmpeg -re -i sss.mp4 -c copy -f flv rtmp://localhost:1935/live/rtmplive
出现错误:
rtmp://localhost:1935/live/mytv: Input/output error
实际上是地址写错了。 重新来:
ffmpeg -re -i sss.mp4 -c copy -f flv rtmp://localhost:1935/rtmplive
本地推流大功告成。
拉流测试
终于到了PK的时候了,VLC播放器和我的代码(详见上一节)进行PK,究竟胜利会花落谁家呢?
我觉得,应该是我的代码会赢。
VLC打开网络串流,输入rtmp://localhost:1935/live/mytv: Input/output error
我的代码也修改rtmp地址,然后开启。
测试半小时,VLC落后一大截,于是我重开VLC串流,发现,还是慢。
两小时过去了,代码仍在跑中,没有崩溃,速度仍比VLC快,我估摸着大概快个几秒钟。
测试效果如下图:左侧为我的代码,右侧为VLC播放器,使用OPENCV显示,可以看到左侧已经写了下面一行,而右侧还没写,显然慢于左侧。
所以,最后胜利归我,嘿嘿。
好了,本节到这里就完了,做好这些基本工作,接下来我可能会修改上一节中的代码,使其搭配最新的api,而不再警告,要么就是引入ROS系统。
如果我的文章对你有帮助,欢迎点赞、评论、关注。
datagrid 重载本地数据_音视频系列3:使用ffmpeg + nginx搭建本地转发服务器相关推荐
- ffmpeg rtmp 花屏_音视频系列6:ffmpeg多线程拉流
本文与csdn博客同步:https://blog.csdn.net/Hanghang_/article/details/105302384,欢迎关注,点赞,评论. 前言 本篇博客是音视频系列的续集与改 ...
- ffmpeg rtmp 不清晰_音视频系列3:使用ffmpeg + nginx搭建本地转发服务器
本文与csdn博客同步:https://blog.csdn.net/Hanghang_/article/details/104893135,欢迎关注,点赞,评论. 前言 音视频系列: HectoorZ ...
- 音视频系列2:ffmpeg将H.264解码为RGB
音视频系列2:ffmpeg将H.264解码为RGB 前言 源码 前言 喜大普奔,终于更新啦,上期说到,如何使用ffmpeg+rtmp进行拉流,不熟悉的小伙伴们,可以先看上一期.今天我们要实现的是使用f ...
- 网页测试本地服务器_音视频开发搭建一个直播服务器
现在抖音.快手等直播实在是太火了,因此对音视频的开发非常感兴趣.查阅了相关资料,使用Nginx搭建一个简单的直播跟点播流媒体服务器,能够实时推流到服务器,同时在网页端播放直播的视频. 先上效果 使用O ...
- 音视频基本概念和FFmpeg的简单入门(新手友好+FFmpeg资料分享)
音视频基本概念和FFmpeg的简单入门 基本概念 容器/文件(Conainer/File): 即特定格式的多媒体文件,一般来说一个视频文件是由视频,音频,字幕等按特定的格式/规则组合到一起的,常见如: ...
- 音视频命令转换工具 - FFmpeg
随着自媒体兴起,许多人会自拍视频或者找视频素材裁剪,配上背景音乐或解说,加上各种特效边框,处理后再生成新的视频文件,发布到各大平台.生成的原始视频文件都很大,我们需要转换格式或者压缩大小,便于上传或者 ...
- 各种RTMP直播流播放权限_音视频_数据花屏_问题检测与分析工具EasyRTMPClient
之前的一篇博客<网络摄像机IPCamera RTSP直播播放网络/权限/音视频数据/花屏问题检测与分析助手EasyRTSPClient>,我们介绍了RTSP流的检测和分析工具EasyRTS ...
- ffmpeg 丢帧 灰屏_音视频常见问题分析和解决:HLS切片丢帧引起的视频卡顿问题排查...
问题背景: 前两天看读者留言让再写写音视频问题排查方面的思路,前面大概写几篇:<音视频播放疑难杂症分析和解决 :序篇>.<音视频常见问题分析和解决:延时和抖动>.<记一次 ...
- 音视频系列2:基本知识
1. 存储格式 1.1 WAV.WMV.WMA.ASF.MMS.AVI:微软全家桶 微软的东西,windows用户经常能见到. 首先是wav音频文件.WAV是微软开发的一种声音文件格式,它实际是采用R ...
最新文章
- iOS音频——AudioToolbox
- vCenter Server Appliance 6.5 中重置丢失或忘记的 root 密码
- 李飞飞入选美国国家医学科学院,她用AI改变了医疗
- smarty模板引擎原理解析
- jquery取值,赋值,以及下拉框获取选中value值
- db_mysql.so_vsftpd在mysql上配置虚拟用户指南
- linux 快照备份导出,KVM之虚拟机几种备份方法(快照/克隆/导出)
- 目录遍历漏洞:入侵检测php程序中的目录遍历漏洞,目录浏览(目录遍历)漏洞
- 菜鸟学SSH(八)——Hibernate对象的三种状态
- 学习Winform了解到switch和if-else的妙处
- BIO,NIO,AIO
- hasp运行不成功_提问:程序无报错或警告,但总是运行不成功,会卡住没反应...
- android 结束if循环_(第五讲)if 分支语句和 while 循环
- C++ 的 RTTI
- 自动机器学习工具全景图:精选22种框架,解放炼丹师
- 【市场人必备】100份500强企业营销传播方案,小白晋升大神。
- Factory Method (工厂方法)
- 工程项目成本费用明细表_建设工程项目成本明细表模板.xls
- h2ouve下载 insyde_H20UVE_100.00.9.2 Insyde H2OUVE (UEFI Variable Editor) - 下载 - 搜珍网
- android xcl charts,我写的Android图表库XCL-Charts,整理好现在开源了!!!
热门文章
- SAP UI5 scroll down to get more
- delete in ST05 trace - deletion will also lead to many DB access first
- 如何处理CRM_ORGMAN 300 error message
- Sales Organization with Fiscal Year
- Enhancement set functionality missing in some system
- 我做SAP CRM One Order redesign的一些心得体会
- php非,通过非数字和字符的方式实现PHP WebShell
- 用计算机数字技术制作的电影是,如何面对电影制作中的数字技术
- 《非暴力沟通》听书心得
- linux apt-get dpkg,linux的sudo apt-get install 和dpkg -i package.deb命令