【API进阶之路】太秃然了,老板要我一周内检测并导入一万个小时的视频
摘要:假期结束后回来上班,走进电梯都有一种特别的感觉,电梯那个植发广告里的大哥看我的眼神好像和之前不太一样…
上回说到,老板奖励7天带薪假,我就回家玩耍了几天,顺便还帮兄弟发不脱当了一回“AI大神”。(回顾:《没有AI工程师也能做OCR文字识别》)
假期结束后回来上班,走进电梯都有一种特别的感觉,电梯某植发广告里的大哥看我的眼神好像和之前不太一样…到公司开了第一个会,原来,那个眼神像是一个预示。
老板在会上说,最近视频团队谈了个合作,和另一个短视频平台进行内容共享,这样可以为我们的视频网站提供将近1万个小时的视频内容,希望研发来支持导入视频。
我心想:“这个简单呀,不就是导入视频么?写个脚本不就行了。”我给了老板一个“交给我”的眼神,老板回了我一个“看好你”的笑容。就这么着,这事儿就落到我了头上。现在想想,可能是我回北京的时候,没给脑子买票,人回来了,脑子落在老家…
会后我找短视频运营老大对需求,他给提了3个点:
- 第一:导过来的视频要全部加上我们的水印;
- 第二:要导入的视频格式和我们现在网站要求的格式不相符,所有视频都要转格式;
- 第三:要对导过来的视频内容做检测,防止有违法违纪的内容出现。
最后他还补了一句:“最好能在一周内完成,老板想要尽早上线。”
你在逗我么?一万个小时的视频,要转格式、加水印还要做内容安全检测,一周完成?我突然有点明白电梯广告那大哥的眼神是啥意思了…
批量转格式和加水印倒是好解决,但是这个安全检测...一边懊恼得直薅头发,一边习惯性逛华为云找灵感。
我们之前用过图像内容检测API,可以用来检测图片是否有违法违纪的内容,但是视频貌似用不了。如果能把视频每一帧都截图,是不是就可以检测了?继续找,果然有一个“视频截图API”!
先用视频截图API设置自动截图的任务,再用图像内容检测API来判断是否有内容风险,同时利用媒体处理MPC提供的转码模板和水印模板来解决打水印和转格式的问题。完美解决!
提交视频截图任务的方式如下:
前提条件
获取需要创建截图任务区域的项目ID(获取项目ID)。
明确需要创建截图任务所在的区域信息,并获取该区域的Endpoint(地区和终端节点获取)。
调用OBS创建桶API创建用于存储截图文件的OBS桶,再调用OBS上传对象API将待截图处理的视频文件存储在OBS桶中。
操作步骤
步骤1:获取用户token。用于MPC接口时进行认证鉴权。
在“我的凭证”页面获取username、password、domainname、projectname,调用如下接口获取Token。
POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens
Content-Type: application/json
{
"auth": {
"identity": {
"methods": [
"password"
],
"password": {
"user": {
"name": "username", //用户名。
"password": "password", //用户登录密码。
"domain": {
"name": "domainname" //用户所属的账号名称。
}
}
}
},
"scope": {
"project": {
"name": "projectname" //项目名称。
}
}
}
}
如图所示,红框中的信息为获取用户Token。

