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

网站搭建 商城 seo河南省建设工程注册中心网站

网站搭建 商城 seo,河南省建设工程注册中心网站,wordpress 收集表单,如何做地方网站因为想做一个类似苹果的同播共享功能,这一段时间对音视频做了一些浅浅的学习,现简单总结记录。 我的需求是找到一个尽可能简单的方案来两人播放一段视频,并且能够进度和操作同步,所以基本不能有延迟,同时能够显示WebV…

因为想做一个类似苹果的同播共享功能,这一段时间对音视频做了一些浅浅的学习,现简单总结记录。

我的需求是找到一个尽可能简单的方案来两人播放一段视频,并且能够进度和操作同步,所以基本不能有延迟,同时能够显示WebVTT字幕,最好不需要额外的服务器。

视频流方案

前端视频流主要是用的是hls.jsflv.jsdash.js,我最后使用了hls.js

hls.js

hls.js多用于做在线视频播放,原理就是将大视频切片,分成几秒一个的小片段,这样只需要不停加载小片段就可以完整播放视频了。

使用ffmpeg来生成视频

ffmpeg -i video.mkv -b:v:0 12M -c:v h264_videotoolbox -c:s webvtt -c:a mp3 -map 0:v -map 0:a:0 -map 0:s:34 -f hls -var_stream_map "v:0,a:0,s:0,sgroup:subtitle,language:zh" -master_pl_name master.m3u8 -hls_time 6 -hls_playlist_type vod -muxdelay 0 video.m3u8 
  • -b:v:0 12M 12M码率
  • h264_videotoolbox是mac的硬解码,目前浏览器h264还是主流,虽然最近也支持hevc了
  • -map 0:s:34取第34个字幕转成webvtt格式
  • -var_stream_map "v:0,a:0,s:0,sgroup:subtitle,language:zh"分组
  • -hls_time 6切片6秒
  • -muxdelay 0解决字幕不同步问题。

最后加载master.m3u8就可以播放了。

flv.js

flv.js是bilibili开源的,可以用来做视频直播,使用RTMP推流,但是bilibili不用这个。

使用ffmpeg推流

ffmpeg -re -i video.mkv -c:v h264_videotoolbox -f flv rtmp://localhost/live/livestream 

先将视频推到流媒体服务器,在从流媒体服务器读取视频。

rtmp://localhost/live/livestream是对应的流媒体服务器,简单可用Node-Media-Server,复杂一点用srs,这个可以将RTMP流转成WebRTC流。

dash.js

dash.js也是将视频切片,可以直播也可以点播,很多大厂都用这个,比如bilibili。

WebRTC

WebRTC同样可以做视频播放,但是清晰度是由浏览器控制的,WebRTC是点对点的,虽说不需要服务器,但是需要一个信令服务器来交换信息,相当于是创建了房间号,另一个人加入房间,那这个房间号还是需要一个服务器来传递的。

我找到免费的方案就是用peer.js

我的思考

最初我考虑的是浏览器直接加载本地视频,通过WebRTC传输给对方,字幕也可以通过WebRTC传输,这样没有任何额外操作,而且WebRTC延迟够低。

但是我没有考虑到的一点问题是我下的视频基本都是HEVC HDR,所以需要转码,字幕也要转WebVTT。但是转码需要时间,浏览器可以跑Wasm,并且有个项目叫ffmpeg.wasm,如果用浏览器解码hevc的话也行,结果几百Mb的视频就在报错了,根本解不了。

既然浏览器不能解码,那我就本地解码推流RTMP浏览器用flv.js来播放,再把视频流从浏览器通过WebRTC传输,但是flv.jsvideo标签居然没有captureStream方法,不能把视频流传递给WebRTC,好家伙,再想办法,用canvas来播放视频,再调用canvascaptureStream,问题又来了,不支持HDR是一方面,主要糊的很。

WebRTC的最佳方案就是用SRS把RTMP转成WebRTC,然后浏览器上用WebRTC播放。

经过一番思考,我还是选择了hls.js的方案,我的M2转码1080p的话1个小时的视频大概是6分钟,还能接受,主要是我的电脑是动态公网IP,直接叫小伙伴访问我的本机,用hls.js播放,流畅不卡,然后再用WebRTC传输播放的操作来做同步。

所以总是在瞎折腾里学习和成长。

最后

整理了75个JS高频面试题,并给出了答案和解析,基本上可以保证你能应付面试官关于JS的提问。



有需要的小伙伴,可以点击下方卡片领取,无偿分享

http://www.yayakq.cn/news/150321/

相关文章:

  • 大学专业宣传网站开发课题意义法律咨询
  • 2016网站设计趋势seo搜索引擎招聘
  • 高端网站设计 新鸿儒新乡网页制作
  • 罗湖网站设计价格wordpress 更换域名
  • 手机网站 如何 推广方案设计wordpress 调用个人资料
  • qq网站代码郑州网站免费制作
  • 高水平的郑州网站建设小程序链接如何转成网页链接
  • 宁波模板建站源码搭建什么网站好玩
  • 中国建设银行网站个人南宁seo多少钱报价
  • 用邮箱找回智慧团建密码seo优化知识总结
  • 学校网站手机站的建设泰安房产网签
  • 集团网站建设需求重庆网站建设快速建站
  • 龙岩网站建设亿网行二级医院做网站
  • 开锁公司做网站如何做一个链接
  • 淘宝优惠券微网站开发如何在本单位网站上做链接
  • 定制网站制作公司哪家好设计之家效果图
  • 我国婚纱网站建设的现状app界面设计模板图
  • 怎么查询网站备案服务商是哪个唐山网站建设
  • 一个人做网站难吗wordpress商品按钮代码
  • 安徽建设工程安全监督总站网站腾讯云网站搭建教程
  • 建设银行 英文版网站seo点击排名工具有用吗
  • 易语言可以做网站吗手机网站建设
  • 南昌企业网站建设哪家好网络推广seo怎么做
  • o2o与网站建设中国网通做网站
  • 网站添加提醒九台网站
  • 网站的发展趋势如何诊断网站为何被降权
  • 网站域名密码忘了烟台网站建设报价
  • 网站开发提供的服务企业宣传网站建设需求说明书样文
  • 成都网站开发公司哪家好服装店网页设计素材
  • 做外贸搜索外国客户的网站选片 网站 建设