在线直播系统网站源码搭建一个点播跟直播流媒体服务器
在线直播系统网站源码搭建一个点播跟直播流媒体服务器
先上效果
使用OBS软件录制电脑桌面操作推流到自己搭建的流媒体服务器,然后在网页拉流播放。当然也可以采集摄像头、麦克风推流,或者推送本地视频到流媒体服务器。
搭建步骤
Ubuntu18.04安装nginx-flv模块扩展
这里我是用虚拟机安装了Ubuntu18.04先下载nginx1.19.3的源码与nginx-http-flv-module的源码。
wget https://github.com/winshining/nginx-http-flv-module/archive/master.zip
wget http://nginx.org/download/nginx-1.19.3.tar.gz && tar -zxvf nginx-1.19.3.tar.gz
复制代码
解压下载的个源码进行编译,这样一个Nginx搭建的流媒体服务器就好了。
cd nginx-1.19.3 #进入nginx源码目录./configure --add-module=../nginx-http-flv-module-mastervim objs/Makefile #删除-Werrormakemake install
复制代码
进行点播与直播配置
上面已经安装好了nginx,编辑/usr/local/nginx/conf/nginx.conf进行相关配置。这里直接贴出完整的配置。其中rtmp为开启rtmp服务功能,并且为了能够在网页端播放开启了hls。推流的rmtp流会转换成hls协议的ts切片,保存在服务器上,nginx配置了location让网页能够访问切好的hls切片。
这里解释下rtmp是adobe的私有协议,必须使用flash播放。hls是苹果开发的视频传输协议使用http进行传输。ios跟android支撑的都很好,一般进行跨平台直播使用hls协议比较常见。
#user nobody;
worker_processes 1;
events {worker_connections 1024;
}rtmp { #RTMP服务server {listen 1935; #//服务端口chunk_size 4096; #//数据传输块的大小application vod {play /opt/video/vod; #//视频文件存放位置。}application live{live on; #直播hls on; #把直播服务器改造成实时回发服务器,视频切片成tswait_key on; #对视频切片进行保护hls_path /opt/video/rtmp/hls; #ts切片存放位置hls_fragment 10s; #切片大小hls_playlist_length 60s; #回看的时间hls_continuous on; #连续模式hls_cleanup on; #对多余切片进行删除hls_nested on; #嵌套模式}}
}
http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {listen 80;server_name localhost;location /stat { #第二处添加的location字段。rtmp_stat all;rtmp_stat_stylesheet stat.xsl;}location /stat.xsl { #第二处添加的location字段。root /usr/local/nginx-http-flv-module/;}location /hls {types {application/vnd.apple.mpegurl m3u8;video/mp2t ts;}alias /opt/video/rtmp/hls;add_header Cache-Control no-cache;add_header Access-Control-Allow-Origin *; }location / {root html;index index.html index.htm;}
}
复制代码
进行测试
使用obs推流推送到rtmp://192.168.227.128/live串流密钥随便填写即可。
h5网页端采用video.js进行播放直播流视频,这里的播放的地址是切好片的m3u8文件地址,m3u8存放了每一个小切片的地址。
<body><video id=example-video width=600 height=300 class="video-js vjs-default-skin" controls><sourcesrc="http://192.168.227.128/hls/test/index.m3u8"type="application/x-mpegURL"></video><link href="//vjs.zencdn.net/7.8.2/video-js.min.css" rel="stylesheet"><script src="//vjs.zencdn.net/7.8.2/video.min.js"></script><script src="videojs-contrib-hls.min.js"></script><script src="https://unpkg.com/browse/@videojs/http-streaming@2.2.3/dist/videojs-http-streaming.min.js"></script><script>var player = videojs('example-video');player.play();</script></body>
复制代码
上面的nginx配置还配置了本地视频文件点播配置,把视频文件放在/opt/video/vod位置,使用vlc填写rtmp://192.168.227.128/vod/qlgame.mp4进行播放即可。
以上搭建只是测试学习使用,实际音视频开发涉及采集、编码、推流、传输、拉流、解码等等过程,每一个过程都设计许多知识。后面音视频开发学习笔记,等我攒了一些笔记发出来互相学习。
在线直播系统网站源码搭建一个点播跟直播流媒体服务器本文转载自网络,感谢(程序员众推)的分享,转载仅为分享干货知识,如有侵权欢迎联系云豹科技进行删除处理
在线直播系统网站源码搭建一个点播跟直播流媒体服务器相关推荐
- 哆咪付在线换钱系统网站源码
介绍: 1.收款接口对接易支付,可任意配置易支付接口 2.后台设置开启或关闭换钱功能开关 3.后台设置开启或关闭首页换钱历史记录 4.自定义设置换钱手续费百分比(列:设置3%,实际100元付款103元 ...
- php题库app_PHP在线考试系统网站源码 带web 手机端 网页版
在线考试系统的功能与优点: 1.强化训练测验,对知识点进行单独联系 : 2.随机组卷练习,系统自动抽取题目进行练习 : 3.手工组卷联系,通过教师平台手工组卷形成考卷进行模拟练习 : 4.支持主客观题 ...
- 松果在线报名系统网站源码
介绍: 松果信息填报平台可用于各类信息的在线填报,如:新生在线报名.产品报修.活动报名.人员签到.客户反馈等,同时支持电脑端与手机端填报.平台内可创建多个不同的报名项目,各个项目具有独立的功能设置.风 ...
- 骗子收录系统网站源码+搭建教程
安装教程: 安装教程: 导入源码文件解压 运行目录public 找到application/database.php文件修改一下数据库文件 然后把www_axiangw_com.sql数据库文件导入 ...
- EduSoHo精品在线教育点播系统网站源码
介绍: 商业版包含插件列表 插件路径:-/plugins/ ChargeCoin(账户充值) Discount(打折活动) GracefulTheme(雅致简洁主题) Homework(作业练习) M ...
- ask2在线问答解惑系统网站源码
简介: [问答系统v3.7]非常不错的一款ask2在线问答解惑系统网站源码 default默认是百度问答模板 sowenda是高仿360问答的. soso模板是仿腾讯soso问答界面. 一套wap模板 ...
- 教育网站源码搭建的在线教育网站,不同类型各有什么优缺点
在线教育网站搭建已经成为机构争相进军线上的目标,在教育领域中,利用教育网站源码搭建的在线教育网站都有哪些类型,各有什么亮点以及不足之处呢? 一.B2C服务型 B2C服务型是指自主制造高质量内容,类似电 ...
- 全功能版带直播插件完整商城系统网站源码
介绍: 全功能版带直播插件完整商城系统网站源码 系统就是集客户关系管理+营销电商系统,能够快速积累客户.会员数据分析.智能转化客户. 有效提高销售.会员维护.网络营销的一款企业应用 包含商城.拼团.砍 ...
- 在线教育平台网站源码是什么?
如今,网络技术飞速发展,"直播"也成为了新时代各种流通企业的标配,各种各样结合直播的新兴行业如雨后春笋般破土而出.特别是2020年受新冠肺炎疫情影响,传统线下行业备受冲击,线下店铺 ...
- 怎么使用下载的建站公司网站源码搭建自己的企业网站
网站源码是指未编译的文本代码或一个网站的全部源码文件,每种网站都有属于自己的建站程序,每种建站程序所用到的源码都是不一样的,专业的技术人员看到源码之后就知道这个网站的质量如何了.下面来说说怎么使用下载 ...
最新文章
- PHP 错误抛出及自定义处理
- 改进YOLO | 可能这才是用Transformer正确打开YOLO的方式吧?
- MATLAB中 raw(,利用Photoshop + Matlab 解析10-bit RAW
- 【HDU 5402】Travelling Salesman Problem(构造)
- uniapp android原生,在uni-app项目中集成Android原生工程
- python自学教程 pdf-《Python编程从入门到精通》PDF高清完整版-PDF下载
- Spring中Quartz的最精简的配置
- 【51NOD】1006 最长公共子序列Lcs(动态规划)
- ZYNQ7020 FPGA 如何生成从Flash和SD卡启动的镜像文件
- outlook登陆邮件接收服务器(POP3)失败问题
- 怎样解决迅雷下载时的版权限制-两招解决迅雷下载版权限制
- 苹果服务器装系统教程视频教程,苹果“雪豹”服务器系统安装傻瓜教程(多图)...
- 时钟同步服务器性能,GPS时间同步概述-GPS同步时钟的适应范围-GPS同步的优缺点-NTP服务器|同步时钟|子母钟|数显钟|GPS时间同步...
- Mybatis面试题总结
- Postman 开发团队共享接口协作调试
- kettle用命令行执行ktr和kjb
- Handler消息机制介绍,流程梳理
- 【Pyecharts50例】自定义饼图标签/显示百分比
- 吴军:Google 中日韩文搜索算法的主要设计者,因《浪潮之巅》享誉业界 | CNCC 2018...
- 计算机设备内存,外部设备访问计算机内存的方法与流程