如何快速打造一款高清又極速的短視頻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.pswp.cn/news/280960.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280960.shtml
英文地址,請注明出處:http://en.pswp.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…

[面經]春季跳槽面筋總結 [2018年3月17]

春季跳槽面筋總結 人人都說金三銀四,由于一些個人的原因,博主也在今年的三月份抽空面了幾家公司,這里來總結下學習到的東西。 先簡單的說下博主的情況: 2015年7月份畢業,到現在加上實習可以算三年工作經驗base武漢&…

如何將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…

04.jQuery 基本語法筆記

jQuery是什么 jQuery是一個輕量級的、兼容多瀏覽器的JavaScript庫。jQuery使用戶能夠更方便地處理HTML Document、Events、實現動畫效果、方便地進行Ajax交互,能夠極大地簡化JavaScript編程。它的宗旨就是:“Write less, do more.“ jQuery引入到HTML …

1. ReactJS基礎(開發環境搭建)

本文主要介紹通過React官方提供的create-react-app腳手架進行開發環境的搭建。 1.安裝node環境(安裝過程這里不做介紹,可參考其他博文) 在cmd中輸入node -v 如果可以看到相應版本號,說明node環境安裝成功 2.npm全局安裝create-react-app腳手架 3.cmd命令…

軟件工程(2018)第一次作業

(1) 回顧你過去將近3年的學習經歷 當初你報考的時候,是真正喜歡計算機這個專業嗎? 在高中的時候,我們就開設了微機課,當時上課的內容不僅有Microsoft word,excel,powerpoint的使用,還有編程的基本入門,當時…

“云計算+DevOps”的正確打開方式

以我們的經驗看,技術和工具是很重要,但是技術和工具本身卻不能產生價值,而將DevOps和云計算結合卻可以。事實上,云計算的特性決定了,云計算和DevOps勢必如影隨形,而云計算與DevOps的結合也正在為企業用戶提…

微服務和分布式系統中的授權解決方案

本文是 《精讀 Mastering ABP Framework》 2.3 探索橫切關注點 - 使用授權和權限系統 一節的擴充內容,重點探討了授權在分布式和微服務系統中遇到的挑戰,以及 ABP Framework 中采用的解決方案。認證 & 授權? 認證(Authentication&#x…

pat 團體天梯賽 L2-012. 關于堆的判斷

L2-012. 關于堆的判斷 時間限制400 ms內存限制65536 kB代碼長度限制8000 B判題程序Standard作者陳越將一系列給定數字順序插入一個初始為空的小頂堆H[]。隨后判斷一系列相關命題是否為真。命題分下列幾種: “x is the root”:x是根結點;“x a…

04-1.jQuery事件與補充each/data

目錄 事件 事件綁定 常用事件 阻止后續事件執行 補充 each .data() 事件 事件綁定 .on( events [, selector ],function(){}) events: 事件selector: 選擇器(可選的)function: 事件處理函數 普通綁定,沒有選擇器&#x…

【刷出存在感】鋒會圓桌現場

【編者按】本文為鋒會|路由器專場的圓桌全文(有刪減)。 圓桌嘉賓:(自左向右依次) 極路由聯合創始人 丁衣 知道創宇研究部總監(安全專家) 余弦 WRTnode創始人(開源硬件領域&#xff0…

如何從命令行瀏覽和連接到無線網絡

() 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;金融行業信息化設備的軟硬件系統被外商壟斷。這等…

mysql查詢優化以及面試小結

mysql面試小結&#xff1a; 1.mysql的基本架構 2.mysql的索引 btree的原理 3.mysql的索引優化 4.mysql的sql查詢優化 慢查詢日志 Show prodile 全局查詢日志 5.mysql的主從復制 6.mysql的鎖機制 表鎖 行鎖轉載于:https://www.cnblogs.com/daiwei1981/p/10224934.html

05.Bootstrap導入基礎筆記

Bootstrap介紹 Bootstrap是Twitter開源的基于HTML、CSS、JavaScript的前端框架。 它是為實現快速開發Web應用程序而設計的一套前端工具包。 它支持響應式布局&#xff0c;并且在V3版本之后堅持移動設備優先。 為什么要使用Bootstrap&#xff1f; 在Bootstrap出現之前&…

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的…

rest-framework-權限組件

rest-framework-權限組件 一 權限簡介 只用超級用戶才能訪問指定的數據&#xff0c;普通用戶不能訪問&#xff0c;所以就要有權限組件對其限制 二 局部使用 from rest_framework.permissions import BasePermission class UserPermission(BasePermission):message 不是超級用戶…