一. 基本概念及原理
1.1 ffmpeg简介
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。
1.2 RTMP简介
RTMP协议,又称实时消息传输协议(Real Time Messaging Protocol),该协议基于TCP,是一个协议族行,用于实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信,属于应用层。
1.3 OBS-studio简介
Open Broadcaster Software是一个免费的开源的视频录制和视频实时流软件。其有多种功能并广泛使用在视频采集,直播等领域。
1.4 VLC
VLC Media Player(VLC多媒体播放器),融合了FFmpeg计划的解码器与libdvdcss程序库, 是VideoLAN计划的多媒体播放器。
二. 前期准备
服务器操作系统:ubuntu 20.04
Nginx版本:nginx-1.18.0.tar.gz
RTMP模块:nginx-rtmp-module
推流工具:OBS-Studio/VLC
拉流工具:VLC
2.1 安装依赖
sudo apt install gcc make pcre pcre-devel openssl openssl-devel
此时可能出现报错:
E: Unable to locate package pcre
E: Unable to locate package pcre-devel
E: Unable to locate package openssl-devel
这个暂时先不用管。可以看到至少 sudo apt-get install openssl这个还是成功了的。
2.2 下载nginx-1.18.0.tar.gz和nginx-rtmp-module
wget https://nginx.org/download/nginx-1.18.0.tar.gz
tar -zxvf nginx-1.18.0.tar.gz #解压
git clone https://github.com/arut/nginx-rtmp-module
2.3 配置和编译安装
#nginx源码文件夹和rtmp模块源码文件夹在同一目录下
cd nginx-1.18.0
./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module --with-http_ssl_module
sudo make
sudo make install
可能会出现报错:
./configure: error: SSL modules require the OpenSSL library
解决办法:
sudo apt-get install libssl-dev
再次执行:
./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module --with-http_ssl_module
sudo make
sudo make install
2.4 查看安装结果
以下命令查看安装结果,出现版本号则证明成功:
/usr/local/nginx/sbin/nginx -v
#输出nginx version: nginx/1.18.0即为安装成功
2.5 设置Nginx开机启动
2.5.1 创建Nginx服务文件
cd /usr/lib/systemd/
mkdir && cd system
touch nginx.service
sudo vim /usr/lib/systemd/system/nginx.service
输入以下内容:
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target
2.5.2 启动Nginx服务
sudo systemctl start nginx
sudo systemctl enable nginx
2.6 修改Nginx的配置文件
sudo vim /usr/local/nginx/conf/nginx.conf
阿里云安全组增加8080端口的配置:
2.7 测试nginx服务
重启nginx:
sudo systemctl restart nginx
浏览器输入云服务器公网IP,出现下图所示欢迎语句表明配置成功:
文章来源:https://www.toymoban.com/news/detail-416979.html
四. 参考文献
阿里云服务器搭建Nginx+rtmp推流服务器文章来源地址https://www.toymoban.com/news/detail-416979.html
到了这里,关于Python 通过ffmpeg实现实时推流(ubuntu20.04+ffmpeg+nginx)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!