当前位置: 首页 > news >正文

使用nginx+rtmp+ffmpeg实现桌面直播

使用nginx+rtmp+ffmpeg实现桌面直播

流媒体服务器搭建

docker run

docker镜像基于添加了rtmp模块的nginx,和ffmpeg

docker pull alfg/nginx-rtmp
docker run -d -p 1935:1935 -p 8080:80 --name=nginx-rtmp alfg/nginx-rtmp

rtmp模块说明

进入容器内部查看

docker ps | grep alfg/nginx-rtmp
docker exec -it [docker镜像id] /bin/sh
cat /etc/nginx/nginx.conf

nginx rtmp模块配置如下

rtmp {
    server {
        listen 1935;
        chunk_size 4000;

        application stream {
            live on;

            exec ffmpeg -i rtmp://localhost:1935/stream/$name
              -c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 2500k -f flv -g 30 -r 30 -s 1280x720 -preset superfast -profile:v baseline rtmp://localhost:1935/hls/$name_720p2628kbs
              -c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 1000k -f flv -g 30 -r 30 -s 854x480 -preset superfast -profile:v baseline rtmp://localhost:1935/hls/$name_480p1128kbs
              -c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 750k -f flv -g 30 -r 30 -s 640x360 -preset superfast -profile:v baseline rtmp://localhost:1935/hls/$name_360p878kbs
              -c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 400k -f flv -g 30 -r 30 -s 426x240 -preset superfast -profile:v baseline rtmp://localhost:1935/hls/$name_240p528kbs
              -c:a libfdk_aac -b:a 64k -c:v libx264 -b:v 200k -f flv -g 15 -r 15 -s 426x240 -preset superfast -profile:v baseline rtmp://localhost:1935/hls/$name_240p264kbs;
        }

        application hls {
            live on;
            hls on;
            hls_fragment_naming system;
            hls_fragment 5;
            hls_playlist_length 10;
            hls_path /opt/data/hls;
            hls_nested on;

            hls_variant _720p2628kbs BANDWIDTH=2628000,RESOLUTION=1280x720;
            hls_variant _480p1128kbs BANDWIDTH=1128000,RESOLUTION=854x480;
            hls_variant _360p878kbs BANDWIDTH=878000,RESOLUTION=640x360;
            hls_variant _240p528kbs BANDWIDTH=528000,RESOLUTION=426x240;
            hls_variant _240p264kbs BANDWIDTH=264000,RESOLUTION=426x240;
        }
    }
}

推流

使用ffmpeg录屏桌面,视频流推送到搭建好的流媒体服务器。

windows环境

ffmpeg -f gdigrab -r 25 -s 1920*780 -i desktop -f flv rtmp://ip:1935/hls/desktop.1920.flv

linux环境

ffmpeg -f x11grab -r 25 -s 1920*780 -qscale 0.01 -i :0.0 -f flv rtmp://ip:1935/hls/desktop.1920.flv

拉流

播放器播放

vlc播放器下载

打开vlc播放器,选择“打开-》网络串流”并输入推流的url,即可从流媒体服务器拉取视频流并播放

vue展示

使用vue-video-player组件,src为推流的url

参考

nginx+rtmp模块docker镜像
ffmpeg官网
srs

相关文章:

  • docker 安装 Rabbitmq 详解
  • 机器学习实战(5):决策树与随机森林——直观的分类与回归方法
  • leetcode-414.第三大的数
  • c语言易错题(选择)
  • VMware按照的MacOS升级后无法联网
  • A9. Jenkins Pipeline自动化构建,飞书通知
  • 【Github每日推荐】-- 2024 年项目汇总
  • 网工_IP地址
  • 云计算架构学习之Ansible-playbook实战、Ansible-流程控制、Ansible-字典循环-roles角色
  • 蓝桥杯单片机基础部分——6、555定时器
  • 【学术投稿-第四届材料工程与应用力学国际学术会议(ICMEAAE 2025】材料工程与应用力学的探讨
  • Java中的锁
  • 六、敏捷开发工具:项目管理工具
  • 常用Webpack Loader汇总介绍
  • 【C++】结构体排序+sort(),cmp()参数写法口诀
  • 【时时三省】(C语言基础)三种基本结构和改进的流程图
  • Day01 【苍穹外卖】环境搭建与前后端联调
  • 【Java】泛型与集合篇(二)
  • cesium视频投影
  • 【核心算法篇三】《DeepSeek强化学习:Atari游戏训练框架解析》
  • 东莞“超级”音乐节五一出圈背后:文旅热力何以澎湃经济脉动
  • 国家主席习近平同普京总统出席签字和合作文本交换仪式
  • 视频丨习近平同普京会谈:共同弘扬正确二战史观,维护联合国权威和地位
  • 少年中国之少年的形塑
  • 深圳下调公积金利率,209万纯公积金贷款总利息减少9.94万
  • 太原一高中生指出博物馆多件藏品标识不当,馆方已邀请他和专家共同探讨