• 2022-06-29 银河麒麟V10 Nginx-rtmp+FFmpeg流媒体服务器环境搭建


    银河麒麟V10

    系统信息

    2022-06-29_10-06-50.png

    FFmpeg

    下载源码https://github.com/FFmpeg/FFmpeg/releases/tag/n3.4.11
    这里下载tag版,也是笔记时间最新的版本
    下载完成后你将得到FFmpeg-n3.4.11.tar.gz压缩包
    使用命令tar -xvf FFmpeg-n3.4.11.tar.gz解压这个压缩包,得到FFmpeg-n3.4.11文件夹

    2022-06-29_10-10-07.png

    进入FFmpeg-n3.4.11文件夹执行命令./configure --enable-shared --disable-yasm --prefix=/home/lib/ffmpeg.n3.4.11,配置FFmpeg的安装信息
    执行命令make install安装FFmpeg,这个过程需要一段时间
    安装完成后进入/etc/ld.so.conf.d文件夹,执行命令touch ffmpeg.conf,创建FFmpeg的配置文件
    编辑该文件输入/home/lib/ffmpeg.n3.4.11/lib保存,执行ldconfig命令使其生效
    进入/etc文件夹,编辑profile文件,在文件最后添加一行输入export PATH=$PATH:/home/lib/ffmpeg.n3.4.11/bin并保存,执行命令source /etc/profile使其生效
    然后在命令行里面就可以使用FFmpeg了
    2022-06-29_10-12-42.png

    Nginx-rtmp

    下载Nginx源码http://nginx.org/en/download.html
    笔者这里下载的是nginx-1.16.1

    2022-06-29_10-15-22.png

    下载完成后你将得到nginx-1.16.1.tar.gz压缩包
    执行命令tar -xvf nginx-1.16.1.tar.gz解压nginx压缩包,得到nginx-1.16.1文件夹
    使用Git命令在nginx-rtmp模块的仓库中下载源码

    这里笔者在GitHub网站上面也下载过tag版本的,但是在安装过程中会有错误,但是在仓库下载最新的代码就可以

    git clone https://github.com/arut/nginx-rtmp-module.git
    下载完成后你会有nginx-1.16.1和nginx-rtmp-module2个文件夹

    2022-06-29_10-18-36.png

    进入nginx-1.16.1文件夹,执行命令./configure --add-module=../nginx-rtmp-module --with-http_ssl_module配置Nginx安装信息
    执行命令make install安装nginx
    安装完成后在/usr/local会出现一个nginx文件夹
    执行命令/usr/local/nginx/sbin/nginx启动nginx
    在浏览器中访问localhost:80,可以看到nginx的主页,说明安装成功

    2022-06-29_10-23-28.png

    执行命令/usr/local/nginx/sbin/nginx -s stop停止nginx
    进入/usr/local/nginx/conf文件夹,编辑nginx.conf文件
    可以修改nginx的默认端口,并且在http节点同级节点添加rtmp服务器的配置,在配置中你可以根据规则配置你的服务器或者参数

    1. rtmp {
    2. server {
    3. listen 81;
    4. chunk_size 4096;
    5. application live {
    6. live on;
    7. }
    8. }
    9. }

    完整信息如下

    1. #user nobody;
    2. worker_processes 1;
    3. events {
    4. worker_connections 1024;
    5. }
    6. rtmp {
    7. server {
    8. listen 81;
    9. chunk_size 4096;
    10. application live {
    11. live on;
    12. }
    13. }
    14. }
    15. http {
    16. include mime.types;
    17. default_type application/octet-stream;
    18. sendfile on;
    19. keepalive_timeout 65;
    20. server {
    21. listen 80;
    22. server_name localhost;
    23. location / {
    24. root html;
    25. index index.html index.htm;
    26. }
    27. #error_page 404 /404.html;
    28. # redirect server error pages to the static page /50x.html
    29. error_page 500 502 503 504 /50x.html;
    30. location = /50x.html {
    31. root html;
    32. }
    33. }
    34. }

    这里添加rtmp节点表示创建rtmp服务器,名称是live,端口是81
    执行命令/usr/local/nginx/sbin/nginx启动nginx,如果没有出现错误,就说明配置生效了,可以执行命令netstat -ntulp | grep 81查看rtmp服务器端口是否使用了

    2022-06-29_10-28-36.png

    这样一个rtmp服务器就开启成功了,服务器地址是 rtmp://ip:81/live

    VLC

    执行命令apt install vlc安装VLC
    执行vlc启动VLC客户端软件

    2022-06-29_10-33-36.png

    推流

    使用FFmpeg将本地的一个视频文件循环的往rtmp服务器中推流

    ffmpeg -re -stream_loop -1  -i /home/1.mp4  -vcodec copy -f flv rtmp://localhost:81/live/test

    执行命令ffmpeg -re -stream_loop -1 -i /home/1.mp4 -vcodec copy -f flv rtmp://localhost:81/live/test命令将本地的1.mp4视频文件循环的往rtmp服务器中推流

    2022-06-29_10-31-14.png

    看到此信息就说明rtmp流媒体服务器搭建成功

    拉流

    在VLC中打开网络串流,URL输入推流指定的rtmp地址,本文中的就是[rtmp://localhost:81/live/test]

    2022-06-29_10-35-20.png
  • 相关阅读:
    STM32学习笔记(四)--TIM定时器中断详解
    单元测试一(理论)-云计算2023.11-云南农业大学
    第149篇 笔记-web3
    全国计算机二级考试MySQL有必要考吗
    ARP协议详解
    Docker部署RabbitMQ
    JVM及GC
    MySQL 全文索引
    css控制文本、字符换行
    资深程序员必备技能-如何对软件系统做技术规划
  • 原文地址:https://blog.csdn.net/qq_36707668/article/details/125518082