【无标题】Test
短视频平台的那些事
- 前言
过去几年,我一直专注于短视频平台的建设和开发工作。在这个过程中,我发现这个领域有着非常多的挑战和机遇,也涌现出了许多新的技术和创新。今天大家分享我个人的一些经验,希望能够为大家带来一些启发和帮助。
[图片] - 概览介绍
通常一个短视频平台会有自己的视频输入服务(C端App侧 & Web端创作者平台 & 业务方API推送),视频处理服务(转码,水印,片头片尾…),安全服务(涉黄涉暴等安全检测),推荐分发服务(个人推荐,任意渠道推荐,可以超业务域分发,对接外部),数据分析服务(视频,用户相关播放数据和粉丝数据),结算服务(按数据分析结果进行收益结算)。 由于是视频类服务,其中还必须配置CDN文件加速和图片、视频防盗链系统。除了这些之外,实际中会有很多更深层次的或边缘性赋能的业务细节,但今天在这我将不去深扒,而围绕整体上层的功能特点为大家介绍下短视频业务的建设架构和核心能力。
[图片] - 业务框架
以之前的业务举例,如下图有很多短视频相关的基础能力(视频处理,内容理解,审核,流通,分发,数据存储,数据分析)都统一建设到了我们的视频中台,可以大大的缩减新视频业务的对接时间,提高处理和传播效率。由不同的视频发布入口传入中台,在视频中台这个通用域完成视频剪辑处理和合法性判断,并将最终结果推荐分发到各个的渠道方,完成视频的整体流转,同时中台提供数据查询和分析能力。因此外部的视频发布平台(创作者平台、短视频APP)就可以在高度定制化自己的引流、促活业务的同时快速接入视频中台的处理能力,很好的达到了视频中台能力的“多路复用”的效果。
[图片]
服务分层图:
[图片] - 关键技术能力
4.1 视频处理
4.1.1 FFMPEG技术
多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等,一条命令就可以给视频添加很多效果,以下为一些简单例子(实际一条指令可以有很多复杂的操作,大家有兴趣的话可以自己去操作玩一下,使用的时候也需要注意CPU资源):
转码(修改视频格式,分辨率,码率…)案例:
//转码demo
//-i输入,-r 指定帧率,-s 指定分辨率,-b 指定比特率;于此同时可以对声道进行转码,-acodec 指定音频编码,-ab 指定音频比特率,-ac 指定声道数
ffmpeg -i out.ogv -s 640x480 -b 500k -vcodec h264 -r 29.97 -acodec libfaac -ab 48k -ac 2 out.mp4
截图案例:
//ffmpeg 通过指定 -vcodec 参数为 mjpeg,或者指定 -f 参数为 mjpeg时,可以输出 jpg截图,指定 -vcodec参数为png,或者指定输出文件扩展名为png
ffmpeg -i 1.mp4 sample.png -ss 00:00:05 -vframes 1 -an -vcodec mjpeg
水印案例:
//在视频左下角添加图片水印
ffmpeg -i input.mp4 -i logo.png -filter_complex ‘overlay=x=10:y=main_h-overlay_h-10’ output.mp4
//在视频左上角添加一条白色字体的文字水印
ffmpeg -i input.mp4 -vf “drawtext=fontfile=simhei.ttf: text=‘技术是第一生产力’:x=10:y=10:fontsize=24:fontcolor=white:shadowy=2” output.mp4
4.2 视频安全,合规
4.2.1 视频安全审核
由安全审核算法(类似易盾系统)对视频进行判断分析,任何涉黄涉爆的文字,图片,视频内容都将被检测处理,机器审核和人工审核进行双重干预。
4.2.2 视频MD5校验
对所有流入系统的视频进行简单MD5值计算,排除重复的视频。
4.2.3 视频AI指纹
对于高度相似度的类搬运视频,需要通过AI指纹算法进行相似度判重,将已有的高质量视频的AI指纹入库,任何新进的视频都将和指纹库的视频进行相似度对比(空间向量对比,词频碰撞对比),更多详情可上华为云或阿里云上搜索视频指纹相关服务进行了解。
4.3 视频内容理解
4.3.1 视频分类
视频分类算法是通过对视频进行抽样拆帧分析各帧的属性,例如美妆,风景,人文,建筑,游戏等不同类别,通过算法聚合高频分类得到视频的最终分类。
4.3.2 视频标签
同视频分类类似,视频标签算法都是通过算法取帧分析视频画面得到视频标签,但是视频标签会更加专注于一些关键词、热点词,更加具象化。
4.3.3 视频质量
任何视频都可以通过视频质量算法打出质量分数,从而更好的去定性一个视频,判别依据包含但不限于机器判别的视频分辨率、码率、帧率、黑白屏、乱码、马赛克以及人工判别的视频调性(与视频类目和标签相关度)。
4.4 视频推荐,分发
4.4.1 分发
分发主要指的是向不同视频接受渠道分发视频(结合用户黑白名单,渠道业务倾向),一般会有几种策略:
- 按渠道定制视频分类分发
- 按视频质量分发
- 按视频标签分发
- 全量分发
4.4.2 推荐
推荐主要是通过视频推荐算法是通过对视频进行推送,会结合各种大数据计算出来的用户画像与其对应的消费场进行高度融合,推送的对象可以是个人创作者也可以是业务渠道,在建设推荐算法的过程中会进行大量的AB实验(在播放数据、粉丝数据、收益数据等不同影响面进行对比)用于验证和优化算法。
5. 支撑域
5.1 用户域-创作者平台
5.1.1 等级、权益、资格认证体系
原创认证,实名认证,大V认证等都为关键的资质认证渠道,认证完成的用户在信用分,分发优先级,收益结算等都有优先处理权。
不同等级对应不同权益,定制化成长任务,等级提升会有流量、特权、金额奖励。
[图片]
5.1.2 用户留存,促活体系
开设新手指导和各种各样的活动,这些活动在激励用户进行视频投稿时会区分不同用户群体,依据不同层次的用户画像(头部、腰部、尾部)开启留存,促活,品宣等激励策略。
5.2 数据分析领域
涵盖用户数据(粉丝数据,活跃数据,各类排行榜),播放数据(播放量,点赞量,收藏量,分享量,完播率等),以用户和视频两个不同维度(单篇,多渠道对别)多方面展示数据,让用户可以清晰便捷的查看自己的相关数据的波动情况。
[图片]
5.3 收益结算领域
收益结算环节是每个创作者最关心的,所以必须要保证此步骤的透明、公正、及时(生产,反馈)、无误差以及查看分析的便捷性。
结算逻辑通常会开启定时任务自动化统计并分析流量收益、优质收益、活动收益等,保存进入预估收益明细,自动对生成预估对账单与结算单,C端和web端支持用户按指定结算周期查看、提现、审核、打款。同时必不可少的是结算相关的预警,因为涉及到金钱,结算中的所有环节都要有预警和补偿方案,从而保证结算业务的稳定性。
[图片]
6. 总结
以上就是我总结的一些短视频平台的主要建设要点,相信大家已经有了一些了解,其实总体来说短视频业务非常依赖于高效的算法,利用它们去对输入的视频进行快速过滤、定性、推荐,这样就可以更好提高短视频流通的实时性与准确性。除此之外在创作者端的各种激励策略是最重要的,如何能保持平台的吸引力,打开视频消费市场,怎么才能很好的完成用户的留存、促活,所以实际中还有很多其他的辅助平台需要搭建,例如视频剪辑平台(视频剪辑)、MCN平台(个创+机构)、审核平台(机审,人审)、运营后台等,这些平台更多的是为了短视频的生产、审核、流程化、合规化做业务支持。
相关文章:
【无标题】Test
短视频平台的那些事 前言 过去几年,我一直专注于短视频平台的建设和开发工作。在这个过程中,我发现这个领域有着非常多的挑战和机遇,也涌现出了许多新的技术和创新。今天大家分享我个人的一些经验,希望能够为大家带来一些启发和帮…...
1576. 替换所有的问号
1576. 替换所有的问号 C代码:自己写的 char * modifyString(char * s){int n strlen(s);for (int i 0; i < n; i){if (s[i] ?) {if (i ! 0 && i ! n-1) {for (int j 0; j < 26; j) {if (a j ! s[i-1] && a j ! s[i1]) {s[i] a j;br…...
MySQL学习笔记(快速入门)
Mysql快速入门 一、数据库相关概念1.启动数据库2. 客户端连接3. 数据模型4.关系型数据库RDBMS 二、SQL语言1. 通用语法2. SQL分类 三、DDL数据定义语言1. 数据库操作2. 表操作(1) 查询当前数据库所有表show tables;(2) 查询表的结…...
使用DNS查询Web服务器IP地址
浏览器并不具备访问网络的功能,其最终是通过操作系统实现的,委托操作系统访问服务器时提供的并不是浏览器里面输入的域名而是ip地址,因此第一步需要将域名转换为对应的ip地址 域名:www.baidu.com ip地址是一串数字 tcp/ip的网络结…...
docker虚拟网桥和业务网段冲突处理
ifconfig查看docker虚拟网桥ip地址 docker inspect --format{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} $(docker ps -aq)查询所有容器的ip 修改docker-compose networks networks xxx-network: driver: bridge ipam: c…...
axios登录,登出接口的简单封装步骤详解!
目录 总结一、步骤1.安装Axios:2.axios对象封装3.请求api封装4.使用pinia临时库保存响应信息(按需求用)5.最后,在组件中使用! 总结 封装axios对象,编写公共请求代码、添加拦截逻辑、然后分层实现axios请求…...
九大装修收纳空间的设计,收藏备用!福州中宅装饰,福州装修
如果房子面积不大,收纳设计就显得非常重要。其实装修房子中很多地方都可以做收纳,九大空间每一处都可以放下你的东西,让你摆脱收纳烦恼。 收纳空间少的话,装修完后住久了怕会乱成一窝,因此装修的时候,收纳…...
软件工程概论
文章目录 软件的定义软件的特点软件的种类软件工程的起源软件工程的三个阶段软件工程概念的提出软件开发的本质软件工程框架软件工程的目标软件工程的原则软件工程的活动 软件的定义 计算机系统中的程序及其文档。 程序是计算任务的处理对象和处理规则的描述; 文档…...
仅个人记录:复现dotspatialdemo、打包、
复现dotspatialdemo 原始文件 一、新建项目、工具箱设置,项目引用等看上一篇 二、根据Form1.Designer.cs设计界面Form1.cs[设计] SplitContainer控件:将容器的显示区域分成两个大小可调的、可以向其中添加控件的面板。 legend控件:图例 map控…...
华为云云耀云服务器L实例评测|Elasticsearch的springboot整合 Kibana进行全查询和模糊查询
前言 最近华为云云耀云服务器L实例上新,也搞了一台来玩,期间遇到各种问题,在解决问题的过程中学到不少和运维相关的知识。 在前几期的博客中,介绍了Elasticsearch的Docker版本的安装,Elasticsearch的可视化Kibana工具…...
C++统一初始化和初始化列表
一直对C初始化使用圆括号和花括号的区别有所疑惑,参考书籍和博客简单总结一下 文章目录 常见的初始化操作统一初始化(Uniform Initialization)初始化列表(Initializer Lists) 常见的初始化操作 对于一个基础数据类型进行初始化,比如 int: i…...
【重拾C语言】六、批量数据组织(一)数组(数组类型、声明与操作、多维数组;典例:杨辉三角、矩阵乘积、消去法)
目录 前言 六、批量数据组织——数组 6.1 成绩统计——数组类型 6.1.1 数组类型 6.1.2 数组声明与操作 6.1.3 成绩统计 6.2 统计多科成绩——多维数组 6.3 程序设计实例 6.3.1 杨辉三角形 6.3.2 矩阵乘积 6.3.3 消去法 6.4 线性表——分类与检索 前言 ChatGPT C语…...
C++算法:寻找两个正序数组的中位数
题目 寻找两个正序数组的中位数 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (mn)) 。 示例 1: 输入:nums1 [1,3], nums2 [2] 输…...
2.1 关系数据结构及形式化定义
思维导图: 2.1.1 关系 笔记: 关系数据库模型是一个简单但强大的方式来表示数据及其之间的关系。下面是这节的关键内容: - **关系模型核心概念** * 关系数据模型的核心是“关系”,它在逻辑上表现为一个二维表。 * 此表中&a…...
“揭秘淘宝店铺所有商品接口:一键获取海量热销宝贝信息!“
淘宝店铺所有商品接口可以通过shop id或店铺主链接获取到整店商品,数据包括:商品ID,图片地址,店铺标题,优惠价,价格,销量,宝贝链接等整个店铺的商品。 要使用这个接口,需…...
跟着播客学英语-Why I use vim ? part two
在上一期作者讲到了他使用 Vim 的主要原因是提高效率,不需要再去使用鼠标,今天我们继续上次未听完的内容: if you type Vi, thats going to be alias to Vim anyway by default theres, not really a good reason for you to use vi that I c…...
【网络通信三要素】TCP与UDP快速入门
网络通信三要素 1.什么是网络编程? 可以让设备中的程序,与网络上其他设备中的程序进行数据交互,从而实现网络通信的手段,java.net.*包下提供了网络编程的解决方案 2.基本的通信架构 基本的通信架构有2种形式:CS架构…...
k8s集群的简单搭建
K8S简单集群搭建 前提条件 windos11电脑,内存16g以上安装vmware虚拟机软件安装三个centos7虚拟机,分配硬盘40g,内存4g,CPU4核心网络均采用NAT模式(新建虚拟机默认的模式) centos7镜像下载:https://mirrors.tuna.tsi…...
语义分割笔记(三):通过opencv对mask图片来画分割对象的外接椭圆
文章目录 mask图像介绍步骤代码 mask图像介绍 根据 mask 图像来画分割对象的外接椭圆是一种常见的图像分割任务。Mask 图像通常是一个二值图像,其中包含了感兴趣对象的像素。通常情况下,白色像素表示对象,黑色像素表示背景。 步骤 以下是一…...
Nosql redis高可用和持久化
Nosql redis高可用和持久化 1、redis高可用2、redis持久化2.1redis持久化2.2Redis 持久化方法2.3RDB 持久化2.3.1RDB持久化工作原理2.3.2触发条件2.3.3其他自动触发机制2.3.4执行流程2.3.5启动时加载 2.4AOF 持久化2.4.1AOF持久化原理2.4.2开启AOF2.4.3执行流程2.4.4文件重写的…...
软件工程(1、2;5~7小测参考答案)
目录 软件工程第1、2章小测 需求工程第5-7章小测 软件工程第1、2章小测 一 单项选择题(12分) 1、下列关于软件开发的描述不正确的是()。(1分) 软件是独立于计算机硬件的一部分,但它又依赖于计算机硬件。 软件既是一种复杂的逻辑实体,又是一种工具。 软件的核心是程序,…...
服务器存储面临的两大难题
服务器存储面临的两大难题 服务器存储为核心的IT系统承受着业务发展带来的巨大压力: 随着业务发展,IT应用数量不断增多,当前数据中心的IT基础设施愈加复杂,服务器、存储等设备的数量不断增加。服务器与存储管理更加复杂:随着业务应用对IT基础…...
Blind Signature盲签名与fabric区块链结合的应用
盲签名的概念 首先由 David Chaum 于1982年提出,盲签名实现了签名者对发送者的消息进行签名,却不能知道签名者消息的具体内容。 相当于将文件放入信封,签名者在信封上对文件进行签名,而不知道具体的文件内容。 盲签名的实现方式…...
ueditor
下载文件 文档 UEditor入门部署 入门部署和体验 1.1 下载编辑器 到官网下载 UEditor 最新版:http://ueditor.baidu.com/website/download.html#ueditor 1.2 创建demo文件 解压下载的包,在解压后的目录创建 demo.html 文件,填入下面的…...
2023年台州市第三届网络安全技能大赛(MISC)—Black Mamba
前言:当时比赛没有做出来现在来复现一下 就当记录一下(这个思路没想到) Black Mamba: 一张图片 常规得分离,属性,LSB,盲水印等都尝试过 无果! 考点:异或解密࿰…...
这道面试题工作中经常碰到,但 99% 的程序员都答不上来
小时候都被问过一个脑筋急转弯,把大象放进冰箱有几个步骤?我们一开始都会抓耳挠腮,去想着该如何把大象塞进冰箱。最终揭晓的答案却根本不关心具体的操作方法,只是提供了 3 个步骤组成的流程,「把冰箱打开,把…...
Linux安装单机PostgreSQL15.4
1. 联网rpm安装 1.1.关闭服务 ## 关闭防火墙 systemctl stop firewalld.service systemctl disable firewalld.service ## 关闭 selinux cat /etc/selinux/config SELINUXdisabled1.2.安装yum源 yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-…...
最新 SpringCloud微服务技术栈实战教程 微服务保护 分布式事务 课后练习等
SpringCloud微服务技术栈实战教程,涵盖springcloud微服务架构Nacos配置中心分布式服务等 SpringCloud及SpringCloudAlibaba是目前最流行的微服务技术栈。但大家学习起来的感受就是组件很多,不知道该如何应用。这套《微服务实战课》从一个单体项目入手&am…...
Docker搭建MySQL8.0主从复制(一主一从)
0. 配置说明 宿主机使用的版本为19045的win10专业版,MySQL使用的是8.0,Docker容器使用Linux。 1. 安装Docker Desktop 略 修改Docker默认安装路径 安装包自己就提供了修改安装路径的功能,CMD中运行: “Docker Desktop Installe…...
40V汽车级P沟道MOSFET SQ4401EY-T1_GE3 工作原理、特性参数、封装形式—节省PCB空间,更可靠
AEC-Q101车规认证是一种基于失效机制的分立半导体应用测试认证规范。它是为了确保在汽车领域使用的分立半导体器件能够在严苛的环境条件下正常运行和长期可靠性而制定的。AEC-Q101认证包括一系列的失效机制和应力测试,以验证器件在高温、湿度、振动等恶劣条件下的可…...
怎么使用织梦做下载网站/湘潭高新区最新新闻
2019独角兽企业重金招聘Python工程师标准>>> 淘宝技术委员会是由淘宝技术部高级技术人员组成的一个组织,共分为Java分会、C/C分会、算法分会:数据分会:UED分会、测试分会、系统分会七个分会。 淘宝技术委员会的愿景是淘宝成为技术…...
做网站需要多/如何推广引流
1 输入debug命令 在win7的命令行中输入debug,就进入到虚拟8086的执行环境了。也可以输入debug 程序名字,这就是对某个程序进行调试。 2 r(register)命令 从名字可以看出是对寄存器操作的命令,此指令有两个功能&#x…...
重庆妇科医院排名前十/百度seo提高排名费用
Firefox - 附加软件 - Firebug - DOM文档结构视图 - “冻结”被AJAX不断更新的DOM视图 当页面中包含定期执行的AJAX脚本时,DOM视图将自动刷新,不便于查看,此时可以在script视图中AJAX脚本处设置断点,这样DOM视图就被“冻结”了。…...
陕西省城乡住房和建设厅网站/建网站的详细步骤
android开发前必须要先配置好环境变量,这样才能进行android应用的开发工作.下面是学习啦小编跟大家分享的是android环境变量配置,欢迎大家来阅读学习。android环境变量配置工具/原料已经配置好java环境变量adt-bundle-windows工具包(下载地址http://developer.andro…...
舟山网站建设有哪些/学it学费大概多少钱
本书介绍 如何确保你的现代网络应用是安全的?我怀疑有人认为这是一个简单的问题。问题是,尽管我们都同意这是一个难题,但我们在如何回答这个问题上往往意见不一。当我们与客户谈论这个话题时,有一个词经常出现,这个词概…...
设计学类专业性网站/苏州市网站
修改文件%ACTIVEMQ_BASE%/conf/activemq.xml,用户名密码储存在文件%ACTIVEMQ_BASE%/conf/credentials.properties中, activemq.xml详细如下: <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor licen…...