如何快速打造一款高清又极速的短视频APP?

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

整个短视频的市场规模一直在增长,网络数据显示2018年已经突破100亿大关,在2019年预测将超过200亿。纵观行业,在生活资讯、美食、搞笑、游戏、美妆等领域,短视频流量巨大但竞争激烈,但是在教育、财经、军事、旅游等行业还存在较大的机会。那么在这些垂直行业里,我们如何结合短视频能力,实现业务突破?

近期的云栖TechDay音视频技术专场中,阿里云视频云高级技术专家王海华现场分享了《高清极速-全面提升短视频应用体验》议题。他表示,作为短视频SDK服务提供方,视频云一直和客户同样关注如何把短视频的产品和体验做得更极致。本次分享讲从端到云再到端,探讨如何进行思考与优化,实现视频体验的全面提升。

短视频的业务特征

  1. 短视频可以随时随地进行拍摄、分享与浏览,所以它存在着海量的上传和播放
  2. 用户在移动端消费短视频的机型和网络情况十分复杂
  3. 用户对短视频体验的追求是清晰和流畅,而作为开发者,也需要考虑到流量与用户体验的平衡

关于视频云全链路优化的技术实践

阿里云视频云提供一站式短视频解决方案,并从整个链路上进行技术优化。在生产端,短视频SDK支持视频拍摄、导入编辑和视频上传的能力;当视频传到云端,支持媒体转码、存储、视频AI分析处理功能。在分发环节,通过全球节点、智能调度和热门视频预热资源,将视频内容更稳定极速的分发至消费端;最终在播放端,播放器SDK可以实现快速启播、播放缓存、无缝循环播放和多清晰度切换。

一、视频生产端-帧率与低端机型体验优化

在视频拍摄阶段,用户最关注视频的清晰度和流畅度。这其中的优化包括几个环节:

1. 预览帧率的提升

摄像头采集到数据直到呈现到屏幕上,采用GPU驱动渲染,保证渲染的实时性,减少延迟和丢帧的情况。同时,针对人脸特效的渲染,采集3buffer的CPU回调方案,减少buffer资源等待造成的帧率下降。

2. 录制帧率的提升

录制是把视频帧编码的过程。整体采用GPU直接渲染到硬编Surface的方案,同时保留了之前的buffer方案作为软编的适配,在编码的延迟和丢帧缩短到最小。

3. 针对低端机型 定义最优适配

移动终端机型复杂度极高,硬件能力、性能、屏幕分辨率等等指标千差万别,如果想要最大限度保证低端机上的视频质量,就要在提升清晰度和流畅度的时候,降低分辨率。那么问题又来了,在什么机型上降低?怎么降低?到底降低多少合适?阿里云短视频SDK又多往前走了一步,多做了一点点。经过大量的数据分析和适配测试完成了在不同性能手机的适配。

要提升整个视频的清晰度视频编码是永远绕不开的一个话题,在阿里云除了在编码器算法的优化以外,也从更加贴近业务场景的角度进一步优化。在如此多的业务场景,一种编码技术和编码参数是解决不了所有问题,所以针对不同场景,需要完成相应的编码优化。比如以质量优先的场景,会适当牺牲转码速度或者压缩率,以保证清晰度最佳;以转码速度优先的场景,会调整质量,以适实现更高的转码速度。这样更有针对性的编码调优,就可以根据需求实现场景化的平衡。

除此之外,还从更加上层的用户体验上做了很多细节的优化。

王海华表示:“从相册选择资源进入编辑界面,从点击合成按钮进入发布界面,从点击发布界面回到APP的主界面等这些环节的交互流畅度也直接影响用户体验。这其中的优化点:首先是当从相册选择多个图片或者视频合成视频时,我们底层支持图片视频混编的能力从而缩短loading时间,减少等待时间;其次支持后台合成和后台上传,点击合成按钮和发布按钮的时候我们直接进入后台进行合成和上传,让APP可以更快的进入到下一个界面,从而提升用户体验。”

“在视频生产端经过了以上的优化后,看起来我们可以根据对应的场景拿到自己需要的视频,所有的问题都解决了。但是面临着海量上传和播放,以及复杂的网络,我们怎么保证上传速率和上传功率?在播放环节上又怎样去保证播放流畅度?作为开发者(我们的客户)又怎么控制带宽成本呢?”接下来,王海华带我们了解了在上传、云端处理和分发以及播放几个环节中的优化点以及带来的效果。

二、视频上传链路优化

在视频上传链路,需要核心关注速度和上传成功率两个指标。视频云支持动态加速,选择最优路径来就近上传数据,保证极速上传。同时,采用分片、断点续传技术,针对不同地域和场景决定分片大小,确保上传成功率在99.2%以上。

三、云端处理&分发

当视频上传到云端,就需要对其进行转码等处理,并进行内容分发。这其中我们针对三个指标进行关注和优化:

