前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Nginx-rtmp+ FFmpeg +Docker + vue.js 直播系统搭建

Nginx-rtmp+ FFmpeg +Docker + vue.js 直播系统搭建

作者头像
星哥玩云
发布2022-07-27 20:17:10
发布2022-07-27 20:17:10
2K00
代码可运行
举报
文章被收录于专栏:开源部署开源部署
运行总次数:0
代码可运行

思路(如图):

1,开启推流服务器(这里我的Nginx-rtmp服务器搭建成功)

进入docker 开启推流服务器  docker run -it -p 1935:1935 -p 8000:80 --rm alfg/nginx-rtmp

2,推流(两种方法)

命令推流:

查看本机摄像头及麦克风设备 ffmpeg -list_devices true -f dshow -i dummy

音视频推流: ffmpeg -f dshow -i video="VMware Virtual USB Video Device":audio="Microphone (High Definition Audio Device)" -tune:v zerolatency -f flv "rtmp://192.168.99.100:1935/stream/test"

代码语言:javascript
代码运行次数:0
运行
复制
#推流视频文件
ffmpeg -re -stream_loop -1 -i test.mp4 -f flv rtmp://192.168.99.100:1935/stream/test
播放地址http://192.168.99.100:8000/live/test.m3u8

#将摄像头推流到hls
ffmpeg -f vfwcap  -i "0" -c:v libx264 -preset ultrafast  -acodec libmp3lame -ar 44100 -ac 1  -f flv rtmp://localhost:1935/hls/home
播放地址http://localhost:8080/hls/home.m3u8

#将屏幕推流到rtmp
start ffmpeg -f gdigrab -i desktop -vcodec libx264 -preset ultrafast -acodec libmp3lame -ar 44100 -ac 1 -f flv 
播放地址rtmp://localhost:1935/live/jing

使用第三方软件推流:(例如:OBS Studio)

3,拉流

这里前端使用的是通过VUE

注意使用video需安装以下几个依赖

cnpm install video.js cnpm install aes-decrypter cnpm install m3u8-parser cnpm install mpd-parser cnpm install mux.js cnpm install url-toolkit cnpm install videojs-contrib-hls

代码语言:javascript
代码运行次数:0
运行
复制
<video id="my-video" class="video-js vjs-default-skin" controls preload="auto" >
                                        <source src="http://192.168.99.100:8000/live/test.m3u8" type="application/x-mpegURL">
                                </video>

<script>
        //vue 的video插件
            import videojs from 'video.js'
            import 'videojs-contrib-hls'

    export default {
    mounted:function(){
                    //自动执行直播平台
                    videojs('my-video', {
                    bigPlayButton: false,
                    textTrackDisplay: false,
                    posterImage: true,
                    errorDisplay: false,
                    controlBar: true
            }, function () {
                    this.play()
            })
        }
    }
}



</script>

效果如下:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档