ABPlayer 开发开始

最近发现有对KnDanmakuWP 很感兴趣的同志们,正好限于KnLiveCommentary这个东西效率实在是差,所以打算以KnLiveCommentary功能设计为基础,以PADPlayer和MukioPlayer为两个基本点,以A站播放器,B站播放器,CMP4和KnLC 为四个指导方针开始研发 ABPlayer。于是,这称作C站的计划开始。

注意此ABPlayer非彼ABPlayer(AmbiencePlayer)。

“坑爹”的研发测试界面

ABPlayer较KnLiveCommentary(KnLC) 有很大的一些改进。比如,界面很友好的使用了Flex自带的CSS功能进行优化,而且有了第一套皮肤(来自CMP4的土豆皮肤),性能上也比KnLC有不少优化。

ABPlayer名称来历其实本来是因为制作AmBiencePlayer 这个后来犯懒不想打那么长的名字,缩成了ABPlayer。不过也歪打正着的反映了播放器的主旨:A/B的结合 Player。这个播放器既不基于MukioPlayer也不基于PAD播放器,更像是两者的结合,所以说可以算是新的播放器了。

ABPlayer主要功能除了尽可能模拟MukioPlus的以外,提供了两个很有意思的模式:

保护CPU和保护观看者

 CPU友好的播放(CPU Friendly Loading) :这个思想基于麻省理工大学(MIT)近期的一项研究突破,即通过程序在循环时跳步达到减少运算但是运算结果偏差不大的效果。简单说就是当屏幕正在滚动的弹幕数目超过了一个预设值之后,新的弹幕不会全部显示,而是隔一个载入一个,这样减轻CPU负担,直到弹幕数目降到预设值之下。对于本人的上网本和手机播放很有显著优化作用啊~

躲开内嵌字幕(Avoid Subtitles):这个功能起源于最近B站总有人所谓“恶意遮挡”。避开字幕功能就是让视频的下端 30px以内不滚动弹幕,原来应该在这个位置滚动的弹幕将上移到非限制区。这样无论是底部,顶部,滚动弹幕都没有可能遮挡与视频镶嵌的字幕。而“字幕”类特殊弹幕则不受这个限制影响。达到了有效分离“有用的”和“有或没有没意思的”内容。

新界面理念

新的界面理念(Reversed Interface):以往弹幕播放器是以弹幕组件套播放器的形式,而ABPlayer将反转这个理解,用播放器套弹幕组件,突出主体是播放器这一特征。

内部分P(Internal Parting): ABPlayer载入分P内容不再进行页面的跳转,而直接在播放器内实现分P转换,节约带宽和处理时间(不必等页面重新载入而是播放器内处理)。相关视频也可以直接载入播放器内,不打开新窗口!

更多的定位功能(Precision Sending):ABPlayer将扩展B站的定位弹幕模式,增加Constraint参考值,让弹幕可以以相对的X-Y位置运行!而且定位弹幕可以向视频而不是播放器看齐,这样无论缩放抻拉到何种程度仍可保证定位的准确。

个性皮肤(Personas4ABPlayer):有很多人都体验过Mozilla系软件(Firefox, Thunderbird)的皮肤功能(Personas)。ABPlayer允许用户自己制作皮肤载入,实现个性化到播放器水平。按钮,颜色,背景都可以被像定义CSS一样定义。

目前ABPlayer正在0.X 系列开发中,看完上面觉得有什么想实现的建议可以发到这里哦~

