当前位置: 首页 > news >正文

给帅哥做奴视频网站太仓市住房和城乡建设局官方网站

给帅哥做奴视频网站,太仓市住房和城乡建设局官方网站,seo标题生成器,网站板块设计有哪些转自http://www.php.cn/html5-tutorial-403035.html 最近视频直播比较火#xff0c;发现目前 WEB 上主流的视频直播方案有 HLS 和 RTMP#xff0c;移动 WEB 端目前以 HLS 为主#xff0c;PC端则以 RTMP 为主实时性较好#xff0c;接下来将围绕这两种视频流协议来展开H5直播…转自http://www.php.cn/html5-tutorial-403035.html 最近视频直播比较火发现目前 WEB 上主流的视频直播方案有 HLS 和 RTMP移动 WEB 端目前以 HLS 为主PC端则以 RTMP 为主实时性较好接下来将围绕这两种视频流协议来展开H5直播主题分享下面通过本文给大家分享HTML5视频直播思路详解一起看看吧 前言 前不久抽空对目前比较火的视频直播做了下研究与探索了解其整体实现流程以及探讨移动端HTML5直播可行性方案。 发现目前 WEB 上主流的视频直播方案有 HLS 和 RTMP移动 WEB 端目前以 HLS 为主HLS存在延迟性问题也可以借助 video.js 采用RTMPPC端则以 RTMP 为主实时性较好接下来将围绕这两种视频流协议来展开H5直播主题分享。 一、视频流协议HLS与RTMP 1. HTTP Live Streaming HTTP Live Streaming简称 HLS是一个基于 HTTP 的视频流协议由 Apple 公司实现Mac OS 上的 QuickTime、Safari 以及 iOS 上的 Safari 都能很好的支持 HLS高版本 Android 也增加了对 HLS 的支持。一些常见的客户端如MPlayerX、VLC 也都支持 HLS 协议。 HLS 协议基于 HTTP而一个提供 HLS 的服务器需要做两件事 编码以 H.263 格式对图像进行编码以 MP3 或者 HE-AAC 对声音进行编码最终打包到 MPEG-2 TSTransport Stream容器之中分割把编码好的 TS 文件等长切分成后缀为 ts 的小文件并生成一个 .m3u8 的纯文本索引文件浏览器使用的是 m3u8 文件。m3u8 跟音频列表格式 m3u 很像可以简单的认为 m3u8 就是包含多个 ts 文件的播放列表。播放器按顺序逐个播放全部放完再请求一下 m3u8 文件获得包含最新 ts 文件的播放列表继续播周而复始。整个直播过程就是依靠一个不断更新的 m3u8 和一堆小的 ts 文件组成m3u8 必须动态更新ts 可以走 CDN。一个典型的 m3u8 文件格式如下 1 2 3 4 5 6 7 8 9 #EXTM3U #EXT-X-STREAM-INF:PROGRAM-ID1, BANDWIDTH200000 gear1/prog_index.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID1, BANDWIDTH311111 gear2/prog_index.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID1, BANDWIDTH484444 gear3/prog_index.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID1, BANDWIDTH737777 gear4/prog_index.m3u8 可以看到 HLS 协议本质还是一个个的 HTTP 请求 / 响应所以适应性很好不会受到防火墙影响。但它也有一个致命的弱点延迟现象非常明显。如果每个 ts 按照 5 秒来切分一个 m3u8 放 6 个 ts 索引那么至少就会带来 30 秒的延迟。如果减少每个 ts 的长度减少 m3u8 中的索引数延时确实会减少但会带来更频繁的缓冲对服务端的请求压力也会成倍增加。所以只能根据实际情况找到一个折中的点。 对于支持 HLS 的浏览器来说直接这样写就能播放了 1 video src”./bipbopall.m3u8″ height”300″ width”400″  preload”auto” autoplay”autoplay” loop”loop” webkit-playsinline”true”/video 注意HLS 在 PC 端仅支持safari浏览器类似chrome浏览器使用HTML5 video 标签无法播放 m3u8 格式可直接采用网上一些比较成熟的方案如sewise-player、MediaElement、videojs-contrib-hls、jwplayer。 2. Real Time Messaging Protocol Real Time Messaging Protocol简称 RTMP是 Macromedia 开发的一套视频直播协议现在属于 Adobe。这套方案需要搭建专门的 RTMP 流媒体服务如 Adobe Media Server并且在浏览器中只能使用 Flash 实现播放器。它的实时性非常好延迟很小但无法支持移动端 WEB 播放是它的硬伤。 虽然无法在iOS的H5页面播放但是对于iOS原生应用是可以自己写解码去解析的, RTMP 延迟低、实时性较好。浏览器端HTML5 video 标签无法播放 RTMP 协议的视频可以通过 video.js 来实现。 1 2 3 4 5 6 7 8 9 10 11 link href“http://vjs.zencdn.net/5.8.8/video-js.css” rel“stylesheet” video id“example_video_1″ class“video-js vjs-default-skin” controls preload“auto” width“640” height“264” loop“loop” webkit-playsinline source src“rtmp://10.14.221.17:1935/rtmplive/home” type‘rtmp/flv’ /video script src“http://vjs.zencdn.net/5.8.8/video.js”/script script videojs.options.flash.swf ‘video.swf’; videojs(‘example_video_1′).ready(function() { this.play(); }); /script 3. 视频流协议HLS与RTMP对比 二、直播形式 目前直播展示形式通常以YY直播、映客直播这种页面居多可以看到其结构可以分成三层 ① 背景视频层 ② 关注、评论模块 ③ 点赞动画 而现行H5类似直播页面实现技术难点不大其可以通过实现方式分为 ① 底部视频背景使用video视频标签实现播放 ② 关注、评论模块利用 WebScoket 来实时发送和接收新的消息通过DOM 和 CSS3 实现 ③ 点赞利用 CSS3 动画 了解完直播形式之后接下来整体了解直播流程。 三、直播整体流程 直播整体流程大致可分为 视频采集端可以是电脑上的音视频输入设备、或手机端的摄像头、或麦克风目前以移动端手机视频为主。 直播流视频服务端一台Nginx服务器采集视频录制端传输的视频流(H264/ACC编码)由服务器端进行解析编码推送RTMP/HLS格式视频流至视频播放端。 视频播放端可以是电脑上的播放器QuickTime Player、VLC手机端的native播放器还有就是 H5 的video标签等目前还是以手机端的native播放器为主。 web前端学习交流群328058344 禁止闲聊非喜勿进 四、H5 录制视频 对于H5视频录制可以使用强大的 webRTC Web Real-Time Communication是一个支持网页浏览器进行实时语音对话或视频对话的技术缺点是只在 PC 的 Chrome 上支持较好移动端支持不太理想。 使用 webRTC 录制视频基本流程 ① 调用 window.navigator.webkitGetUserMedia() 获取用户的PC摄像头视频数据。 ② 将获取到视频流数据转换成 window.webkitRTCPeerConnection (一种视频流数据格式)。 ③ 利用 WebScoket 将视频流数据传输到服务端。 注意 虽然Google一直在推WebRTC目前已有不少成型的产品出现但是大部分移动端的浏览器还不支持 webRTC最新iOS 10.0也不支持所以真正的视频录制还是要靠客户端iOS,Android来实现,效果会好一些。 WebRTC支持度 WebRTC支持度 iOS原生应用调用摄像头录制视频流程 ① 音视频的采集利用AVCaptureSession和AVCaptureDevice可以采集到原始的音视频数据流。 ② 对视频进行H264编码对音频进行AAC编码在iOS中分别有已经封装好的编码库x264编码、faac编码、ffmpeg编码来实现对音视频的编码。 ③ 对编码后的音、视频数据进行组装封包。 ④ 建立RTMP连接并上推到服务端。 五、搭建Ng 五、搭建NginxRtmp直播流服务 安装nginx、nginx-rtmp-module ① 先clone nginx项目到本地 brew tap homebrew/nginx ② 执行安装nginx-rtmp-module brew install nginx-full –with-rtmp-module 2. nginx.conf配置文件配置RTMP、HLS 查找到nginx.conf配置文件路径/usr/local/etc/nginx/nginx.conf配置RTMP、HLS。 ① 在http节点之前添加 rtmp 的配置内容 ② 在http中添加 hls 的配置 3. 重启nginx服务 重启nginx服务浏览器中输入 http://localhost:8080是否出现欢迎界面确定nginx重启成功。 nginx -s reload 六、直播流转换格式、编码推流 当服务器端接收到采集视频录制端传输过来的视频流时需要对其进行解析编码推送RTMP/HLS格式视频流至视频播放端。通常使用的常见编码库方案如x264编码、faac编码、ffmpeg编码等。鉴于 FFmpeg 工具集合了多种音频、视频格式编码我们可以优先选用FFmpeg进行转换格式、编码推流。 1.安装 FFmpeg 工具 brew install ffmpeg 2.推流MP4文件 视频文件地址/Users/gao/Desktop/video/test.mp4 推流拉流地址rtmp://localhost:1935/rtmplive/homertmp://localhost:1935/rtmplive/home 1 2 3 4 //RTMP 协议流 ffmpeg -re -i /Users/gao/Desktop/video/test.mp4 -vcodec libx264 -acodec aac -f flv rtmp://10.14.221.17:1935/rtmplive/home //HLS 协议流 ffmpeg -re -i /Users/gao/Desktop/video/test.mp4 -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -q 10 rtmp://10.14.221.17:1935/hls/test 注意 当我们进行推流之后可以安装VLC、ffplay支持rtmp协议的视频播放器本地拉流进行演示 3.FFmpeg推流命令 ① 视频文件进行直播 1 2 ffmpeg -re -i /Users/gao/Desktop/video/test.mp4 -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -q 10 rtmp://192.168.1.101:1935/hls/test ffmpeg -re -i /Users/gao/Desktop/video/test.mp4 -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -q 10 rtmp://10.14.221.17:1935/hls/test ② 推流摄像头桌面麦克风录制进行直播 1 ffmpeg -f avfoundation -framerate 30 -i “1:0″ \-f avfoundation -framerate 30 -video_size 640x480 -i “0” \-c:v libx264 -preset ultrafast \-filter_complex ‘overlaymain_w-overlay_w-10:main_h-overlay_h-10′ -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://192.168.1.101:1935/hls/test 更多命令请参考 FFmpeg处理RTMP流媒体的命令大全 FFmpeg常用推流命令 七、H5 直播视频播放 移动端iOS和 Android 都天然支持HLS协议做好视频采集端、视频流推流服务之后便可以直接在H5页面配置 video 标签播放直播视频。 1 2 3 4 video controls preload“auto” autoplay“autoplay” loop“loop” webkit-playsinline source src“http://10.14.221.8/hls/test.m3u8″ type“application/vnd.apple.mpegurl” / p class“warning”Your browser does not support HTML5 video./p /video 八、总结 本文从视频采集上传服务器处理视频推流以及H5页面播放直播视频一整套流程,具体阐述了直播实现原理实现过程中会遇到很多性能优化问题。 ① H5 HLS 限制必须是H264AAC编码。 ② H5 HLS 播放卡顿问题server 端可以做好分片策略将 ts 文件放在 CDN 上前端可尽量做到 DNS 缓存等。 ③ H5 直播为了达到更好的实时互动也可以采用RTMP协议通过video.js 实现播放。 以上就是本文的全部内容希望对大家的学习有所帮助更多相关内容请关注PHP中文网 相关推荐 使用HTML5实现网页音乐播放器 HTML5 video播放器全屏(fullScreen)实现的方法 --------------------- 作者China_Lzw 来源CSDN 原文https://blog.csdn.net/qq285679784/article/details/86010076 版权声明本文为作者原创文章转载请附上博文链接 内容解析ByCSDN,CNBLOG博客文章一键转载插件
http://wiki.neutronadmin.com/news/359286/

