参考答案

搭建 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播放器

https://www.videolan.org/vlc/

安装好后, python代码中拼接出对应的命令行,使用调用外部程序的库启动vlc播放器播放视频流

比如:

"c:\Program Files (x86)\VideoLAN\VLC\vlc.exe" rtmp://主机ip/mytv/room01