直播电商源码,简述直播的实现原理
现在直播非常火爆,可以从PC或手机直播,然后从PC或是手机或是 支持HTML5的浏览器 收看。但是,你知道直播电商源码后面的技术和实现原理码?
首先,视频有它的播放协议。原则上,RTSP,RTMP,HTTP都可以做直播和点播,但一般做直播用RTSP和RTMP,做点播用HTTP。我们选用的是RTMP协议。
RTMP 协议
RTMP(Real Time Message Protocol/实时信息传输协议)是应用层协议,靠底层传输层协议(通常是TCP)来保证信息传输的可靠性的。在TCP链接建立后,RTMP协议也要客户端和服务器通过“握手”来建立RTMP Connection,然后在Connection上传输控制信息。RTMP协议传输时会对数据格式化,而实际传输的时候为了更好地实现多路复用、分包和信息的公平性,发送端会把Message划分为带有Message ID的Chunk,每个Chunk可能是一个单独的Message,也可能是Message的一部分,在接受端会根据Chunk中包含的data的长度,message id和message的长度把chunk还原成完整的Message,从而实现信息的收发。
我们看看两个常用的视频服务。一个是由直播电商源码向服务器发起请求推流到服务器,这个就是直播的播放服务,流程如下。
另一个是由直播电商源码向服务器发起请求从服务器端接受数据,可以多次调用,这就是播放服务。流程如下。
RTMP是直播后面的协议,有很多的开源软件实现了,细节我们不再细说。下面,我们看看怎么搭建直播电商源码后台服务系统。
安装和配置 LEMP
LEMP栈是指Linux(L), NGINX(E), MySQL(M), PHP(P),还记得LAMP吗?LEMP既是将NGINX(E)取代了Apache(A)。
首先,用以下命令安装和启动NGINX web server。
# sudo apt-get update # sudo apt-get install nginx # sudo service nginx start
接着,安装MySQL。
# sudo apt-get install mysql-server mysql php5-mysql
接着,安装和配置PHP。
# sudo apt-get install php5-fpm
location ~ .php$ {try_files $uri =404;fastcgi_pass unix:/var/run/php5-fpm.sock;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params; }
最后,重新启动NGINX web server。
# sudo service nginx restart
这样,后台的web server设置好了,可以对外提供网页和PHP服务了。但是,NGINX并不支持RTMP协议,我们需要下载,编译,安装和配置RTMP模块。
安装和配置nginx-rtmp-module
首先,下载NGINX的源代码,确保环境下能正确的编译。
# git clone https://github.com/nginx/nginx.git
然后,下载RTMP模块。
# git clone https://github.com/arut/nginx-rtmp-module.git
然后,cd到NGINX的源代码目录,config,make和install 刚才下载的RTMP模块。
# ./configure --add-module=/path/to/nginx-rtmp-module make make install # make # make install
最后,在NGINX的配置文件中,加上RTMP相关的配置,并且重新启动NGINX server。
rtmp {server {listen 1935;chunk_size 4000;# HLSapplication hls {live on;hls on;hls_path /tmp/hls;}# MPEG-DASH is similar to HLSapplication dash {live on;dash on;dash_path /tmp/dash;}} }# HTTP can be used for accessing RTMP stats http {server {listen 8080;# This URL provides RTMP statistics in XMLlocation /stat {rtmp_stat all;# Use this stylesheet to view XML as web page# in browserrtmp_stat_stylesheet stat.xsl;}location /stat.xsl {# XML stylesheet to view RTMP stats.# Copy stat.xsl wherever you want# and put the full directory path hereroot /path/to/stat.xsl/;}location /hls {# Serve HLS fragmentstypes {application/vnd.apple.mpegurl m3u8;video/mp2t ts;}root /tmp;add_header Cache-Control no-cache;}location /dash {# Serve DASH fragmentsroot /tmp;add_header Cache-Control no-cache;}} }
声明:本文由云豹科技转发自找个毛线博客,如有侵权请联系作者删除
直播电商源码,简述直播的实现原理相关推荐
- 直播电商源码使用缓存,将面临什么问题
直播电商源码使用缓存的设计包含很多技巧,设计不当将会导致严重的后果.本文将介绍缓存使用中常见的三大问题,并给出相应的解决方案. 1. 缓存穿透 在大多数直播电商源码中,缓存的使用方式如下图所示: 当业 ...
- 优化音质是直播电商源码不能忽略的
最近直播电商源码在使用WebRTC进行直播推流的时候,遇到了音乐音质不好的问题,对此进行优化后,音乐音质有很大提升,因此记录下优化过程,分享出来 1. 关闭AEC,AGC,NS 因为WebRTC是专为 ...
- 直播电商源码是怎样实现快速打开直播的
经常会看到,很多公司都在带宽和卡顿中抉择,想把H.265编码格式做为视频编码格式普及开来,用于直播电商源码播放,无论在TV上,还是手机上,由于很多设备不支持这种编码格式,所以往往要做适配.有人问,为什 ...
- 直播电商源码,通过vue实现直播聊天
基于vue2.0+vue-cli+vuex+vue-router+webpack+es6+wcPop等技术开发的直播电商源码聊天室vue-chatRoom,实现了直播电商源码聊天功能,新增了消息下拉刷 ...
- 直播电商源码如何实现开屏广告
直播电商源码如何实现开屏广告的相关代码 1.1 添加SplashView. 在XML布局文件中添加SplashView. Xml 代码 <?xml version="1.0" ...
- 【报告分享】直播电商生态进化论-2020直播电商行业研究报告.pdf(附下载链接)...
大家好,我是文文(微信:sscbg2020),今天给大家分享微播易于2020年6月发布的报告<直播电商生态进化论-2020直播电商行业研究报告.pdf>.直播电商无疑是2020年最火的一个 ...
- JAVA多语言多商户跨境电商源码
多语言无货源跨境电商源码是一个功能强大的电子商务平台,该平台具有许多先进的功能和特点,可以帮助用户轻松地开展跨境电商业务. 一.主要功能介绍 多语言支持:该平台支持多语言,包括英语.中文.法语.西班牙 ...
- 微信小程序电商源码:外卖小程序,电商小程序,门店类小程序,展示类小程序,批发商城小程序、分销小程序。
介绍: 1.naicha 2.xianhua 3.xingbake 4.zhubaoxiao 5.zhubaoxiao 6.majiangshangcheng 7.jiafang 8.huazhuan ...
- java版商城 springcloud+springboot+mybatis+redis+uniapp 多商户电子商务源码 直播带货源码 短视频带货源码 社交电商源码 分布式 微服务电子商务源码
涉及平台:平台管理(包含自营店面).商家端(PC端.手机端).买家平台(PC端.H5/公众号.小程序.APP端(IOS/Android).微服务平台(业务服务) 核心架构:Spring Cloud.S ...
最新文章
- TurboMail最新版本4.1.0之我见(一)
- java web 购物车_java web开发之实现购物车功能
- Verilog设计实现俄罗斯方块游戏
- 采用HttpModules来重写URLs(原理篇)转
- C++ set insert的返回值
- [HNOI2012]三角形覆盖问题
- 用PhotoSwipe制作相册,手势可放大
- iOS端Mock GPS定位 —— 测试、开发、玩游戏、发朋友圈等等,你都用得上
- 手机上有哪些不错的c语言编程软件?
- JavaWeb学习笔记
- 计算机网络阶段,计算机网络发展的四个阶段
- 解决Nextcloud新建用户默认语言是英文且默认地区是美国的方法
- 手机端(移动端)UI框架整理
- 《HelloGitHub》第 69 期
- iphone编程资源站
- 解决Android模拟器不显示问题
- 掌握el-table的formatter方法,提升数据展示效果
- 联想电脑去掉开机广告 关闭开机广告 ideapad 去掉开机广告
- 学android开发 不得不去的好地方
- 程序设计与算法(三)期末考试(2020春季)
热门文章
- Jira统计工时sql备份
- 鼠标停留触发事件,离开时也触发
- JAVA 3DES加密 ECB模式 ZeroPadding填充
- 安装MikTex时候出现“指定安装路径不是空的”(“The specified installation directory is not empty”)提示的解决办法
- 【详细+超基础】Java-学习笔记
- 1654_MIT 6.828 JOS entry.S实现分析
- React Native小菜鸡的踩坑排雷记录(1)
- windows10/11显示需要提供要在幻灯片放映中的显示的多张图片
- 【ios游戏开发】分享share
- 设计与实现Web前端开发的基础