短视频APP源码直播APP源码什么样的好

简介: 短视频所面临的架构问题短视频相比于文本数据而言,有着一些差异:1.数据大小的差异。比如一条美拍,经过视频压缩和清晰度的权衡,10s的视频大小1MB多,而一条5分钟视频的美拍甚至要达到几十M,相比与几十字节或者几百字节的文本要大得多。

短视频所面临的架构问题
短视频相比于文本数据而言,有着一些差异:
1.数据大小的差异。
比如一条美拍,经过视频压缩和清晰度的权衡,10s的视频大小1MB多,而一条5分钟视频的美拍甚至要达到几十M,相比与几十字节或者几百字节的文本要大得多。因为数据量要大得多,所以也会面临一些问题:如何上传、如何存放、以及如何播放的问题。
关于上传,要在手机上传这么一个视频,特别是弱网环境要上传这么一个文件,上传的成功率会比较低,晚高峰的时候,省际网络的拥塞情况下,要更为明显得多。所以针对上传,需要基于CDN走动态加速来优化网络链路(通过基调实测过对于提升稳定性和速度有一定帮助),同时对于比较大的视频需要做好分片上传,减少失败重传的成本和失败概率等来提升可用性。同时不同CDN厂商的链路状况在不同的运营商不同地区可能表现不一,所以也需要结合基调测试,选择一些比较适合自己的CDN厂商链路。
同时因为数据相对比较大,当数据量达到一定规模,存储容量会面临一些挑战,目前美拍的视频容量级别也达到PB级别的规模,所以要求存储本身能够具备比较强的线性扩展能力,并且有足够的资源冗余,而传统的Mysql等数据库比较难来支持这个场景,所以往往借助于专用的分布式对象存储,通过自建的服务或者云存储服务能够解决,得益于近几年云存储的发展,目前美拍主要还是使用云存储服务来解决。自身的分布式对象存储主要用于解决一些内部场景,比如对于数据隐私性和安全性要求比较高的场景。
关于对于播放,因为文件比较大,也容易受到网络的影响,所以为了规避卡顿,一些细节也需要处理。比如对于60s,300s的视频,需要考虑到文件比较大,同时有拖动的需求,所以一般使用http range的方式,或者基于HLS的点播播放方式,基于前者比较简单粗暴,不过基于播放器的机制,也能够满足需求,也能实现点播拖动。而直接基于HLS的方式会更友好,特别是更长的一些视频,比如5分钟甚至更大的视频,不过这种需要单独的转码支持。之前美拍主要是短视频为主,所以更多使用http range的方式。而后续随着5分钟或者更大视频的场景,也在逐步做一些尝试。同时对于播放而言,在弱化环境下,可能也会面临一些问题,比如播放时长卡顿的问题,这种一般通过网络链路优化;或者通过多码率的

自适应优化,比如多路转码,然后根据特定算法模型量化用户网络情况进行选码率,网络差的用低码率的方式。
2.数据的格式标准差异
相比与文本数据,短视频本身是二进制数据,有比较固定的编码标准,比如H.264、H.265等,有着比较固定和通用的一些格式标准。
3.数据的处理需求
视频本身能够承载的信息比较多,所以会面临有大量的数据处理需求,比如水印、帧缩略图、转码等,以及短视频鉴黄等。而视频处理的操作是非常慢的,会带来巨大的资源开销。
美拍对于视频的处理,主要分为两块:客户端处理,视频处理尽量往客户端靠,利用现有强大的手机处理性能来规避减少服务器压力,同时这也会面临一些低端机型的处理效率问题,不过特别低端的机型用于上传美拍本身比较少数,所以问题不算明显。客户端主要是对于视频的效果叠加、人脸识别和各种美颜美化算法的处理,我们这边客户端有实验室团队,在专门做这种效果算法的优化工作。同时客户端处理还会增加一些必要的转码和水印的视频处理。目前客户端的视频编解码方式,会有软编码和硬编码的方式,软编码主要是兼容性比较好,编码效果好些,不过缺点就是能耗高且慢些。而硬编码借助于显卡等,能够得到比较低的能耗并且更快,不过兼容和效果要差一些,特别是对于一些低配的机型。所以目前往往采用结合的方式。服务端的处理,主要是进行视频的一些审核转码工作,也有一些抽帧生成截图的工作等,目前使用ffmpeg进行一些处理。服务端本身需要考虑的一些点,就是因为资源消耗比较高,所以需要机器数会多,所以在服务端做的视频处理操作,会尽量控制在一个合理的范围。同时因为可能美拍这种场景,也会遇到这些热点事件的突变峰值,所以转码服务集群本身需要具备可弹性伸缩和异步化消峰机制,以便来适应这种突增请求的场景。

  1. 审核问题
    视频内容本身可以有任意多样的表现形式,所以也是一个涉黄涉恐的多发地带,而这是一个无法规避掉的需求,因为没有处理好,可能分分钟被封站。审核的最大的问题,主要是会面临视频时长过长,会带来人力审核成本的提升。比如100万个视频,每个平均是30s的话,那么就3000W 秒,大概需要347人日。

