参考答案
搭建 rmtp 直播服务器
方法1 mediamtx - 推荐
https://github.com/bluenviron/mediamtx#standalone-binary 下载对应平台的 程序包。
如果你不能访问github, 从百度网盘里面 mediamtx
目录中下载 这个文件,里面3个文件和平台对应关系是
mediamtx_v1.1.1_linux_amd64.tar.gz --> linux系统, x86CPU
mediamtx_v1.1.1_darwin_arm64.tar.gz --> 苹果Mac系统 M1/M2 等CPU
mediamtx_v1.1.1_windows_amd64.zip --> Windows系统, x86CPU
以 Windows 为例, 下载 mediamtx_v1.1.1_windows_amd64.zip
下载完解压即可, 然后进入解压目录,运行 mediamtx.exe
如果本机开启了防火墙,确保 1935 端口是防火墙允许的
方法2 - nginx - 不推荐
Linux
网上搜索下载 下面两个文件
nginx-rtmp-module-1.2.2.tar.gz
nginx-1.24.0.tar.gz
winscp以root用户登录,拷贝上面2个文件到 /root目录下, 解压上面这两个文件
然后,root用户ssh登录, cd进入nginx解压后的目录
输入
apt-get install libpcre3 libpcre3-dev
apt-get install libssl-dev
执行
./configure --add-module=/root/nginx-rtmp-module-1.2.2
看看,如果没有报错,执行
make&& make install
如果没有报错说明安装正确,winscp打开文件 /usr/local/nginx/conf/nginx.conf
,
编辑 使其内容如下
worker_processes 1;
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935;
chunk_size 4000;
application mytv {
# enable live streaming
live on;
allow play all;
}
}
}
保存后,执行 /usr/local/nginx/sbin/nginx
如果本机开启了防火墙,确保 1935 端口是防火墙允许的
推流
使用 ffmpeg
在下载链接百度网盘中,下载文件 ffpmeg.zip 解压
可以使用类似下面的命令,推送视频文件作为直播流的内容。
ffmpeg -re -i ./1.mp4 -c copy -f flv rtmp://127.0.0.1/mytv/room01
ffmpeg -re -i ./2.mp4 -c copy -f flv rtmp://127.0.0.1/mytv/room02
使用 OBS推流
也可以使用 OBS等直播软件推流, 具体操作见题目视频说明。
代码播放
直接使用vlc播放器播放推流视频
打开下面的网址,下载安装vlc播放器
安装好后, python代码中拼接出对应的命令行,使用调用外部程序的库启动vlc播放器播放视频流
比如:
"c:\Program Files (x86)\VideoLAN\VLC\vlc.exe" rtmp://主机ip/mytv/room01