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

简介: 本文给出了一个为视频点播服务里的视频添加字幕的方案。

业务场景

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

业务流程

  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'}

  1. 设置转码模版
    点播控制台的转码模版目前还不支持选择字幕,所以也是通过接口来完成对带字幕转码模版的设置的:
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地址

  1. 使用带字幕的转码模版转码
    这里可以通过控制台的媒体处理选项选择上面创建的转码模版,或者通过转码接口来实现转码:
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)
  1. 播放通过上面转码模版转码后的视频就会有字幕的效果了

image.png

目录
相关文章
|
6月前
|
存储 安全 机器人
如何下载阿里云视频点播数据
如何下载阿里云视频点播(VOD)数据
249 0
|
15天前
|
应用服务中间件 API 开发工具
阿里云视频点播功能
阿里云视频点播功能
14 0
|
4月前
|
JSON 关系型数据库 MySQL
【项目】视频点播系统1
【项目】视频点播系统
61 0
|
4月前
|
JSON 前端开发 数据库
【项目】视频点播系统2
【项目】视频点播系统
72 0
|
编解码 C#
C# 阿里云视频点播--视频转码
C# 阿里云视频点播--视频转码
428 0
C# 阿里云视频点播--视频转码
|
开发工具 开发者 微服务
技术点-阿里云视频点播(上传视频) | 学习笔记
快速学习技术点-阿里云视频点播(上传视频)
276 0
|
JSON Java API
技术点-阿里云视频点播文档 | 学习笔记
快速学习技术点-阿里云视频点播文档
236 0
|
CDN
点播试看功能最佳实践
## 简介 试看指用户在观看视频或者音频等内容时,只能观看指定时间(如前五分钟)的内容,通常用于会员等付费业务场景。 阿里云视频点播服务提供了试看的完整解决方案,您可自由设置试看时长(或观看完整视频),播放服务会根据设置提供含有试看限制的特定的播放地址,可借此来实现完整的试看功能。 ## 使用前提 试看的基本原理是,播放的CDN加速地址带有试看的指定时长信息,云端会对该信息进行鉴权,鉴
2845 0
|
存储 编解码 人工智能
产品百科 |直播转点播最佳实践
直播转点播(直转点)是将直播流同步录制为点播视频,并支持媒资管理、媒体处理(转码及内容审核 / 智能首图等 AI 处理)、内容制作(云剪辑)、CDN 分发加速等一系列操作,可配置工作流自动处理,也可通过 API/SDK 灵活触发。
产品百科 |直播转点播最佳实践
|
存储 人工智能 API
产品百科 |如何在视频点播服务中设置视频封面
为了让视频可以更加美观地展示,每一个在点播上传的视频都设置了封面图片,点播提供了多种设置和修改视频封面的方法。视频上传完成后,点播会默认进行视频截图,如果上传时指定了封面则会使用指定的图片作为封面,如果不指定封面,则会将一张视频的截图作为封面,视频上传完成之后也可以对封面进行更新。
产品百科 |如何在视频点播服务中设置视频封面

热门文章

最新文章