阿里云视频点播服务添加视频字幕的实现方案

本文涉及的产品
视频点播 VOD,流量+存储+转码
简介: 本文给出了一个为视频点播服务里的视频添加字幕的方案。

业务场景

点播服务上传的原始视频没有字幕,需要对点播视频加上视频字幕。

业务流程

  1. 上传字幕文件
  2. 添加带字幕的转码模版
  3. 使用带字幕的转码模版转码

使用步骤

  1. 上传字幕文件

字幕文件无法通过控制台上传,需要通过上传SDK的上传接口上传,并且指定subtitle参数:

from voduploadsdk.AliyunVodUtils import *
from voduploadsdk.AliyunVodUploader import AliyunVodUploader
from voduploadsdk.UploadAttachedMediaRequest import UploadAttachedMediaRequest

def testUploadLocalAttachedMedia(accessKeyId, accessKeySecret, filePath):
    try:
        uploader = AliyunVodUploader(accessKeyId, accessKeySecret)
        uploadAttachedRequest = UploadAttachedMediaRequest(filePath, 'subtitle')
        uploadAttachedRequest.setTitle('test upload local watermark file')
        media = uploader.uploadAttachedMedia(uploadAttachedRequest, True)
        print(media)
    except AliyunVodException as e:
        print(e)

localFilePath = '/Users/mac/Downloads/VodUploadSDK-Python_1.3.1/dlfiles/subtitle-02.srt'
testUploadLocalAttachedMedia(accessKeyId, accessKeySecret, localFilePath)

上传完成后会返回字幕文件的url信息:
``
{'FileURL': u'https://outin-a30b2feff15a11e8ad9400163e1a625e.oss-cn-shanghai.aliyuncs.com/subtitle/5D55590D555C40BA8DC9BF307D3AC28C-3-3.srt', 'MediaId': u'68928b9ab5744b65b7b04f0cca97f54d', 'MediaURL': u'http://vod.pier39.cn/subtitle/5D55590D555C40BA8DC9BF307D3AC28C-3-3.srt'}

2. 设置转码模版
点播控制台的转码模版目前还不支持选择字幕,所以也是通过接口来完成对带字幕转码模版的设置的:

from aliyunsdkcore import client
from aliyunsdkvod.request.v20170321 import AddTranscodeTemplateGroupRequest

clt = client.AcsClient(access_key_id, access_key_secret, region)

def AddTranscodeTemplateGroup(clt):

request = AddTranscodeTemplateGroupRequest.AddTranscodeTemplateGroupRequest()

transcodeTemplateList = []
transcodeTemplate = {}
# 设置模板名称
transcodeTemplate["TemplateName"] = "Subtitle_Transcode"
# 清晰度
transcodeTemplate["Definition"] = "LD"
# 视频流转码配置
videoConfig = {"Width": 640, "Bitrate": 400, "Fps": 25, "Remove": False, "Codec": "H.264", "Gop": "250"}
transcodeTemplate["Video"] = videoConfig
# 音频流转码配置
audioConfig = {"Codec": "AAC", "Bitrate": "64", "Channels": "2", "Samplerate": "32000"}
transcodeTemplate["Audio"] = audioConfig
# 封装容器
container = {"Format": "m3u8"}
transcodeTemplate["Container"] = container

# 添加字幕参数
subtitleList = {"SubtitleUrl":"https://outin-a30b2feff15a11e8ad9400163e1a625e.oss-cn-shanghai.aliyuncs.com/subtitle/D973C24DA668448A80E235F9D020BEFE-3-3.srt",
    "CharEncode":"UTF-8"}
transcodeTemplate["SubtitleList"] = subtitleList
request.set_TranscodeTemplateList(json.dumps(transcodeTemplateList))
request.set_Name('subtitle')

response = clt.do_action_with_exception(request)
return response

print AddTranscodeTemplateGroup(clt)

代码里subtitleList参数是设置字幕的,里面的SubtitleUrl参数填写第一步中返回的FileURL地址

3. 使用带字幕的转码模版转码
这里可以通过控制台的媒体处理选项选择上面创建的转码模版,或者通过转码接口来实现转码:

from aliyunsdkcore import client
from aliyunsdkvod.request.v20170321 import SubmitTranscodeJobsRequest

clt = client.AcsClient(access_key_id, access_key_secret, region)

def SubmitTranscodeJobs(clt):

request = SubmitTranscodeJobsRequest.SubmitTranscodeJobsRequest()
request.set_VideoId('4bee0ee927ad4bed8ca865471c6680a7')
request.set_TemplateGroupId('89a90b2cb8fdfdf9765747dd39fae31e')
response = clt.do_action_with_exception(request)
return response

print SubmitTranscodeJobs(clt)


4. 播放通过上面转码模版转码后的视频就会有字幕的效果了

![image.png](https://ucc.alicdn.com/pic/developer-ecology/a700022d7a0a4d83bb3e7a75e65d7987.png)
目录
相关文章
|
5月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的视频点播系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的视频点播系统附带文章源码部署视频讲解等
96 17
|
4月前
|
存储 前端开发 JavaScript
在视频点播系统工程中,我们关注的是构建一个能够处理视频内容、用户交互、数据存储和检索等功能的系统。
在视频点播系统工程中,我们关注的是构建一个能够处理视频内容、用户交互、数据存储和检索等功能的系统。
|
5月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的在线视频点播系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的在线视频点播系统附带文章和源代码部署视频讲解等
79 8
|
6月前
|
应用服务中间件 API 开发工具
阿里云视频点播功能
阿里云视频点播功能
72 0
|
6月前
|
NoSQL Java 微服务
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)-3
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)
201 1
|
6月前
|
前端开发 NoSQL easyexcel
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)-2
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)
162 0
|
6月前
|
NoSQL 应用服务中间件 对象存储
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)-1
前后端分离项目知识汇总(阿里云Oss,EasyExcel,视频点播,SpringCloud,Redis,Nuxt)
133 0
|
6月前
|
编解码 缓存 安全
视频点播这边在执行 HLS标准加密 转码后的视频,在解密播放上有些技术问题视频点播这边在执行 HLS标准加密 转码后的视频,在解密播放上有些技术问题
视频点播这边在执行 HLS标准加密 转码后的视频,在解密播放上有些技术问题视频点播这边在执行 HLS标准加密 转码后的视频,在解密播放上有些技术问题
200 1
|
存储 安全 机器人
如何下载阿里云视频点播数据
如何下载阿里云视频点播(VOD)数据
493 0
|
存储 编解码 安全
阿里云视频点播简介和购买流程
阿里云视频点播是阿里巴巴集团旗下的一项强大的视频云服务,为用户提供在线视频上传、存储、转码、播放等全方位的视频解决方案。作为中国最大的云计算服务提供商,阿里云视频点播在视频领域拥有丰富的技术实力和经验,为用户提供高效、可靠、安全的视频服务。

热门文章

最新文章