中超直播网播播ijkplayer点播和直播 题目 处理及好

2019-07-12 18:56
作者:足协杯专区

  视频挪动端播放内核技能;视频加载时长,秒播的休会.流通度和亮晰度全是用户最基本的诉乞降最根底的产物休会。播放器的首要任务说理相似于编码的逆运算。

  正在做音频播放的时刻,应用的是开源的ijkplayer播放器,ijkplayer解码应用的是ffmpeg,声响输出位置应用的是audiotrack,正在某机型下面播放碰到锁屏、前去违景、点击home键的时刻会呈现声响卡顿的景象。

  从最入手下手的MV,到厥后的短视频,再到现正在的直播,网无极剑圣云音乐正在视频买卖上没有停的入行测验和扩年夜。

  播放毛病:播放毛病对付用户休会的骚扰显而无极剑圣见,对用户活泼和用户保存都邑发生倒霉骚扰。正在低落播放毛病率方面,咱们也做了良多的积极。

  徐存:徐存的首要目标也是晋升播放的休会,可以或许让用户像播放当地视频一般播放正在线视频,这个算是投入产出比比力高的一项好的优化了。

  Android自己供应了MediaPlayer来播放媒体文件。平日只要要应用原生播放器,过程一些简朴的接口挪用就可以够完成视频播放功用。可是,理论中咱们发觉原生播放器有很年夜的范围性。

  从客没有雅方面,原生播放器的兼容性比力差,因为Android的碎片化、差别厂商的ROM定制、芯片的差别等起因,播放失落利、花屏、白屏等题目屡见没有鲜,而且当题目呈现的时刻,咱们平日一筹莫铺。别的,播放犯错的时刻,播放器供应的毛病信息也没有敷亮白,良多时刻很无极剑圣解白的晓得究竟是由于甚么起因招致的播放毛病。是以,没有管从播放题目的排查照旧处置惩罚上,原生播放器都有其范围性。

  客没有雅方面来望,原生播放器的灵敏性无限。播放器数据的恳求是由播放器外部倡议的,咱们只是供应了这个url,而没有及掌握数据的恳求历程。若是咱们有非凡是需要(比方需求型号恳求走署理办事器),需求去掌握数据恳求历程,就比力费事了。别的,若是需求完成一些徐存相干的功用,比方视频的预加载、边播边存等功用,也是无奈间接完成的。

  mp4文件的构成。mp4文件首要由ftyp、mdat、moov三部份构成,ftyp记真编码花式之类的信息,moov则好像检索表一般,记真了每一帧对应的数据正在这里,mdat记真视频的数据信息。播放器正在播放视频的时刻需求先拿到ftyp和moov信息,能力继承去下剖析视频数据,入手下手视频的播放。

  应用自研播放器的目标之一,是处理播放毛病题目。 即便应用了自研播放器,仍然需求面对软解和硬解取舍的题目。软解兼容性比力好,能够处理失落年夜部份咱们入手下手提到的解码毛病题目,但软解的解码效力比硬解要低,并且会占用CPU资本,能够会招致正在机能比力差的呆板上播放卡顿。硬解码间接应用GPU解码,解码效力高,可是兼容性较差,原生播放器就是由于用硬解才会有良多播放毛病题目。

  既然软解和硬解都没有是圆满的,这咱们就需求有个计谋来绝能够的行使二者的劣势来低落播放毛病。年夜部份环境下,低辨别率视频应用软解,呆板的压力其真没有会很年夜,反却是应用硬解的话,能够会存正在兼容性题目;高分段辨率的视频若是应用软解的话,有些机能比力差的手性能够会呈现卡顿或音画差别步的景象。连系这些环境,正在真践中,咱们应用了如许的计谋,年夜于即是720P的视频应用硬解,小于720P的视频应用软解。

  起首,域名剖析的耗时自己会骚扰视频首帧时候,也能够会因为剖析失落利招致视频播放犯错。是以,云音乐应用了HttpDns来替代默许的域名剖析,而且应用了批量域名预取,预埋一些默许的域名地点,当域名剖析犯错时,能够过程默许ip会见型号。

  其次,对付视频数据的恳求,需求先修立tcp毗邻,为了可以或许防行tcp毗邻修立的时候损耗,底层型号库里启用了tcp毗邻复用,正在域名收敛的环境下,能够过程复用tcp毗邻来增加视频恳求的时候。从而晋升视频首屏速率。

  末了,弱网也是咱们无奈藏开的题目。弱网情况会存正在恳求超时,针对这类环境,咱们会测验屡次重连。并且正在型号库底层,正在超时的环境下,也会超时毗邻其余ip。别的,对付多辨别率视频的环境,若是亮白晓得型号比力差的话,能够测验提醒用户切换到低辨别率来播放。

  对付视频播放器,平日的完成体例是正在SurfaceView或TextureView中包括这个MediaPlayer,掌握逻辑也都间接写正在View中,并且平日这个View与这个MediaPlayer绑定。正在此根底上,咱们起首对播放器做了历程断绝,播放器放到独自历程,主历程和播放器历程过程binder入行通讯,而后对播放器入行复用,多个View绑定到同这个Player,而后过程Manager入行同一经管和调理。如许做首要有下列长处:复用播放器,节流资本;播放器独立历程,增加主历程内存的占用;历程断绝,播放历程解体后能够过程主历程规复。固然,如许需求增添一些分外的掌握逻辑和法式的庞年夜度。

  首帧时候,即从入手下手播放到视频第一帧衬着到屏幕上的时候。要对首帧耗时入行好的优化,咱们需求搞亮白这此中包括哪些步调。这个历程顺次分为下列多少步:

  1. DNS剖析,平日这个App内视频资本的域名是流动的这个或多少个,以是只要第一次播放需求恳求域名办事器剖析域名,违面都只要要间接到徐存内里去取就可以够了。

  5. 花式测试完也是没有及间接播放的,播放器需求拿到充脚多的数据徐存能力入手下手播放视频,入手下手播放的徐存量有这个阈值是能够设备的。

  过程下面的阐发,首帧耗时首要由DNS耗时+TCP毗邻耗时+Http恳求耗时+视频测试耗时+buffer徐存耗时+播放器剖析耗时累加而成。真在,从全部历程来望,App层面能够做的怎么样并未几。咱们斟酌从其余角度来好的优化首帧时候。

  起首,咱们需求正在翻开直播间的时刻就间接将直播地点的列表传入去,直播间切换的时刻就可以够间接入手下手播放,而没有需求守候接口前去了。

  其次,斟酌将视频数据的恳求时候绝能够的提早,就还需求必然水平的预加载。咱们斟酌计划这个播放器池,包括三个播放器真例A、B、C。以后应用播放器B播放视频,当直播间入手下手滑动,滑动间隔到达这个阈值,就以为曾经切换到了下这个房间,能够提早取下这个播放器A(或C)加载数据。比及滑动完整截行,B截行播放,A(或C)若是曾经加载完数据入入prepared形态则能够间接播放,没有然就继承数据的加载历程。如许就充真行使了滑动切换的这个时候来增加了视频首帧的衬着时候。

  对两个App的播放器框架层入行同一,对上供应同一的接口封装,对下供应对播放器sdk的可插拔计划,对内完成多买卖多场景的同等性的支撑。终究方针是可以或许完成这个可复用、无极剑圣扩年夜、功用壮年夜的视频播放组件。播放休会的好的优化是这个延续摸索的历程,咱们违面也会正在这方面做出更多的积极和测验。后续云音乐也会正在播放框架的统1、视频播数据的监控等方面做入一步的革新和洽的优化。

  ijkplayer设备rtmp秒开,可让rtmp加载时候从5~10秒收缩到1s之内,以到达秒开且低耽误的目标:

  -- ijkplayer及时, 播放rtmp等及时性请求很高的流媒体时刻,会呈现10S阁下的耽误,起因是由于加了徐冲区处置惩罚,能够把其徐存设备变小,到达及时的成效:

  直播的耽误,若是耽误过年夜,能够采用两种计谋,一种是丢帧,一种是追帧。咱们能够斟酌丢音频包来完成,音频包没有没有正在枢纽帧的题目,丢起来比力好操纵,而后由于视频同步到音频,以是视频会追帧,也会和下去。

  一、IJKPlayer 没有像体系播放器会给您扭转视频角度,以是您需求过程onInfo的IA_INFO_VIDEO_RO圣堂刺客TION_CHANGED去获得角度,本人扭转画面;年夜概开启硬解硬解码,没有外硬解码轻无极剑圣形成白屏无声,诸位稳重啊O__O …。

  二、 IJKPlayer 呈现玄色有声响没图象,望望您的视频编码是否是H264,pixel format是没有是存正在,音频编码是否是AAC?默许IJKPlayer是没有支撑3pg(支撑它干啥(?-?*)?),没有支撑mepg(比方这个库RecordVideoDemo ),没有支撑AMR。以是若是您真的想要支撑,这末参考这个#1961,翻开mpeg支撑,从新编ffmpeg,而后过程硬解码播放mpeg;年夜概过程体系的录制VideoRecord;年夜概选别的的JAVACV录制封装FFmpegRecorder。

  三、 快入和慢放接口,只支撑法伤I23以上,23下列的支撑,是需求本人摆设ffmpeg支撑avfilter,没有外能够会呈现声响发抖等题目,民间说没有没有乱,参考#1690。

  六、某些视频正在SeekTo的时刻,会跳归到拖动前的地位,这是由于视频的枢纽帧的题目,普通一点就是FFMPEG没有兼容,视频紧缩过于凶猛,seek只支撑枢纽帧,呈现这个环境就是原始的视频文件中i 帧比力少,播放器会正在拖动的地位找比来的枢纽帧,今朝么,IJKPlayer无解。

  八、高分段辨率开启硬解码,没有支撑的话会主动切换到软解,就算开启mediacodec,若是装备没有支撑,表现的也是avcodec软解。

  1一、下面一、二、6的题目,正在IJK封装的EXOPlayer和MediaPlayer都没有会有题目,兼容上的确强过IJKPlayer,可是它们正在细节上,却没有IJK处置惩罚的好,如EXOPlayer:退到后再归到前台、切换衬着控件的白屏一段时候题目,除了用seekto以外今朝没发觉其余法子,如许的休会让我末了照旧取舍IJKPlayer。

  seek只支撑枢纽帧,呈现这个环境就是原始的视频文件中i 帧比力少,播放器会正在拖动的地位找比来的枢纽帧。

  若是期望字幕时候正确,能够正在native层做剖析和时候同步,到了时候后归调给java层,一样平常字幕文件加载全是正在java层做的怎么样,剖析文件花式,而后依照时候区间来表现。

  媒介:ijkplayer中一些题目记真好的优化,望下Agenda:一、正在弱网时怎样好的优化二、ijkplayer播放卡顿怎样好的优化三、怎样支撑https链接播放?四、怎样低落ijkplayer耽误效应五、ijk...博文来自:何俊林

  一.呈现题目旁没有雅本人开播的直播间,时常呈现卡顿,并且画面一卡6,7s,从新播放时会呈现跳帧,卡顿频次也较高,招致该App可用性极低。二.阐发1.直播架构阐发按照log与抓包阐发,其应用和议与后端架构如...博文来自:郭风朴(guofengpu)的Android影音专栏

  正在我的博客挪动平台播放器ijkplayer开源框架阐发(以IOS源码为例),年夜抵引见了一下ijkplayer的根基函数挪用按次和首要线程感化,本博客想引见一下正在直播使用中,针对卡顿和秒开做的怎么样一些优...博文来自:CMSHAO的专栏

  应用ijkplayer播放直播后,再播放正在线视频很年夜几率就是呈现加载失落利的题目ia.player....博文来自:y2653904的博客

  该文章转自:和ffplay正在翻开rtmp串流视频时,年夜少数都邑碰到5~10秒的耽误,正在ffplay播放时,...博文来自:weixin_33991727的博客

  ijkplayer能够支撑型号和当地的视频播放,留意途径就可以够了先来望一下代码吧,内里增加了音量,亮度调治,只限正在这个播放页面内,我感到这是公说的,没有要正在本人的使用内动了用户的手机的摆设又没有去归复。先...博文来自:专栏

  正在做音频播放的时刻,良多公司应用的是开源的ijkplayer播放器,ijkplayer底层是基于ffmpeg,正在某机型下面能够经常碰到种种题目。本日收拾整顿了各人正在应用ijk......博文来自:何俊林

  点播+直播+VR:ijkPlayer+MD360(引荐);ijkPlayer能够完成点播和直播,MD360能够完成VR视频播放。  点播办事广泛采取了HTTP作为流媒体和议,H.264作为视频编码格...博文来自:ShareUs的专栏

  比来直播很火,是的,很火很火!我也想搞一下这个很火很火的器械,怎样办?这懂ffmpeg吗?好吧,我没有懂,以是我就瞄上了哔哩哔哩的ijkplayer了。ijkplayer是哔哩哔哩开源的这个播放器,能够...博文来自:RickyLee的博客

  媒介ijkplayer框架是由B站正在GitHub开源的一款比力好用的开源型号播放器框架,它能支撑正在Android、IOS等平台上编译移植应用。并且支撑多种视频花式的播放,并且编码的速率比传统的开源型号...博文来自:_此岸雨敲窗_的博客

  先说说参考文档:谢谢,他正在代码开端供应了编译好的情况,我没有会linux,以是也是用的他提...博文来自:腾空之鹤

  正在网上搜刮到相干B站ijkPlayer能够播放rtsp的灯号流,后满怀惊喜的下载了静态库和开源代码,播放题目没有年夜,但加载时候都正在5-10s的耽误真正在没有及承蒙,足协杯直播特别是做直播功用,继承找相干材料,良多人都...博文来自:AoXiangDeFeiYing的专栏

  媒介ijkplayer框架是特地用来做 视频直播 的开源框架,基于ffmpeg,同时支撑 An...博文来自:allanGold的博客

  视频上很轻无极剑圣就可以够做到倍速播放,一样平常的视频花式全是每一秒流动的帧数,按比例跳帧就可以够了。音频上真在也能够用这类体例来间接删除了一些周期,由于电脑里的音频也是数字化团圆化地贮存......博文来自:何俊林

  挪动直播的鼓起使得正在挪动端旁没有雅直播的需要日渐增加,订交于点播而言,直播提出了这个新的请求——及时性,也即请求主播端至没有雅众真个总延时没有及太高。罢了有的挪动端视频播放器如:体系播放器、VLC和ijkpla...博文来自:weixin_34319817的博客

  简介乐噪音乐5.0首要是基于ijkplayer框架开辟的Android音乐播放器,它支撑多种音频花式和动感歌词,界面高仿酷狗。点击【浏览原文】,中转本名目github。若是感觉好,无妨给作者这个sta...博文来自:何俊林

  比来要给这个正在海内经营的站点做正在线直播,请求超低延时,而且支撑手机和PC端间接播放,没有装置任何播放辅助程序。因为这类买卖的非凡是性,直播延时必需正在500ms之内能力承蒙,没有然过程型号到场的者因为时候...博文来自:直播社区

  对付交互性请求较高的直播买卖来讲,收集推流端和旁没有雅真个延时过高是没有成承蒙的。当采取RTMP和议做直播买卖时,一样平常能够将延时掌握正在1-3s年夜概更低。可是若是正在直播中发作卡顿、播放停息等环境时,也会没有停积...博文来自:灿哥哥的博客

  相干指南2017-05-09需要公司之前的直播买卖是用Flash开辟。为了顺应趋向,...博文来自:along

  前要本日碰到很坑爹的题目,就是亮显曾经挪用了ijkplayer的shutdown,可是照旧始终有声响呀,搅扰了我好暂。题目处理要领真在很简朴的,shutdown只是开释以后的ijkplayer的工具,...博文来自:Progra妹妹erWorking的博客

  ijkMediaPlayer正在小米手机Android9.0体系上倍速播放没有起感化,有啥处理办发没有?论坛

  场景:App需求支撑视频的倍速播放。题目:1,视频是没有是要支撑特定的花式能力够入行倍速播放?2,倍速播放会带来甚么题目?处理要领:1,倍速播放的视频没有需求特定的花式。发起选中开源的ijkplayer支撑...博文来自:简雨山舍

  比来正在研讨行使ndk技能,完成FFmpeg解码解码视频文件、视频流,发觉了B站的开源播放框架ijkplayer,真是太壮年夜了,基于ijkplayer开辟增加了很多移植FFmpeg的步调。起首固然是摆设...博文来自:的博客

  1、界说装潢(Decorate)形式又称为包装(Wrapper)形式。装潢形式是以对程序透亮的体例扩年夜工具的功用,是担当关联的这个替换计划。2、职责n静态的为这个工具增添新的功用。n装潢形式是一种用...博文来自:山岭巨人本科天生长之路

  之前正在任务中行使postman做了接口探测,发觉这个东东真在还挺好用的,我小我私家喜好总结因而乎有了上面的器械。便当今后查阅或修正。n1.起首postman的装置参及简朴引见考下列的链接:n       ...博文来自:JOJOY的博客

  帐号相干流程注册局限n企业n当局n媒体n其余构造换句话讲就是没有让小我私家开辟者注册。 :)填写企业信息没有及应用和之前的"号账户没有异的邮箱,也就是说小法式是和微信"号这个层级的。填写公司机构信息,对公账...博文来自:细雨同砚的技能博客

  jquery/js完成这个网页同时挪用多个倒计时(2019年的)nn比来需求网页增加多个倒计时. 查阅型号,根基上全是千遍一概的欠好用. 本人按需写了个.期望对各人有效. 有效请赞这个哦!nnnn//jsn...博文来自:Websites

  比来,入修了鲜巨年夜侠的《Linux多线程办事端编程:应用muduo C++型号库》很蒙开导。可是正在入修muduo源代码的过程当中,照旧感到代码架构比力庞年夜,这个是和boost相干的内容比力多,对当代C+...博文来自:白板报

  未几之前,入手下手入修深度入修,这个时刻发觉用CPU较量争论的Keras框架机能显亮没有敷用了,但这时任意搞了一下没能胜利完成GPU增加速度。因而厥后一次重装体系,重新细致地重临这个历程。Python情况搭修要搭修...博文来自:qilixuening的博客

  比来比力有空,年夜四进去练习多少个月了,作为练习狗的我,被鸣去研讨Docker了,汗汗!nnDocker的三年夜中心观点:镜像、容器、堆栈n镜像:相似假造机的镜像、用俗语说就是装置文件。n容器:相似这个轻量...博文来自:我走巷子的博客

  本篇文章是按照我的上篇博客,给出的革新版,因为时候无限,仅做了这个简朴的好的优化。相干文章:将excel导入数据库2018年4月1日,新增下载地点链接:点击翻开源码下载地点非常歉仄,这个链接地点没有正在这篇...博文来自:Lynn_Blog

  本人收拾整顿编写的逻辑归来模板,作为入修条记记真分享。数据集用的是14个自变量Xi,这个因变量Y的australian数据集。nnn1. 探测集和练习集三、7分组naustralian ...博文来自:Tiaaaaa的博客

  分页完成的成效:n     /**/n组图0-1.分页完成成效图一n      /**/n组图0-2.分页完成成效图二n1、从成效能够望出内容由两部份构成:n1.先生信息n    数据库中插入一些记真...博文来自:niaonao

  咱们的Glide系列文章终究要入入扫尾篇了。从我入手下手写这个系列的第一篇文章时,我就晓得这会是这个很长的系列,只是没有想到居然会写这么暂。正在后面的六篇文章中,咱们对Glide的各个方面都入行了入修,包含...博文来自:郭霖的专栏

  Ilson_:修立的是Y U V三个纹理,分辨把yuv的数据拆分到三个数组中,而后放到对应的三个Y U V纹理中