【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倍,开发团队拼命赶进度,可苦了测试团队. 本以为从一线研发转管理后会清闲一些,但是没想到,我还要充当救火队员的角色. 到了第四季度,各业务部门都在憋着劲儿冲业绩,毕竟这跟年 ...
随机推荐
- PHP-FFMpeg 操作音视频
目录 安装PHP-FFMpeg 视频中提取一张图片 视频中提取多张图片 调整视频大小 视频添加水印 生成音频波形 音频转换 给音频添加元数据 拼接多个音视频 截取音视频 提取 gif 动图 裁剪视频 ...
- tunm二进制协议在python上的实现
tunm二进制协议在python上的实现 tunm是一种对标JSON的二进制协议, 支持JSON的所有类型的动态组合 支持的数据类型 基本支持的类型 "u8", "i8& ...
- 【KMP】border 题解
题目描述 输入 输出 样例输入 abaabaa 样例输出 17 样例解释: f[2][a] = 1 f[3][a] = 1 f[4][a] = 1 f[4][b] = 2 f[5][a] = 1 f[ ...
- AGC 补题笔记
[AGC001] A.BBQ Easy 由于最大数肯定要和一个比自己小的数搭配保留该数,不如选择保留次大数,如此递归即解.因此将序列排序后输出序号为奇数的数即可. B.Mysterious Light ...
- markdown语法基本使用
markdown 语法基本使用 目录 markdown 语法基本使用 各级标题 字体 引用 分隔线 图片 列表 表格 代码 超链接 各级标题 井号加上空格,几级标题用几个井号加上空格 字体 单星号引起 ...
- STL unordered类容器浅谈
一个代码: #include<cstdio> #include<vector> #include<functional> #include<algorithm ...
- Mockito - java单元测试
原文地址 一.简介 Mockito是mocking框架,它让你用简洁的API做测试,简单易学,可读性强并且验证语法简洁. 官网: http://mockito.org 项目源码:https://git ...
- 使用 LCM LoRA 4 步完成 SDXL 推理
LCM 模型 通过将原始模型蒸馏为另一个需要更少步数 (4 到 8 步,而不是原来的 25 到 50 步) 的版本以减少用 Stable Diffusion (或 SDXL) 生成图像所需的步数.蒸馏 ...
- OpenAI宫斗反转反转再反转,到底是资本任性还是人性扭曲?
最近OpenAI发生了一件大事,创始人山姆·奥特曼被董事会开除了,这在AI界引起了轩然大波. 事件经过 我们先来捋一下事件经过,时间以美国旧金山当地时间为准. 11月17日 11月17日12点(北京时 ...
- python函数str()避免类型错误
python中当输出需要拼接字符串(char)和整数(int)时,需要用到str()函数 如果编写如下代码: age = 23 print("Happy " + age +&quo ...