通过技术手段可以做一些工作,比如:接入一些比较好的第三方的视频识别模块,如果能够过滤掉85%保证没有问题的视频的话,那么工作量会缩减到15%。不过之前在接入使用的时候,发现效果没有达到预期,目前也在逐步尝试些其他方案。通过抽帧的方式,比如只抽取某几帧的方式进行检查。通过转码的方式,比如一个60s的美拍视频,通过2倍速的方式,无声,140 * 140的分辨率转换,大概大小能够在650kB左右,这样加速了播放的过程的同时,还能够减少审核带宽的消耗,减少了下载过程。基于大数据分析,分析一些高危地带、用户画像等,然后通过一些黑名单进行一些处理,或者对于某些潜在高危用户进行完整视频的审核,而对于低危用户进行抽帧的方式等等。

相关文章
|
3天前
|
PHP
全新uniapp小说漫画APP小说源码/会员阅读/月票功能
价值980的uniapp小说漫画APP小说源码/会员阅读/月票功能
35 20
|
2天前
|
JSON 缓存 前端开发
HarmonyOS NEXT 5.0鸿蒙开发一套影院APP(附带源码)
本项目基于HarmonyOS NEXT 5.0开发了一款影院应用程序,主要实现了电影和影院信息的展示功能。应用包括首页、电影列表、影院列表等模块。首页包含轮播图与正在热映及即将上映的电影切换显示;电影列表模块通过API获取电影数据并以网格形式展示,用户可以查看电影详情;影院列表则允许用户选择城市后查看对应影院信息,并支持城市选择弹窗。此外,项目中还集成了Axios用于网络请求,并进行了二次封装以简化接口调用流程,同时添加了请求和响应拦截器来处理通用逻辑。整体代码结构清晰,使用了组件化开发方式,便于维护和扩展。 该简介概括了提供的内容,但请注意实际开发中还需考虑UI优化、性能提升等方面的工作。
37 11
|
1天前
|
移动开发 小程序 前端开发
使用php开发圈子系统特点,如何获取圈子系统源码,社交圈子运营以及圈子系统的功能特点,圈子系统,允许二开,免费源码,APP 小程序 H5
开发一个圈子系统(也称为社交网络或社群系统)可以是一个复杂但非常有趣的项目。以下是一些关键特点和步骤,帮助你理解如何开发、获取源码以及运营一个圈子系统。
29 3
|
6天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
31 3
|
1天前
|
小程序 安全 网络安全
清晰易懂!陪玩系统源码搭建的核心功能,陪玩小程序、陪玩app的搭建步骤!
陪玩系统源码包含多种约单方式、实时语音互动、直播间与聊天室、大神申请与抢单、动态互动与社交及在线支付与评价等核心功能。搭建步骤包括环境准备、源码上传与解压、数据库配置、域名与SSL证书绑定、伪静态配置及后台管理。注意事项涵盖源码安全性、二次开发、合规性和技术支持。确保平台安全、合规并提供良好用户体验是关键。
|
1月前
|
移动开发 小程序
仿青藤之恋社交交友软件系统源码 即时通讯 聊天 微信小程序 App H5三端通用
仿青藤之恋社交交友软件系统源码 即时通讯 聊天 微信小程序 App H5三端通用
58 3
|
1月前
|
监控 安全 开发者
山东布谷科技:关于直播源码|语音源码|一对一直播源码提交App Store的流程及重构经验
分享提交直播源码,一对一直播源码,语音源码到Appstore的重构经验!
|
1月前
|
NoSQL 应用服务中间件 PHP
布谷一对一直播源码服务器环境配置及app功能
一对一直播源码阿里云服务器环境配置及要求
|
1月前
|
机器人
布谷直播App系统源码开发之后台管理功能详解
直播系统开发搭建管理后台功能详解!
|
2月前
|
NoSQL PHP Redis
布谷语音app源码服务器环境配置及技术开发语言
布谷语音app源码服务器环境配置及技术语言研发。。

热门文章

最新文章