啪一下子回到了10年前的B站,我泪目了
10年前的B站页面长啥样?
估计很多小伙伴都已经忘记了叭。
作为一个当时刚上大学不久就曾混迹于B站的老二刺猿,那时候还只能刷网页版的B站,当时的页面可能差不多还长这样:
还记得那时候B站首页可没有现在这么多分区,现在怎么也得有个十几二十个分区,而当时主要也就是「动画」「音乐」「游戏」「娱乐」「新番」啥的,而且页面也非常简陋。
而如今这么多年过去了,一路走来,看着这个社区逐渐发展成今天这般繁荣,不禁心生感叹。
众所周知,哔哩哔哩是一个非常强大的学习平台和社区。每天都有非常多孜孜不倦、爱好学习的小可爱会在上面学习各种有关跳舞、穿搭、二次元、动漫、健身、以及编程等各方面的知识。
但是大家可能不知道,B站其实在技术开源这方面做得也是非常优秀的。
所以今天这篇文章就来做一个大盘点,看看B站开源了哪些非常哇塞的炫酷项目。
ijkplayer
ijkplayer应该是哔哩哔哩在GitHub上开源的明星项目了,目前为止收获了29k+的Star标星以及7k+的Fork。
ijkplayer是b站开源的一款超级好用的跨平台视频播放器。
你想想看,B站是做什么的?做视频平台和社区的呀,所以对于视频播放器这一块的解决方案肯定是非常重视的。
ijkplayer是一款底层基于FFmpeg的Android/iOS视频播放器,支持MediaCodec、VideoToolbox,具有跨平台、易集成、可按需裁剪、支持硬件加速解码等一系列特性。
目前使用ijkplayer的项目和产品还是非常多的,网上相关的资料也非常多,有相关需求的可以研究一下这个开源项目。
主要开发语言:C语言
项目地址:https://github.com/bilibili/ijkplayer
flv.js
flv.js是一款基于纯JavaScript编写的HTML5 Flash Video (FLV) 视频播放器,目前在GitHub上同样也收获了20k+的Star标星。
没错,这是B站开源的又一个和视频播放需求密切相关的开源项目。
flv.js去掉了对Flash的依赖,同时支持录播和直播,在开销不大的情况下还能通过浏览器进行硬件加速并且兼容多款浏览器。如果有网页播放或者网页直播相关需求,可以使用和研究一下该开源项目。
主要开发语言:JavaScript
项目地址:https://github.com/bilibili/flv.js
DanmakuFlameMaster
Android开源弹幕引擎·烈焰弹幕使 ~
看名字就知道这是一款和弹幕相关的开源项目。
没错,DanmakuFlameMaster是一款Android上的开源弹幕解析绘制引擎项目,目前在GitHub上收获了9000 Star的标星。但是从GitHub的项目提交记录来看,目前好像已经很久没有更新了。
DanmakuFlameMaster这个弹幕引擎架构清晰,灵活易用,支持多种方式实现的高效绘制、多种显示效果选项实时切换、以及多种和自定义功能。
如果你也想实现一个炫酷的弹幕效果,那弹幕引擎就可以由开源的 DanmakuFlameMaster 来帮助完成。
主要开发语言:Java
项目地址:https://github.com/bilibili/DanmakuFlameMaster
Discovery
看了前三个非常火的开源项目都是关于客户端的,接下来终于来了一个与后端服务开发相关的开源项目。
按照官方项目文档的介绍,Discovery是一款主要用来实现中间层服务的故障切换、容错以及负载均衡的基础组件,同样也是基于Go语言实现。
这样说可能不太好理解,有点抽象,我们来做个横向技术类比就知道了。
Eureka这个组件不知道大家用过没,网上有人将Discovery理解为使用Go语言复刻的Eureka,也是一个提供服务注册和服务发现的中间件,相信这样理解起来就能明白它的作用了。
对Java微服务项目比较熟悉的同学,看完Discovery的工作原理架构图,大致应该就明白它能做的事情了。
的确,Discovery在设计时就以Netflix Eureka为对标,但是又针对性地做了很多改进,有兴趣的可以参考项目主页的文档。
主要开发语言:Go语言
项目地址:https://github.com/bilibili/discovery
Kratos
Kratos是一套轻量级的Go语言微服务框架,包含大量微服务相关功能及工具。
大家都知道Java领域成熟的微服务框架其实很多,典型的比如像Spring Cloud,而Kratos则是Go语言领域一个比较难得的微服务框架,它整合了很多微服务相关的组件、框架以及工具,致力于为Go语言开发者提供相对完整的微服务开发体验。
Kratos的核心架构如下:
从图中也能看出来,其对应支持的主要组件和特性也不少,而且在官方的项目实例中,几乎每个特性(组件)都配有对应的example代码示例,这一点对于学习者是非常友好的。
如果想学习并实践Go语言描述的微服务架构,该项目则是一个不错的切入点和实践工程。
主要开发语言:Go语言
项目地址:https://github.com/go-kratos/kratos
Overlord
Overlord是哔哩哔哩开发的一款memcache和redis&cluster的代理及集群管理功能的项目,同样主要还是基于Go语言开发,致力于提供自动化高可用的缓存服务解决方案,目前在GitHub上也收获了近2k的Star标星。
该项目实现了proxy模块、platform模块、Web GUI管理模块,并且提供了对应的数据同步工具和集群管理工具,官方项目里也给出了对应的部署指南和使用指南,还是非常详细的。
据项目主页所述,Overlord已被哔哩哔哩用于生产环境。
主要开发语言:Go语言
项目地址:https://github.com/bilibili/overlord
后 记
好啦,今天的分享就先到这里了。
我要继续去B站上学习各种跳舞、穿搭、二次元、动漫、健身、编程等各方面的知识了。
啪一下子回到了10年前的B站,我泪目了相关推荐
- 程序员B站项目分享:啪一下子回到了10年前的B站,要泪目了
这是一篇CodeSheep的文章,可以说是满满的回忆 : 10年前的B站页面长啥样? 估计很多小伙伴都已经忘记了叭. 作为一个当时刚上大学不久就曾混迹于B站的老二刺猿,那时候还只能刷网页版的B站,当时 ...
- 10年前的《武林外传》
最近天气热了,加上身上的一堆事情,胃口都不大好.老爸看我胃口不好,早上就刻意少留了些饭. 而早上吃饭的时候,我总是喜欢听听歌曲,无意点开了一首收藏的歌曲,是于霞和李小龙唱的<侠客行>,突然 ...
- 计算机硬件的发展变化,电脑硬件飞速发展到今天,来看下10年前与现在发生了哪些变化...
今天是2020年4月29号,转眼入行10年了.有电脑硬件爱好者可能一直在关注它的发展,会说出一部分型号,但是可能说不全,今天把我们市场的清单发出来供大家过过目,让大家看看10年前与今天电脑硬件发生了哪 ...
- 10 年前我对职业的选择,我一个中专生的逆袭之路...做测试我永不后悔
故事如下: 我很喜欢校长在「选择」主题说的那句话:努力决定选择,选择大于努力.努力是选择正确方向的前提,而选择正确的方向是大于你后期的努力.因为做正确的事永远比正确的做事重要. 10 年前我 18 岁 ...
- Jürgen Schmidhuber发文纪念10年前的研究,网友:转折点非AlexNet?
视学算法报道 编辑:魔王 转载自公众号:机器之心 LSTM 之父.深度学习元老 Jürgen Schmidhuber 发文纪念 10 年前发表的研究. Jürgen Schmidhuber 每次发博客 ...
- 10年前,三星差点收购了安卓
10年前,三星差点收购了安卓 摘要:"你和这支所谓的团队就打算开发这么个玩意儿?你们(开发产品的)只有6个人,你嗑药嗑嗨了吗?""这基本就是他们的回应." ...
- 10年前腾讯微信后台第一天提交的代码曝光!
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多 编辑:卫 ...
- 10年前用10万元投资腾讯,现在能实现财务自由吗?
10年前10万块钱投资腾讯股票,现在根本就实现不了财务自由. 我们先来计算一下,2008年用10万块钱投资腾讯现在值多少钱. 2008年正值世界金融危机的时候,所以当时腾讯的股票也受到了较大的波动,股 ...
- 老款诺基亚java都市恋爱养成,被“10年前的手机”刷屏了?都是青春和故事啊
新媒体管家 今天凌晨,苹果发布会上 发布了各种新产品 iPhone X iPhone 8 iPhone 8 Plus 同时出来了 然而,今天凌晨发布的iPhone有一个致命的缺陷 -- 好吧 说白了 ...
最新文章
- Unity完全学习教程-从初学者到C#中的RPG游戏开发
- 根据数组中对象的属性值排序倒叙
- sqlserver怎么将excel表的数据导入到数据库中
- 人工构造迭代次数高度简并的神经网络训练集
- Linux中source命令的用法:修改环境变量之后立即生效
- 利用ASP .NET Core的静态文件原理实现远程访问Nlog日志内容及解决遇到的坑
- js slice 参数为负值
- Android自定义view之圆形进度条
- tl494c封装区别_TL494参数,功能介绍,TL494应用电路图,封装,管脚及TL494 PDF中文资料手册...
- youcans 的 OpenCV 学习课—2.图像读取与显示
- Oracle数据库应用系统结构
- 9种对抗电脑辐射的方法
- 二、UI线程和界面卡死
- [转]以绝招应对损招 查***
- 使用Advanced Installer打包安装程序
- FPGA:我的零基础学习路线(2022秋招已上岸)持续更新中~
- 如何将视频文件转为图片
- 动力电池集成关键技术及电池测试与验证
- Dashboard Design 4.0(Xcelsius)数据直接绑定功能:瑕瑜互见
- pyomo / Ipopt : Error evaluating constraint 1: can‘t evaluate pow‘(0,0.5).
热门文章
- ArcGIS超级工具SPTOOLS1.7升级说明
- 今天服务器维护吗lol2020-2-19,英雄联盟今天维护时间是多久 lol维护公告2020最新...
- php生成DWG的略缩图
- cf两边黑屏怎么解决win10_临时解决win10_1903远程桌面黑屏bug
- 利用iOS的UICollectionView制作卡片翻页放大缩小效果
- Win10操作系统找不到已输入的环境选项解决方案
- 安卓令微软如坐针毡 WP8改进不断
- SAP中CO成本要素类别内/外部结算的区别
- 1-4移动均线交叉策略3
- 搜索引擎Solr_环境搭建和基本使用