本文与csdn博客同步:https://blog.csdn.net/Hanghang_/article/details/104893135,欢迎关注,点赞,评论。

前言

音视频系列:

HectoorZ:音视频系列1:ffmpeg+rtmp拉流​zhuanlan.zhihu.com

HectoorZ:音视频系列2:ffmpeg将H.264解码为RGB​zhuanlan.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搭建本地转发服务器相关推荐

  1. ffmpeg rtmp 花屏_音视频系列6:ffmpeg多线程拉流

    本文与csdn博客同步:https://blog.csdn.net/Hanghang_/article/details/105302384,欢迎关注,点赞,评论. 前言 本篇博客是音视频系列的续集与改 ...

  2. ffmpeg rtmp 不清晰_音视频系列3:使用ffmpeg + nginx搭建本地转发服务器

    本文与csdn博客同步:https://blog.csdn.net/Hanghang_/article/details/104893135,欢迎关注,点赞,评论. 前言 音视频系列: HectoorZ ...

  3. 音视频系列2:ffmpeg将H.264解码为RGB

    音视频系列2:ffmpeg将H.264解码为RGB 前言 源码 前言 喜大普奔,终于更新啦,上期说到,如何使用ffmpeg+rtmp进行拉流,不熟悉的小伙伴们,可以先看上一期.今天我们要实现的是使用f ...

  4. 网页测试本地服务器_音视频开发搭建一个直播服务器

    现在抖音.快手等直播实在是太火了,因此对音视频的开发非常感兴趣.查阅了相关资料,使用Nginx搭建一个简单的直播跟点播流媒体服务器,能够实时推流到服务器,同时在网页端播放直播的视频. 先上效果 使用O ...

  5. 音视频基本概念和FFmpeg的简单入门(新手友好+FFmpeg资料分享)

    音视频基本概念和FFmpeg的简单入门 基本概念 容器/文件(Conainer/File): 即特定格式的多媒体文件,一般来说一个视频文件是由视频,音频,字幕等按特定的格式/规则组合到一起的,常见如: ...

  6. 音视频命令转换工具 - FFmpeg

    随着自媒体兴起,许多人会自拍视频或者找视频素材裁剪,配上背景音乐或解说,加上各种特效边框,处理后再生成新的视频文件,发布到各大平台.生成的原始视频文件都很大,我们需要转换格式或者压缩大小,便于上传或者 ...

  7. 各种RTMP直播流播放权限_音视频_数据花屏_问题检测与分析工具EasyRTMPClient

    之前的一篇博客<网络摄像机IPCamera RTSP直播播放网络/权限/音视频数据/花屏问题检测与分析助手EasyRTSPClient>,我们介绍了RTSP流的检测和分析工具EasyRTS ...

  8. ffmpeg 丢帧 灰屏_音视频常见问题分析和解决:HLS切片丢帧引起的视频卡顿问题排查...

    问题背景: 前两天看读者留言让再写写音视频问题排查方面的思路,前面大概写几篇:<音视频播放疑难杂症分析和解决 :序篇>.<音视频常见问题分析和解决:延时和抖动>.<记一次 ...

  9. 音视频系列2:基本知识

    1. 存储格式 1.1 WAV.WMV.WMA.ASF.MMS.AVI:微软全家桶 微软的东西,windows用户经常能见到. 首先是wav音频文件.WAV是微软开发的一种声音文件格式,它实际是采用R ...

最新文章

  1. iOS音频——AudioToolbox
  2. vCenter Server Appliance 6.5 中重置丢失或忘记的 root 密码
  3. 李飞飞入选美国国家医学科学院,她用AI改变了医疗
  4. smarty模板引擎原理解析
  5. jquery取值,赋值,以及下拉框获取选中value值
  6. db_mysql.so_vsftpd在mysql上配置虚拟用户指南
  7. linux 快照备份导出,KVM之虚拟机几种备份方法(快照/克隆/导出)
  8. 目录遍历漏洞:入侵检测php程序中的目录遍历漏洞,目录浏览(目录遍历)漏洞
  9. 菜鸟学SSH(八)——Hibernate对象的三种状态
  10. 学习Winform了解到switch和if-else的妙处
  11. BIO,NIO,AIO
  12. hasp运行不成功_提问:程序无报错或警告,但总是运行不成功,会卡住没反应...
  13. android 结束if循环_(第五讲)if 分支语句和 while 循环
  14. C++ 的 RTTI
  15. 自动机器学习工具全景图:精选22种框架,解放炼丹师
  16. 【市场人必备】100份500强企业营销传播方案,小白晋升大神。
  17. Factory Method (工厂方法)
  18. 工程项目成本费用明细表_建设工程项目成本明细表模板.xls
  19. h2ouve下载 insyde_H20UVE_100.00.9.2 Insyde H2OUVE (UEFI Variable Editor) - 下载 - 搜珍网
  20. android xcl charts,我写的Android图表库XCL-Charts,整理好现在开源了!!!

热门文章

  1. SAP UI5 scroll down to get more
  2. delete in ST05 trace - deletion will also lead to many DB access first
  3. 如何处理CRM_ORGMAN 300 error message
  4. Sales Organization with Fiscal Year
  5. Enhancement set functionality missing in some system
  6. 我做SAP CRM One Order redesign的一些心得体会
  7. php非,通过非数字和字符的方式实现PHP WebShell
  8. 用计算机数字技术制作的电影是,如何面对电影制作中的数字技术
  9. 《非暴力沟通》听书心得
  10. linux apt-get dpkg,linux的sudo apt-get install 和dpkg -i package.deb命令