ffmpeg rtmp 不清晰_音视频系列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系统。
如果我的文章对你有帮助,欢迎点赞、评论、关注。
ffmpeg rtmp 不清晰_音视频系列3:使用ffmpeg + nginx搭建本地转发服务器相关推荐
- ffmpeg rtmp 花屏_音视频系列6:ffmpeg多线程拉流
本文与csdn博客同步:https://blog.csdn.net/Hanghang_/article/details/105302384,欢迎关注,点赞,评论. 前言 本篇博客是音视频系列的续集与改 ...
- datagrid 重载本地数据_音视频系列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 ...
- ffmpeg rtmp 不清晰_知识储备:理解RTMP、HttpFlv和HLS的正确姿势
需求比协议重要,理解你的需求在前,选择应用的协议在后! 第一.是什么? 解释这个问题有很大的难度,你所处的角度不同,决定了所需答案的不同.不管怎么样,协议是为了解决问题而生的,它有着天然的指向性.同时 ...
- 音视频开发(8)---nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/redstarofsle ...
- 音视频基本概念和FFmpeg的简单入门(新手友好+FFmpeg资料分享)
音视频基本概念和FFmpeg的简单入门 基本概念 容器/文件(Conainer/File): 即特定格式的多媒体文件,一般来说一个视频文件是由视频,音频,字幕等按特定的格式/规则组合到一起的,常见如: ...
- 音视频命令转换工具 - FFmpeg
随着自媒体兴起,许多人会自拍视频或者找视频素材裁剪,配上背景音乐或解说,加上各种特效边框,处理后再生成新的视频文件,发布到各大平台.生成的原始视频文件都很大,我们需要转换格式或者压缩大小,便于上传或者 ...
- 网页测试本地服务器_音视频开发搭建一个直播服务器
现在抖音.快手等直播实在是太火了,因此对音视频的开发非常感兴趣.查阅了相关资料,使用Nginx搭建一个简单的直播跟点播流媒体服务器,能够实时推流到服务器,同时在网页端播放直播的视频. 先上效果 使用O ...
- 实验一 利用ffmpeg进行视音频信息提取 |音视频技术
实验一 利用ffmpeg进行视音频信息提取 |音视频技术 一.实验目的 1.深入掌握视音频的基本参数信息 2.掌握ffmpeg编译环境配置 3.掌握和熟悉提取视音频文件的基本方法 二.实验要求 1.对 ...
最新文章
- Lombok经常用,却不知道它的原理是什么
- 计算机网络连接设备的有什么,常用网络连接设备有哪些?
- 一行文章让你搞懂什么是前缀、中缀、后缀表达式以及它们之间的相互转换
- 如何下载python2.7.16_CENTOS6.5 安装PYTHON2.7.16
- Type(类型判断)
- 比尔 · 盖茨即将在美国商会发表演讲 系离婚后首次亮相
- JavaScript数据类型之数字型(4)
- python中引用javascript代码块
- mysql学习书籍推荐
- 微信卡券开发具体的步骤,不会踩坑
- word 中巧妙添加分隔线
- 市面上主流RTC竞品对比分析
- 程序员离职原因的最佳回答_转行面试,高情商回答“你为什么要离职?”(建议收藏)...
- 计算机远程桌面连接如何设置密码,远程桌面连接密码
- 流行音乐混音风格 流行音乐混音的压缩技巧
- ADO.NET中五个对象
- 探秘嫦娥一号背后的软件开发故事
- wps加载失败模板文件损坏_WPS文件因操作不当被损坏怎么办?
- 安卓开发之集成微信登录以及分享群聊,朋友圈功能。
- 【数据分析/商业分析】数据分析中使用的商业模型(学习总结)