# huaweicloud-solution-adding-subtitles-to-videos **Repository Path**: HuaweiCloudDeveloper/huaweicloud-solution-adding-subtitles-to-videos ## Basic Information - **Project Name**: huaweicloud-solution-adding-subtitles-to-videos - **Description**: 该解决方案可以帮助用户自动将字幕文件合入视频中 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master-dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-10-13 - **Last Updated**: 2025-06-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [TOC] **解决方案介绍** =============== 该解决方案基于华为云函数工作流 FunctionGraph无服务器架构,利用开源FFmpeg的添加字幕功能,以硬字幕的方式帮助用户将字幕文件合入视频中。当用户上传视频文件以及配套字幕文件到对象存储服务 OBS桶中,会自动触发函数添加字幕,并将合成后的视频文件存储到OBS中。适用于如下场景:视频教学、视频广告、视频社交媒体等需要添加字幕的场景。 解决方案实践详情页面地址:https://www.huaweicloud.com/solution/implementations/adding-subtitles-to-videos.html **架构图** --------------- ![方案架构](./document/adding-subtitles-to-videos.png) **架构描述** --------------- 该解决方案会部署如下资源: 1. 在函数工作流 FunctionGraph中创建一个添加字幕的函数和OBS触发器,实现将用户上传到OBS桶中的字幕文件及视频文件进行合成,并将带有字幕的视频转储到OBS桶。 2. 创建两个对象存储服务 OBS桶,一个用于用户上字幕文件及视频文件,另一个用于转储添加字幕后的视频文件。 3. 通过统一身份认证服务 IAM的委托功能,用于授权函数工作流 FunctionGraph访问OBS桶下载和上传文件。 **组织结构** --------------- ``` lua huaweicloud-solution-adding-subtitles-to-videos ├── adding-subtitles-to-videos.tf.json -- 资源编排模板 ├── functiongraph ├── adding_subtitles_to_videos.py -- 函数文件 ``` **开始使用** --------------- - 须保证视频文件和字幕文件同名且同名文件有且只能为两个(文件名只能包含字母、数字、_(下划线)及-(中划线)),视频大小限制在100M及以内。 - 该解决方案经验证过的字幕文件有:srt、ass、ssa、vtt四种字幕文件格式,编码格式有:ASCII、UTF-8、UTF-16BE、UTF-16LE。 - 该解决方案经验证过的视频文件有:mp4、avi、mov、flv、wmv、mkv、mpg、mpeg、m4v、3gp、webm、asf、ogg,其中3gp类型视频支持的音频采样率为8000HZ。 1、选择该解决方案创建的带有“-source”后缀的桶 adding-subtitles-to-videos-demo-source(实际桶名称以部署指定参数为准),同时上传同名字幕文件及视频文件。 图1 上传视频文件、字幕文件 ![上传视频文件、字幕文件](./document/readme-image-001.png) 2、根据文件大小等待时间不同,选择该解决方案创建的带有“-result”后缀的桶 如adding-subtitles-to-videos-demo-result(实际桶名称以部署指定参数为准),在存储结果的OBS桶中查看添加字幕的视频文件(文件名在原名基础上增加“_copy”,所在目录同源文件目录)。 图2 查看合成后的视频文件 ![查看合成后的视频文件](./document/readme-image-002.png)