36 Comments

  1. 刚刚看了看貌似博主数据库手抖清理了一次,不知道现在还有没有这个ABPlayer可以提供下载?因为很想研究研究弹幕播放器。

    回复

    1. Flash版的话在Github上有项目,不过已经好几年没搞了(因为现在移动端不支持flash了)。至于如何编译可以参考http://www.261day.com/abplayer%E7%9A%84%E6%AD%A3%E7%A1%AE%E7%BC%96%E8%AF%91%E5%A7%BF%E5%8A%BF/

      如果只是好奇弹幕空间排布和设计思路,建议参考 CommentCoreLibrary。这是用JS实现的一个弹幕overlay层,基本上包括了实现弹幕播放器的弹幕部分需要的逻辑(播放器的部分不属于此项目)。

      回复

  2. 目前网站一直用的MukioPlayer4wp插件,本来Youku就不好用,最近sina貌似也挂了。愁死啦。。。
    希望站长能早点开发出wp的弹幕插件!!!强烈请求!!!求联系,求帮助!

    回复

    1. 一直在开发中,当然了新站的话,更建议使用一下HTML5弹幕播放器,因为Flash现在的支持越来越少了。而且播放器现在还没有固定的服务器接口,就是说播放器发送弹幕的传输格式和相应的服务器接收器还没有固定的实现。现阶段更多属于功能展示和理念实现阶段,实际应用中的一些部分(权限、发送)还在比较原始的状态呢。

      回复

      1. 老大对于html5的弹幕播放器有没有好的给我推荐下呢,这几天我一直在找,都愁死我了。。不需要引用A或B的弹幕,只要能在本地服务器存储并发送弹幕即可。。感谢感谢

        回复

    1. 啊,这还是开发中的诶——
      源码在 https://github.com/jabbany/ABPlayer 如果有Flash Builder 4.5+ 可以自己Checkout并编译。详细文档和主力研发正在针对新的基于HTML5的弹幕播放器ABPlayerHTML5(因为Flash的兼容性问题)。

      回复

    1. 貌似很多视频编辑软件都可以,不过我很少去加水印,听说绘声绘影和AE不错,不过AE一定会大才小用了
      VPS的话发邮件联系怎么样(j_abbany#yahoo.ca)…这里回答起来会特别的长,不一定方便= =

      回复

    2. 水印这东西,简单的为本地视频加,有很多类似的软件,推荐VideoConver或绘声绘影,挺不错。
      不过,如果是希望做视频上传的时候自动加水印,就比较麻烦了,
      可以使用mencoder和ffmpeg(网上资料还是比较丰富的,度娘一下吧),实现视频上传后在后台自动添加水印、转码、截图、甚至是视频裁剪和合并等,完全不需要人工参与。
      不过参数设置很麻烦,我纠结了半个多月……

      回复

  3. 顺便一提,博主上次开放的KnLiveCommentary和AmBiencePlayer,我拿去做了简单的修改,将其打包成了一个没有UI的SWC控件,并上传至了google open ,未经允许还请见谅。
    :kaka|01:

    回复

      1. UI指的是弹幕播放器的。
        不过,AmBiencePlayer与其定位为环境播放器,倒不如定位为可以读取lrc的SWC播放器,并且可由开发者自定义UI,或者拿来做环境特效,至于读取到的每行lrc歌词(或者特效脚本),flex到底应该拿来做些什么,就得看开发者的意愿或者设计初衷了。

        回复

  4. 建议将 视频播放组件+add弹幕 做成一个SWC插件,提供视频的管理接口(如暂停、拖动、切换视频等)和弹幕设置接口(如发送弹幕,屏蔽弹幕等等),便于后期拓展和重新制作UI,进行二次开发也更轻便快捷。

    回复

    1. 我这里目前设想是可以外接新的部件,可以通过JS控制播放器。至于ABPlayer的设想是一个向内接而非外接的播放器(它载入插件而不是被别的东西载入)。不过我倒是觉得现在的 PAD & Mukio 挺好二次开发的啊…只是文档太少。ABPlayer会有很详细的实现文档,但是关键问题是先实现= =|||

      目前开发到能滚动,顶部和底部,但是还不能读入文件,还得写个XML格式解析器= =当然还有高级定位,字幕弹幕,分P和推荐,过滤(高级)和根据权限载入…

      回复

      1. 之所以觉得弄个SWC好最主要原因,其实是因为封装惯了(本来写了很多详细原因,结果尼玛chrome崩溃了……所以我也崩溃了……这不是坑爹吗?)……

        建议弹幕数据格式支持一下json,方便和object对接,另外,也是因为用惯了……:kaka|26:

        回复

    2. PS KnLiveCommentary这个东西效率在大数据量下极低= =
      主要是最近看了PADPlayer发现Flex还有所谓 Move() 类(xy位置渐变动画),以前套setTimeout移动惭愧了= = !!

      回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注