现在直播非常火爆,可以从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. 直播电商源码使用缓存,将面临什么问题

    直播电商源码使用缓存的设计包含很多技巧,设计不当将会导致严重的后果.本文将介绍缓存使用中常见的三大问题,并给出相应的解决方案. 1. 缓存穿透 在大多数直播电商源码中,缓存的使用方式如下图所示: 当业 ...

  2. 优化音质是直播电商源码不能忽略的

    最近直播电商源码在使用WebRTC进行直播推流的时候,遇到了音乐音质不好的问题,对此进行优化后,音乐音质有很大提升,因此记录下优化过程,分享出来 1. 关闭AEC,AGC,NS 因为WebRTC是专为 ...

  3. 直播电商源码是怎样实现快速打开直播的

    经常会看到,很多公司都在带宽和卡顿中抉择,想把H.265编码格式做为视频编码格式普及开来,用于直播电商源码播放,无论在TV上,还是手机上,由于很多设备不支持这种编码格式,所以往往要做适配.有人问,为什 ...

  4. 直播电商源码,通过vue实现直播聊天

    基于vue2.0+vue-cli+vuex+vue-router+webpack+es6+wcPop等技术开发的直播电商源码聊天室vue-chatRoom,实现了直播电商源码聊天功能,新增了消息下拉刷 ...

  5. 直播电商源码如何实现开屏广告

    直播电商源码如何实现开屏广告的相关代码 1.1 添加SplashView. 在XML布局文件中添加SplashView. Xml 代码 <?xml version="1.0" ...

  6. 【报告分享】直播电商生态进化论-2020直播电商行业研究报告.pdf(附下载链接)...

    大家好,我是文文(微信:sscbg2020),今天给大家分享微播易于2020年6月发布的报告<直播电商生态进化论-2020直播电商行业研究报告.pdf>.直播电商无疑是2020年最火的一个 ...

  7. JAVA多语言多商户跨境电商源码

    多语言无货源跨境电商源码是一个功能强大的电子商务平台,该平台具有许多先进的功能和特点,可以帮助用户轻松地开展跨境电商业务. 一.主要功能介绍 多语言支持:该平台支持多语言,包括英语.中文.法语.西班牙 ...

  8. 微信小程序电商源码:外卖小程序,电商小程序,门店类小程序,展示类小程序,批发商城小程序、分销小程序。

    介绍: 1.naicha 2.xianhua 3.xingbake 4.zhubaoxiao 5.zhubaoxiao 6.majiangshangcheng 7.jiafang 8.huazhuan ...

  9. java版商城 springcloud+springboot+mybatis+redis+uniapp 多商户电子商务源码 直播带货源码 短视频带货源码 社交电商源码 分布式 微服务电子商务源码

    涉及平台:平台管理(包含自营店面).商家端(PC端.手机端).买家平台(PC端.H5/公众号.小程序.APP端(IOS/Android).微服务平台(业务服务) 核心架构:Spring Cloud.S ...

最新文章

  1. TurboMail最新版本4.1.0之我见(一)
  2. java web 购物车_java web开发之实现购物车功能
  3. Verilog设计实现俄罗斯方块游戏
  4. 采用HttpModules来重写URLs(原理篇)转
  5. C++ set insert的返回值
  6. [HNOI2012]三角形覆盖问题
  7. 用PhotoSwipe制作相册,手势可放大
  8. iOS端Mock GPS定位 —— 测试、开发、玩游戏、发朋友圈等等,你都用得上
  9. 手机上有哪些不错的c语言编程软件?
  10. JavaWeb学习笔记
  11. 计算机网络阶段,计算机网络发展的四个阶段
  12. 解决Nextcloud新建用户默认语言是英文且默认地区是美国的方法
  13. 手机端(移动端)UI框架整理
  14. 《HelloGitHub》第 69 期
  15. iphone编程资源站
  16. 解决Android模拟器不显示问题
  17. 掌握el-table的formatter方法,提升数据展示效果
  18. 联想电脑去掉开机广告 关闭开机广告 ideapad 去掉开机广告
  19. 学android开发 不得不去的好地方
  20. 程序设计与算法(三)期末考试(2020春季)

热门文章

  1. Jira统计工时sql备份
  2. 鼠标停留触发事件,离开时也触发
  3. JAVA 3DES加密 ECB模式 ZeroPadding填充
  4. 安装MikTex时候出现“指定安装路径不是空的”(“The specified installation directory is not empty”)提示的解决办法
  5. 【详细+超基础】Java-学习笔记
  6. 1654_MIT 6.828 JOS entry.S实现分析
  7. React Native小菜鸡的踩坑排雷记录(1)
  8. windows10/11显示需要提供要在幻灯片放映中的显示的多张图片
  9. 【ios游戏开发】分享share
  10. 设计与实现Web前端开发的基础