字节开源视频动画引擎AlphaPlayer

字节开源视频动画引擎AlphaPlayer

2022-11-10 0 1,466
资源编号 47261 最近更新 2022-11-10
¥ 0人民币 升级VIP
立即下载 注意事项
下载不了?请联系网站客服提交链接错误!
增值服务: 安装指导 环境配置 二次开发 模板修改 源码安装

本期推荐的是一个字节跳动开源的视频动画SDK——AlphaPlayer。

字节开源视频动画引擎AlphaPlayer

AlphaPlayer是直播台使用的一个视频动画SDK,可以通过制作Alpha通道分离的视频素材,再在客户端上通过ES重新实现Alpha通道和RGB通道的混合,真正实现在OpenGL中播放带透明通道的视频。

这套系统的维护方案明显降低了客户端的制作成本,因为它的性能和启动成本更可靠,比 cocos2d 发动机更可靠,而且负载为负载和成本,为复杂动画地提供了一种全新的方式,新的复杂的动画开发是非常简单的高效。

对比方案

目前比较常见的动画方案有哪些比较简单的动画方案有杏动画、帧动画、gif/web、lottie/引擎,对于SVGA动画效果、cocos的实现做个简单对比:

字节开源视频动画引擎AlphaPlayer

AlphaPlayer的访问体积极小(只有40KB左右),而且对动画资源的高度、资源制作时不需要考虑特效的问题,对开发者和设计者非常友好。

运行效果:

字节开源视频动画引擎AlphaPlayer

基本原理

主要有两个核心,IMediaPlayer负责视频输出接口,再支持外部渲染器;另一个是VideoPlayer负责解析每个帧画面进行混合,或者GLTextViewGLSur上。

大致的混合过程可以看下图示例:

字节开源视频动画引擎AlphaPlayer

原始图像的画面中传送的 RGB 通道存储了原始透明的 Alpha 部分,右边部分使用 RGB 通道值存储了原始透明的 RGB 值,在端上通过 OpenGL 视频重新显示各个像素的 Alpha 和 RGB进行数值组合,重新生成ARGB视频画面,实现透明视频的动画效果。

快速访问

  • iOS

添加

pod 'BDAlphaPlayer'

初始化查看

BDAlphaPlayerMetalView *metalView = [[BDAlphaPlayerMetalView alloc] initWithDelegate:self];

[self.view addSubview:metalView];

动画播放视频

BDAlphaPlayerMetalConfiguration *configuration = [BDAlphaPlayerMetalConfiguration defaultConfiguration];

NSString *testResourcePath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"TestResource"];

NSString *directory = [testResourcePath stringByAppendingPathComponent:@"heartbeats"];

configuration.directory = directory;

configuration.renderSuperViewFrame = self.view.frame;

configuration.orientation = BDAlphaPlayerOrientationPortrait;

[self.metalView playWithMetalConfiguration:configuration];
  • Android

添加

allprojects {

repositories {

...

maven { url 'https://jitpack.io' }

}

}

dependencies {

implementation 'com.github.bytedance:AlphaPlayer:1.0.4'

}

初始化PlayerController

val config = Configuration(context, lifecycleOwner)

// 支持GLSurfaceView&GLTextureView, 默认使用GLSurfaceView

config.alphaVideoViewType = AlphaVideoViewType.GL_TEXTURE_VIEW

// 也可以设置自行实现的Player, demo中提供了基于ExoPlayer的实现

val playerController = PlayerController.get(config, DefaultSystemPlayer())

playerController.setPlayerAction(object: IPlayerAction {

override fun onVideoSizeChanged(videoWidth: Int, videoHeight: Int, scaleType: ScaleType) {

}

override fun startAction() {

}

override fun endAction() {

}

})

playController.setMonitor(object: IMonitor {

override fun monitor(result: Boolean, playType: String, what: Int, extra: Int, errorInfo: String) {

}

})

将PlayerController绑定到ViewGroup

playerController.attachAlphaView(mVideoContainer)

动画播放视频

fun startVideoAnimation() {

val baseDir = "your video file base dir"

val portraitFileName = "portrait.mp4"

val portraitScaleType = 2

val landscapeFileName = "landscape.mp4"

val landscapeScaleType = 2

val dataSource = DataSource().setBaseDir(baseDir)

.setPortraitPath(portraitFileName, portraitScaleType)

.setLandscapePath(landscapeFileName, landscapeScaleType)

.setLooping(false) // 可设置该视频是否循环播放

if (dataSource.isValid()) {

playerController.start(dataSource)

}

}

资源释放

fun releasePlayerController() {

playerController.detachAlphaView(mVideoContainer)

playerController.release()

}

—END—

开源协议:Apache2.0

资源下载此资源为免费资源立即下载

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

七爪网 免费源码 字节开源视频动画引擎AlphaPlayer https://www.7claw.com/47261.html

分享免费的开源源码

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、七爪会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、七爪无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在七爪上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于七爪介入快速处理。
查看详情
  • 1、七爪作为第三方中介平台,依据交易合同(商品描述、交易前商定的内容)来保障交易的安全及买卖双方的权益; 2、非平台线上交易的项目,出现任何后果均与互站无关;无论卖家以何理由要求线下交易的,请联系管理举报。
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务