1. 视频发布速度

不同的场景,需要的视频发布速度是不同的。对于聊天场景下的视频发布,直接在端上进行转码,把原视频直接访问,最大限度提升速度。对于对实时性要求并没有那么高的视频社交APP等场景往往在上传的时候会上传一个码率相对较高的高清视频,为了视频快速启播,我们推荐可以先运用低复杂度转码来加快转码速度;在未来,也会将视频端上合成、上传和云端转码并行处理,大幅度缩短处理时间。

2. 转码成本 vs. 带宽成本

在很多社区里面当一个视频变成热门视频的时候,这时候带宽会带来更大的成本,这个时候建议对热门视频重新转码,提升转码复杂度,将视频文件变小,降低带宽成本。

3. 提升播放体验

因为用户的终端和网络情况不同,所以需要进行多清晰度转码,并采用推荐视频预热方案,提升启播速度和流畅度

四、视频播放优化

播放端直接影响着用户体验,这里我们需要关注几个指标:

  1. 打开速度的快慢影响着用户对产品的第一印象,启播环节用到协议优化、解码渲染优化、视频列表预加载等方案,实现极速启播。
  2. 短视频通常比较短小,通常会采用循环播放的方式来吸引用户重复观看,避免流失。那无缝地循环播放、同时边播放边缓存就十分必要,可以节省流量。
  3. 终端网络情况复杂,但播放流畅度依然是用户十分在意的指标。当用户出现网络环境的变更,需要快速切换多种清晰度的视频,保证视频播放的流畅。

如何进行产品快速落地

一、客户端

短视频SDK将最新最流行的功能、交互集成到产品级Demo中,并开放了源码,开发者拿到以后可以直接集成到应用中,或者基于源代码进行业务的适配,快速开发出一款短视频APP。

Demo提供了拍摄、编辑、播放等模块,同时提供相册管理、音乐、动图、字体等资源的下载和管理,也提供了异步上传发布功能、AppServer业务服务器的SampleCode。

二、服务端

在云端,短视频SDK与视频点播服务打通,提供了丰富的媒体管理和媒体处理能力,开发者通过简单的配合和API调用就可以将以下功能集成到业务当中。

媒资存储:音频,视频,图片,字幕等丰富的存储能力;
媒资管理:提供了分类,打标,搜索,审核能能力等;
数据统计:存储,流量/带宽,播放量等数据统计;

原文链接

转载于:https://my.oschina.net/u/1464083/blog/2996528

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/280960.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django03: django加入APP