步骤2:创建截图任务
1、发送一条POST请求。
POST:https://{endpoint}/v1/{project_id}/thumbnails
2、请求消息头中增加“X-Auth-Token”,值设置为获取的用户token。
3、Request Body中传入参数如下:
{
"input": {
"bucket": "example-bucket",
"location": "region01",
"object": "/mpc/input/sample.MP4"
},
"output": {
"bucket": "example-bucket",
"location": "region01",
"object": "/mpc/output/ "},
"tar": 1,
"thumbnail_para": {
"type":"DOTS",
"dots":[2,4,6,8,10],
"format":0,
"aspect_ratio":1,
"max_length":480
}
}
4、请求响应成功后,反馈截图任务ID。
{
"task_id": "2081"
}
步骤3:查询视频截图执行情况
1、发送一条GET请求。
GET:https://{endpoint}/v1/{project_id}/thumbnails?task_id=2081
2、请求消息头中增加“X-Auth-Token”,值设置为获取的用户Token。请求响应成功后,返回视频截图的详情信息。
截图完成以后,截好的图都传入创建好的OBS桶中,再把截图做下图片内容审核就OK啦!
写完程序,自动传着视频,我下楼吃饭,在电梯里特意看了看广告牌的大哥,这下眼神正常了~
了解更多华为云API信息:免费下载创新加速利器《华为云API精选手册》。
【API进阶之路】太秃然了,老板要我一周内检测并导入一万个小时的视频的更多相关文章
- 【API进阶之路】API带来的微创新,打动投资人鼓励我创业
摘要:怎么帮助创作者提高视频的推荐量呢?我发现了:视频的封面图非常重要. 上回说到,老板一拍脑门,交代了一个新项目:小成本开发一款短视频剪辑工具([<[API进阶之路]人少钱少需求多的新项目该怎 ...
- 【API进阶之路】帮公司省下20万调研费!如何巧用情感分析API实现用户偏好调研
摘要:自从学习API后,仿佛解锁了新技能,可别小看了一个小小的API接口,用好了都是能力无穷.这不,用情感分析API来做用户偏好调研,没想到这么一个小创意给公司省了20万调研费用. 上次借着高考热点整 ...
- 【API进阶之路】高考要考口语?我用多模态评测API做了一场10w+刷屏活动
摘要:闲着没事用多模态评测API做了一个测评英语口语的互动小游戏,居然成了一场10万人参与的刷屏级活动. 上一期故事说到,我成为了公司技术委员会副主席,上任后的第一件事是建立了一个云容器化的研发资料库 ...
- 【API进阶之路6】一个技术盲点,差点让整个项目翻车
上次教了实习生一个方案之后,这小子跟运营妹子的关系是越走越近,时不时地撒把狗粮,在我司真正实现了研发运营一家亲~(上回你没看?戳上文剧情回顾:万万没想到,一个技术方案帮实习生追到了运营妹子) 这回想跟 ...
- 【API进阶之路】老板给我涨薪30%!如何通过SDK接口搞定千万级流量直播
摘要:看我如何通过API Explorer 的SDK接口搞定千万级流量直播. 最近几个月,我的变化其实还蛮大的,从一个被实习生“无视”的“前浪”,转变成了不仅能够解决技术问题还能解决业务问题(顺手还能 ...
- 【API进阶之路】无法想象!大龄码农的硬盘里有这么多宝藏
摘要:通过把所需建立的工具库做成云容器化应用,用CCE引擎,通过API网关调用云容器引擎中的容器应用.不仅顺应了云原生的发展趋势,还能随时弹性扩容,满足公司规模化发展的需求. 公司开完年中会后,大家的 ...
- 【API进阶之路】逆袭!用关键词抽取API搞定用户需求洞察
摘要: 老大说,我这份用关键词抽取API搞定的用户需求洞察报告,简直比比市场调研的科班人士做得还好. 最近这半个月的午饭,那可是相当不错,市场老大天天请吃饭,不是外面下馆子,就是从家带饺子.说是感谢我 ...
- 【API进阶之路】破圈,用一个API代替10人内容团队
摘要:我用一个API代替10人内容团队,一年帮老板省了一百万. 自从学习API以后,我用技术手段相继帮助业务部.市场部解决了不少难题,算是从纯研发破圈发展到了业务端.老板召开业务讨论会的时候也会带上我 ...
- 【API进阶之路】用API打造一条自动化内容生产流水线
摘要:搞定了内容审核之后,我又把抓取工具.内容审核API.文本摘要生成API串联在一起,从抓到审再到编,建立了一条自动化的内容生产流水线,编辑团队只需要做优质内容的推荐就可以了. 上周,运营部将官网上 ...
- 【API进阶之路】研发需求突增3倍,测试团队集体闹离职
摘要:最近研发的需求量涨了3倍,开发团队拼命赶进度,可苦了测试团队. 本以为从一线研发转管理后会清闲一些,但是没想到,我还要充当救火队员的角色. 到了第四季度,各业务部门都在憋着劲儿冲业绩,毕竟这跟年 ...
随机推荐
- 深入探讨I/O模型:Java中的阻塞和非阻塞和其他高级IO应用
引言 I/O(Input/Output)模型是计算机科学中的一个关键概念,它涉及到如何进行输入和输出操作,而这在计算机应用中是不可或缺的一部分.在不同的应用场景下,选择正确的I/O模型是至关重要的,因 ...
- 关于长链剖分的数组实现 | CF1009F Dominant Indices
请容许我不理解一下为什么这题题解几乎全都是指针实现/kk 其实长链剖分是可以直接用数组来写的. 考虑朴素 DP.设 \(f_{u,i}\) 表示以点 \(u\) 为根的子树中与点 \(u\) 距离为 ...
- PoW、PoS、DPoS和PBFT简介
1. 概览 PoW(工作量证明).PoS(权益证明).DPoS(委托权益证明)和PBFT(拜占庭容错)是区块链和分布式系统领域中常见的共识算法.下面将详细介绍这些共识算法的原理和特点: PoW(工作量 ...
- linux操作系统读写文件操作(c语言)
(一)open系统的调用 为了创建一个新的文件描述,需要使用系统调用open #include<fcntl.h> #include<sys/types.h> #include& ...
- vue3.0父级组件调用子组件方法
vue3.0父级组件调用子组件方法 场景:在页面开发过程中,我经常涉及到不同组件之间的元素和方法的调用.就此记录在vue3.0项目,也是我开发的开源项目中的实现方式. 父级组件调用子级 1.应用场景 ...
- 给STM32装点中国风——华为LiteOS移植
我都二手程序员好几个礼拜了!想给我的STM32来点"中国风",装个华为LiteOS操作系统. 在此之前,我也试过STM32CubeMX自带的FreeRTOS操作系统,不知是何缘故, ...
- FP-Growth算法全解析:理论基础与实战指导
本篇博客全面探讨了FP-Growth算法,从基础原理到实际应用和代码实现.我们深入剖析了该算法的优缺点,并通过Python示例展示了如何进行频繁项集挖掘. 关注TechLead,分享AI全维度知识.作 ...
- C#12新功能有哪些?
前言 作为.NET 8发布会的一部分,微软于11月14日发布了C#12的新功能,这也是目前.NET的最新版本.正如之前公布的那样,最显著的改进包括了集合表达式.主构造函数.任何类型的别名以及lambd ...
- 0x00.常用名词、文件下载、反弹shell
下载文章 方法一:下载谷歌插件fireshot,捕捉整个页面 方法二:使用js代码 f12进入控制台,粘贴如下代码 (function(){ $("#side").remove() ...
- 搭建一个简易的IPv6网络测试环境
背景 近期一个项目要求产品在IPv6网络环境部署,在此之前所有的项目网络环境都是IPv4,为了验证产品网络适配能力,需要搭建一套IPv6的网络测试环境,网上搜了很多教程,也在某东找了很多路由器,对于如 ...