【API进阶之路】太秃然了,老板要我一周内检测并导入一万个小时的视频

584 阅读4分钟

**摘要:**假期结束后回来上班,走进电梯都有一种特别的感觉,电梯那个植发广告里的大哥看我的眼神好像和之前不太一样…

上回说到,老板奖励7天带薪假,我就回家玩耍了几天,顺便还帮兄弟发不脱当了一回“AI大神”。(回顾:《没有AI工程师也能做OCR文字识别》

假期结束后回来上班,走进电梯都有一种特别的感觉,电梯某植发广告里的大哥看我的眼神好像和之前不太一样…到公司开了第一个会,原来,那个眼神像是一个预示。

老板在会上说,最近视频团队谈了个合作,和另一个短视频平台进行内容共享,这样可以为我们的视频网站提供将近1万个小时的视频内容,希望研发来支持导入视频。

我心想:“这个简单呀,不就是导入视频么?写个脚本不就行了。”我给了老板一个“交给我”的眼神,老板回了我一个“看好你”的笑容。就这么着,这事儿就落到我了头上。现在想想,可能是我回北京的时候,没给脑子买票,人回来了,脑子落在老家…

会后我找短视频运营老大对需求,他给提了3个点:

  • 第一:导过来的视频要全部加上我们的水印;
  • 第二:要导入的视频格式和我们现在网站要求的格式不相符,所有视频都要转格式;
  • 第三:要对导过来的视频内容做检测,防止有违法违纪的内容出现。

最后他还补了一句:“最好能在一周内完成,老板想要尽早上线。”

你在逗我么?一万个小时的视频,要转格式、加水印还要做内容安全检测,一周完成?我突然有点明白电梯广告那大哥的眼神是啥意思了…

批量转格式和加水印倒是好解决,但是这个安全检测...一边懊恼得直薅头发,一边习惯性逛华为云找灵感。

我们之前用过**图像内容检测API**,可以用来检测图片是否有违法违纪的内容,但是视频貌似用不了。如果能把视频每一帧都截图,是不是就可以检测了?继续找,果然有一个“视频截图API”!

**先用视频截图API设置自动截图的任务,再用图像内容检测API来判断是否有内容风险,同时利用媒体处理MPC提供的转码模板和水印模板来解决打水印和转格式的问题。**完美解决!

提交视频截图任务的方式如下:

前提条件

操作步骤

**步骤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精选手册》。

点击关注,第一时间了解华为云新鲜技术~