使用命令在已有project创建 1.创建 在manage.py同级运行命令 python manage.py startapp app01 2.django中加入app 在settings.py里的INSTALLED_APPS加入app01.apps.App01Config, INSTALLED_APPS [django.contrib.admin,django.contrib.auth,django.contrib.contenttype…

如何将Windows 10帐户还原为本地帐户(在Windows Store劫持它之后)

If your Windows 10 user account is currently a Microsoft account (by your choice or because you got, one way or another, roped into it) it’s easy to revert it back to a local account if you know where to look. Read on as we show you how. 如果您的Windows 1…

【译】Dapr 是一个“10倍好”平台 !?

译者注在正式阅读本文之前,我们有必要先了解下什么是“10 倍好”。10 倍好理论最早出自彼得蒂尔的《从 0 到 1》,他说一个新创企业,要想获得快速成长,其提供的解决方案要比现有方案好 10 倍以上,这个好 10 倍&#xff…

1. ReactJS基础(开发环境搭建)

本文主要介绍通过React官方提供的create-react-app脚手架进行开发环境的搭建。 1.安装node环境(安装过程这里不做介绍,可参考其他博文) 在cmd中输入node -v 如果可以看到相应版本号,说明node环境安装成功 2.npm全局安装create-react-app脚手架 3.cmd命令…

“云计算+DevOps”的正确打开方式

以我们的经验看,技术和工具是很重要,但是技术和工具本身却不能产生价值,而将DevOps和云计算结合却可以。事实上,云计算的特性决定了,云计算和DevOps势必如影随形,而云计算与DevOps的结合也正在为企业用户提…

微服务和分布式系统中的授权解决方案

本文是 《精读 Mastering ABP Framework》 2.3 探索横切关注点 - 使用授权和权限系统 一节的扩充内容,重点探讨了授权在分布式和微服务系统中遇到的挑战,以及 ABP Framework 中采用的解决方案。认证 & 授权• 认证(Authentication&#x…

如何从命令行浏览和连接到无线网络

() We are always on the lookout for geeky ways to impress our friends, and recently we came across a way to connect to our wireless network from the command prompt, so today we’ll show you how to do it as well. 我们一直在寻找令人印象深刻的方式来打动我们的…

html 基础之canvas 和 localStorage

1&#xff0c;建立一个canvas 画布&#xff1a; 1 <!DOCTYPE html>2 <html lang"en">3 <head>4 <meta charset"UTF-8">5 <meta name"viewport" content"widthdevice-width, initial-scale1.0">…

国产数据助力金融行业维护信息安全

金融信息系统作为国家关键信息基础设施&#xff0c;直接关系到国家经济、社会的正常运行。长期以来&#xff0c;我国金融信息化依赖进口设备和系统&#xff0c;金融行业尤其是银行业被IBM、HP、甲骨文等外商捆绑较深&#xff0c;金融行业信息化设备的软硬件系统被外商垄断。这等…

etcd v3 集群——简单配置

2019独角兽企业重金招聘Python工程师标准>>> 一、etcd v3安装&#xff1a; tar -axf etcd-v3.2.0-linux-amd64.tar.gz -C /usr/local/src/chmod ax /usr/local/src/etcd-v3.2.0-linux-amd64/etcd*cp -a /usr/local/src/etcd-v3.2.0-linux-amd64/etcd* /usr/local/bi…

windows变量延迟_Windows 10的2018年10月更新可能推迟到11月(这就是原因)

windows变量延迟Microsoft stopped offering Windows 10’s October 2018 Update on October 6, as it was deleting some people’s files. Now, another ugly data loss bug has reared its head, and it won’t be fixed until November. 微软于10月6日停止提供Windows 10的…

根据MediatR的Contract Messages自动生成Minimal WebApi接口

大家好&#xff0c;我是失业在家&#xff0c;正在找工作的博主Jerry。今天给大家介绍一个能大大减少ASP.Net Minimal WebApi编码量的方法。我们一般会把微服务的VO和DTO封装成消息类&#xff0c;并作为WebApi的Request和Response参数进行网络传递。如果使用MediatR&#xff0c;…

bupt summer training for 16 #8 ——字符串处理

https://vjudge.net/contest/175596#overview A.设第i次出现的位置左右端点分别为Li&#xff0c;Ri 初始化L0 0&#xff0c;则有ans sum{ (L[i] - L[i-1]) * (n 1 - Ri) } 1 #include <cstdio>2 #include <cstring>3 #include <iostream>4 #include <a…

程序员必须知道的HTML常用代码有哪些?

HTML即超文本标记语言&#xff0c;是目前应用最为广泛的语言之一&#xff0c;是组成一个网页的主要语言。在现今这个HTML5华丽丽地占领了整个互联网的时候&#xff0c;如果想要通过网页抓住浏览者的眼球光靠因循守旧是不行的&#xff0c;程序猿们需要掌握一些必须知道的HTML常用…

公用ip地址查询_是什么使您无法更改公用IP地址并在Internet上造成严重破坏?

公用ip地址查询What exactly is preventing you (or anyone else) from changing their IP address and causing all sorts of headaches for ISPs and other Internet users? 到底是什么在阻止您(或其他任何人)更改其IP地址并导致ISP和其他Internet用户感到头疼&#xff1f; …

Vim的新一代补全插件:coc.nvim

coc.nvim可以同时在nvim和vim8.1上使用。 安装 参考官方&#xff1a;Install coc.nvim 推荐使用vim-plug插件管理器&#xff0c;在vimrc中添加&#xff1a; Plug neoclide/coc.nvim, {do: { -> coc#util#install()}} 然后输入命令:PlugInstall 等待插件下载&#xff0c;再等…

C++STL——概述

一、相关介绍 STL 标准模板库在编写代码的过程中有一些程序经常会被用到&#xff0c;而且需求特别稳定&#xff0c;所以C中把这些常用的模板做了统一的规范&#xff0c;慢慢的就形成了STL提供三种类型的组件: 容器、迭代器和算法&#xff0c;它们都支持泛型程序设计标准容器 顺…

固态硬盘可靠性_您可以通过使用较少的总容量来提高硬盘的可靠性吗?

固态硬盘可靠性Your computer has a massive hard drive that you significantly underuse. Would decreasing the size of the primary partition actually increase the lifespan of the drive? 您的计算机具有大量未充分使用的巨大硬盘驱动器。 减小主分区的大小是否会真正…

接收上传的multi-file的文件(四)

构建工程 为例创建一个springmvc工程你需要spring-boot-starter-thymeleaf和 spring-boot-starter-web的起步依赖。为例能够上传文件在服务器&#xff0c;你需要在web.xml中加入标签做相关的配置&#xff0c;但在sringboot 工程中&#xff0c;它已经为你自动做了&#xff0c;所…

数据库读写分离 - MyBatis

2019独角兽企业重金招聘Python工程师标准>>> 由于项目中数据量较大&#xff0c;访问量也较高&#xff0c;故在数据库的设计上&#xff0c;采用读写分离思想&#xff0c;达到性能要求&#xff01; 简单科普一下实现读写分离的思路 配置及加载数据库信息&#xff0c;即…