一看就能学会的H5视频推流方案
本文由云+社区发表
作者:周超
导语
随着直播平台爆发式增长,直播平台从 PC 端转战移动端,紧跟着直播的潮流,自己学习实现了一套简单的 H5 视频推流的解决方案,下面就给小伙伴们分享一下自己学习过程中的经验。
环境部署
1、 配置、安装 Nginx;
# ./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.39 --with-zlib=/usr/local/src/zlib-1.2.11 --with-openssl=/usr/local/openssl/
# make
# make install
# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf //启动Ngnix
# netstat -ano | grep 80
2、扩展 Nginx-rtmp-module
# ./configure --add-module=/usr/local/src/nginx-rtmp-module-master --with-openssl=/usr/local/openssl/
# make
# make install
# vim /usr/local/ngnix/conf/ngnix.conf
include /usr/localcinx-rtmp-module-master/testinx.conf;
# vim /usr/localcinx-rtmp-module-master/testinx.conf
rtmp {server {listen 1935;application myapp {live on;#record keyframes;#record_path /tmp;#record_max_size 128K;#record_interval 30s;#record_suffix .this.is.flv;#on_publish http://localhost:8080/publish;#on_play http://localhost:8080/play;#on_record_done http://localhost:8080/record_done;}application hls {live on;hls on;hls_path /tmp/hls;hls_fragment 10s; #每个视频切片的时长。hls_playlist_length 60s; #总共可以回看的事件,这里设置的是1分钟。#hls_continuous on; #连续模式。#hls_cleanup on; #对多余的切片进行删除。#hls_nested on; #嵌套模式。}}
}http {server {listen 8080;location /stat {rtmp_stat all;rtmp_stat_stylesheet stat.xsl;}location /stat.xsl {root /usr/local/src/nginx-rtmp-module-master/;}location /control {rtmp_control all;}location /rtmp-publisher {root /usr/local/src/nginx-rtmp-module-master/test;}location /hls {#server hls fragmentstypes{application/vnd.apple.mpegurl m3u8;video/mp2t ts;}#alias /tmp/app;root /tmp;expires -1;}location / {root /usr/local/src/nginx-rtmp-module-master/test/rtmp-publisher;}}
}
# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
# netstat -ltn #查看端口的监听情况
3、 安装 ffmpeg
# ./configure --prefix=/usr/local/ffmpeg
# make
# make install
至于 ffmpeg 是啥?详细介绍可以参考:《【经验分享】音频、视频利器——FFmpeg》
模拟推流
- 先来看一个简单的直播推流流程图 :
- 用 flv 视频文件模拟 RTMP 视频流:
# ffmpeg -re -i test.flv -vcodec copy -acodec copy -f flv rtmp://ip:1935/myapp/mystream
注:RTMP(Real Time Messaging Protocol),实时消息传输协议,用于视频直播协议,和 HLS 一样都可以应用于视频直播;
- 用 mp4 视频文件模拟 HLS 视频流:
ffmpeg -re -i test.mp4 -c copy -f flv rtmp://ip:1935/hls/mystream
注:HLS(HTTP Live Streaming), Apple 的动态码率自适应技术,主要用于 PC 和 Apple 终端的音视频服务;
- HLS 的请求流程:
H5 如何在页面上播放视频
<video autoplay webkit-playsinline> <source src="http://ip/hls/mystream.m3u8" type="application/vnd.apple.mpegurl" /> <p class="warning">Your browser does not support HTML5 video.</p> </video>
总结
根据以上的流程,简单的实现了一个视频直播的流服务器来推送直播流,并且可以在 H5 页面上播放视频流。有兴趣的小伙伴们也可以尝试一下~
此文已由腾讯云+社区在各渠道发布
获取更多新鲜技术干货,可以关注我们腾讯云技术社区-云加社区官方号及知乎机构号
一看就能学会的H5视频推流方案相关推荐
- 简单的 H5 视频推流解决方案
简单的 H5 视频推流解决方案 参考文章: (1)简单的 H5 视频推流解决方案 (2)https://www.cnblogs.com/lidabo/p/7099633.html 备忘一下.
- 移动端h5视频处理方案
2019独角兽企业重金招聘Python工程师标准>>> 今天处理一个移动端h5的视频时被狠狠的打脸,果断在网上搜了好些文章狠补了一下,下面做一个记录,方便以后查看: H5移动端页面常 ...
- 「我是个杀猪的,毫无基础看这本能学会 Python 吗?」
文末有活动 自从蟒蛇书(<Python 编程从入门到实践>)在当当和京东上霸榜,成为国民级的 Python 入门书之后,小编从各个网站的问答区发现了很多网友的提问,有些问题直击学习的本质, ...
- 【腾讯Bugly干货分享】H5 视频直播那些事
为什么80%的码农都做不了架构师?>>> 本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57a42ee6 ...
- 神奇的H5视频画中画功能
一个H5视频,可以从浏览器独立出来播放视频,看起来像是一个本地应用.画中画功能是chrome70+的新功能 官方例子,Github地址 <video id="video" s ...
- 只要掌握这两个方法便可快速学会怎么剪裁视频尺寸
当我们在制作视频时,偶尔会出现画面周边携带水印,或是尺寸比例不合适等情况,这时候就需要对视频的画面进行剪裁. 但是许多小伙伴还不明白怎么剪裁视频尺寸,其实很简单,只要借助工具即可轻松完成.所以我今天带 ...
- 大学四年,我悄悄看了B站上这些 Java 视频,毕业去阿里了!
万年自学党来了,我上大学的时候,视频还远远没有现在这么丰富,我记得那时候我看的是马士兵和尚学堂高琪的,u1s1,我觉得比我们大学老师讲得好很多. 现在B站上这方面的学习资源非常丰富,我去挨着挨着搜了一 ...
- OpenCV入门(十七)快速学会OpenCV 16 视频处理
OpenCV入门(十七)快速学会OpenCV 16 视频处理 1.构造VideoCapture对象 2.构造VideoWriter对象 3.视频操作基础 3.1 读取视频帧 3.2 播放视频文件 3. ...
- [标题党]15分钟开发可支持百万观众的H5视频直播网站
15分钟用Rails开发一个Blog有什么意思?那是2005年的Hipster追捧的玩具. 现在都已经是2015年了.HTML应该读作Hipster's Toolkit Made Live了. 既然是 ...
- 智能会议系统(10)---WebRtc在H5视频聊天
基于WebRtc在H5视频聊天.视频教学.视频会议.视频直播.白板互动低延时方案 随移动互联应用加快,4G,5G网络上马,低延时网络视频应改越来越走近生活,在教学,会议,在线医疗,招聘交友及时视频要求 ...
最新文章
- 一、预备知识―程序的内存分配
- 网易云信自研大规模传输网核心系统架构剖析
- GlassFish linux下配置服务并自动启动
- 解决 ASP.NET Core 部署到 IIS,更新项目时文件夹正在使用错误
- 孩子大了真是不好管了
- MOSS服务器场迁移1-有关切换登录用户时需要刷新一次才能成功的问题
- iOS开发针对对Masonry下的FPS优化讨论
- 1043. 输出PATest(20)-PAT乙级真题
- QCA9377 QCA1023系列蓝牙WiFi二合一模块方案选型参考
- 收入时间序列——之预测总结篇
- VS2012快捷方式的路径
- 思维拓展训练中的创新游戏设计
- 互联网计算机远程建立连接怎么回事,qq远程协助一直正在建立连接?最全分析解决方法送上!...
- endNote教程-5、6-高效阅读文献+高效文献调研
- 2019-06-12-pintos 实验1
- ES06# Filebeat采集原理与监控指标梳理
- 交换机 VLAN 端口类型
- 信号之零输入和零状态响应
- CC2640R2F BLE5.0 蓝牙协议栈Off-Chip OAD功能
- 自动驾驶(四十七)---------超声波雷达简介
热门文章
- [NOIP2013]华容道 题解(搜索)
- jQuery.param() 函数详解
- linux下NIS搭建(六)
- python判断文件格式_Python判断上传文件类型
- mysql怎么判断多行数据日期是否连续_MySQL学习笔记(一)
- linux内核C -- 第06课:U-boot 镜像自拷贝分析——section 属性
- 系统设计---分层,分级,分块
- adb server is out of date killing
- 上传附件点击事件_支持高拍仪扫描凭证附件的出纳记账软件
- mac编写python_刚到手Mac写Python的一个简单问题