随着 5G 时代的到来,多媒体音视频、特效在 5G 时代下会迎来新的云端的挑战,同时也会催生更多的跟云端相关的业务场景。因此我们需要规划云端的建设,把音视频和特效在移动端积累的能力和经验复制扩展到云端,在云端全面打磨提升音视频能力,支持公司更多业务创造更大价值。同时随着 WebAssembly 的逐步成熟,也给了我们将编辑 SDK 放到 Web 运行的机会。 本文首先帮大家回顾一下 WebAssembly 的一些基本情况,然后将介绍 Web 视频编辑所依赖的关键特性的情况,以及再迁移过程中我们遇到的问题和解决思路。
目前 PC Web 侧实现直播推流通常基于 WebRTC 技术,视频编码为 H264/VP8 格式,音频编码为 Opus 格式,而通常的下行直播分发协议如 Flv、Hls 等挟带的视频数据编码格式为 H264,音频数据编码格式为 AAC,这中间存在流媒体服务器需要将 Opus 音频转码为 AAC 音频的工作,增加了流媒体服务器转码成本和转码稳定性问题。如果能够在直播推流时直接推送 AAC 音频数据,就可以省去流媒体服务器音频转码部分的开销。为了解决推流 AAC 的问题,我们选择在 Web 侧自己实现推流能力。 推流主要分三部分工作,音视频采集、编码、上行传输。采集借助浏览器暴露的摄像头、麦克风采集 API,视频编码借助 WebCodec API,传输借助 WebSocket、WebTransport API。只有音频编码的工作由于目前 WebCodec 暂不支持对 AAC 音频格式的编码,需要寻找音频编码的替代方案。 音视频编解码工作是 CPU 密集型任务,业界相关方案实现大多基于 C/C++ 语言编写。这其中,FFmpeg 作为多媒体处理领域强大的软件实现,提供了简洁的 API
在本文中,我们将基于一个实际的客户端生产环境中遇到的问题,来观察如何使用 WebAssembly 技术打破原有的性能瓶颈,提升用户价值。在这个过程中,我们将引入 AssemblyScript 技术栈,把原有的 TypeScript/JavaScript 逻辑下沉 WebAssembly 中,从而实现性能的大幅提升,并通过实验验证具体的性能收益。
如今互联网大厂的运营活动不断精细化内卷,玩法也越来越新颖,从简单的分享玩法到游戏化的活动体验,怎样能吸引更多用户参与活动,达成拉新、促活、商业营收等运营目标?本“秘籍”将结合百度APP以往的运营活动设计案例,浅谈一下我们在设计工作中,如何利用有限的时间排期快速且高效的搭建出一个活动主页,在降本增效的同时提升活动的品牌感知,促进用户转化。 首先我们要了解一套完整的运营活动参与流程包含用户了从资源位开始,进入活动主页参与活动,通过弹窗、二级页等内容引导最终实现活动的全链路体验。
Kubernetes 作为一项核心技术已成为现代应用程序架构的基础,越来越多的企业使用其作为容器编排系统。Kubernetes 集群经历了 从单 Kubernetes 集群到多 Kubernetes 集群、从多 Kubernetes 集群到 Kubernetes 多集群的演进[1],集群的展现形式不断发生着变化。 为此,Kubernetes 多集群 SIG 提出了 KEP-1645: Multi-Cluster Services API[2](以下简称 MCS API)应对 Kubernetes 多集群带来的挑战,详细内容可以看之前的介绍:认识一下 Kubernetes 多集群服务 API[3] ,这篇要介绍的是多集群服务 DNS。
本文记录了一次问题的排查过程,从中可以学到不少共性的方法论和经验教训,所以做了提炼归纳。(文末有活动)
随着业务日益复杂,应用微服务化已成为主流趋势,业务领域通常在多个微服务应用中实现。DevOps 工程从应用角度,虽实现了应用流水线和项目流水线,但也面临着测试阶段管理多套应用流水线的复杂场景。通常情况下,这些业务会存在多套互相隔离的环境,而这些环境的构建也依赖人工处理资源申请和部署。由于构建不易,这些环境通常被长期反复使用,并需要定期与生产环境同步以确保开发和测试的有效准确。这些工作要求工程师对业务的应用架构熟悉且有时间频繁进行操作,但实际上这些工作大多落在项目资深的 DEV 或 QA 身上,浪费了宝贵的人力资源。因此,我们可以考虑建立“环境构建平台”,实现环境即用即建,让 DEV 和 QA 专注于自己擅长的事情,并最终节约人力资源提升效率。Qunar 的基础平台团队对此问题进行了长期实践,本文将分享 Qunar 在测试环境治理领域的实践经验和思考。