相关文章:

  • 怎么在电脑上建立自己的网站wordpress 需要ftp
  • 淘宝上面建设网站安全么响应式手机模板WordPress
  • 教程网站后台密码2022最近的新闻大事10条
  • asp 网站开发实例教程域名备案 网站名称
  • 福州网站大全seo营销策略
  • php做网站优势引擎搜索下载
  • 建网站一般最低多少钱做网站的费用记哪个会计科目
  • 个人网站制作流程企业网上年检在网站怎么做
  • 软件网站开发公司名字网站制作app软件
  • 惠州禅城网站建设网页视觉设计流程
  • 微信个人商城网站模板免费下载厦门网站建设高级课程
  • 做电影网站怎么样网站怎么做伪静态
  • 哈尔滨网站制作哪儿好薇阿里云服务器租用价格表
  • win10建设网站公司建设网站请示
  • 网站建设 cms 下载seo关键词怎么选
  • 响应式网站建设福州wordpress注释
  • 用asp做网站出现空白小说网站开发环境那个号
  • 固始县网站建设培训电商平台的发展
  • 网站修改需要什么做百度微信小程序都有哪些网站
  • 在茂名哪里可以做网站网站建设服务器有哪些
  • 网站建设与网页设计百度文库pc建站 手机网站
  • 吴江市中云建设监理有限公司网站WordPress允许修改评论内容
  • cpu占用超出网站空间的分配值中国50大电商排名
  • 深圳网站设计模板泰州专业网站建设公司
  • 响应式网站新闻部分怎么做站长之家域名查询官网
  • 建设网站开发wap网站 区别
  • 网站建设企业战略百度seo优化分析
  • 郑州建设网站建站专业做图片制作网站
  • 杭州住房和城乡建设局网站帮做暑假作业网站
  • 子域名做微信开放平台网站应用wordpress插件 网站跳转