在短視頻系統開發野蠻生長的這兩年時間里,除了獨立的短視頻媒體,“平臺+短視頻”的商業模式也快速崛起,各類玩家相繼入局,不斷探索“短視頻+”的新玩法和新模式。除去產品內容、市場需求之外,短視頻系統有哪些部分組成?今天分析一下
短視頻系統開發的疑難問題解決方案。
一個短視頻系統開發應該有哪幾部分組成呢?
第一個模塊也是最重要的,是包括視頻錄制、剪輯、保存在內的視頻生產功能。短視頻APP勢必需要為生產者表現其優秀的工具屬性——讓使用者以更低成本生產短視頻;有視頻生產就必須有視頻消費,這也是短視頻系統開發的第二個模塊。
這里的消費是指用戶消費內容而非真正地花錢或送禮,我們期待的是用戶點擊某一個短視頻,在看完短視頻的內容后認為這是一個非常不錯的作品并為其點贊、評論、分享甚至打賞,這個過程相當于消費者與視頻的生產者產生了一定的關注關系,可以為讓App具有社交屬性;
而在服務器端,包含運營后臺(運營后臺可以讓內容運營人員會對視頻內容進行標注、推薦從而有助于視頻精準推薦與精品推薦)、人物畫像,智能推薦系統用于分發Feed流、視頻播放(從Feed流中跳轉到一個短視頻詳情播放頁面,其中的秒開與流暢程度依賴于CDN與播放器等組件的配合)、送禮打賞(包括消費與充值提現系統)、評論轉發(短視頻APP消費屬性之體現,包括轉發內容至第三方APP等,可有效提高內容以及用戶轉化率)。
Q:如何優化在短視頻播放器中一邊拖動進度條一邊預覽的卡頓狀況?
A:在拖動到某個位置就解碼出一幀或幾幀并直接放至一個Buffer中,而在此之前我們集成了一個視頻輸出模塊,此模塊從隊列中不斷往外獲取視頻并進行展示。
這樣的話無論用戶拖動多快播放器都可從隊列中拿出用來展示的數據,隊列中也就是存放3~4幀。之前我們進行開發實踐時手機的性能還沒有現在這么高,但在安卓平臺上測試也沒有什么卡頓。
Q:如何實現預加載ViewPager下一頁視頻?
A:這個取決于視頻文件的存儲格式。如果是以MP4存儲那么并不易實現預加載,而如果使用HLS加載第一個分片則很容易實現。
Q:如何應對人臉識別+特效視覺情景下的丟幀問題?
A:人臉識別需要注意以下幾點:第一點是需要將人臉識別基于異步線程進行開發而非預覽線程。第二點是除非需要對人臉進行追蹤,沒有必要對每一幀視頻進行人臉識別,我們可以規定兩幀或三幀進行一次識別。
第三點是為需要人臉識別的幀視頻打上時間戳,這樣當后續使用它時,對比當前時間戳跟檢測出來的數據時間戳超過某一閾值即可判斷非機主訪問。