FFmpeg添加字幕的详细操作

栏目:汽车资讯  时间:2023-07-31
手机版

  在视频中添加字幕可以使视频更具可读性,并为观众提供更好的观看体验,这在多语种内容中尤为重要。FFmpeg是一个流行的开源视频处理工具,它可以被用来给视频添加字幕。本文将介绍FFmpeg集成libass的编译流程,介绍SRT和ASS字幕格式及其参数,如何使用FFmpeg向视频添加硬字幕和软字幕,并通过示例演示如何生成单一字幕和多项字幕。

  而本文最后实现的效果为:默认中英文字幕,可选英文字幕的软字幕的实现:

  中英多通道字幕

  将字幕渲染到视频的纹理上,然后将其编码成独立于视频格式的一个完整的视频。硬字幕不能更改或删除,因为它们与视频(通道)是一个整体。

  在播放视频时实时渲染和读取。软字幕可以在播放过程中随时添加或删除。软字幕比硬字幕更加灵活,因为它们可以随时进行修改,但它们也需要高性能的播放器支持。

  软字幕单独生成一个字幕通道,与视频

  、音频一样,如以下:

  是一种简单的字幕格式,主要由时间戳和文本组成。它通常用于简单的字幕文件,如电影聚会之类。SRT字幕格式的参数如下:

  标题的计数器/索引START和END:字幕开始和字幕结束的时间戳,格式为 “小时:分钟:毫秒”。TEXT:在此时间戳范围内显示的字幕文本一行空白表示一个结束 是一个高级的字幕格式,它可以支持更多的样式和控制,比如,更改颜色、字体和大小,还可以通过几何变换来控制字幕的位置。ASS字幕格式包含以下参数:

  2.2.1. 样式: 2.2.2. 对齐: 其中an6表示右上角对齐,默认是左下角对齐。

  2.2.3. 触发器: 其中fade(400,400)表示透明度从0渐变到400再从400渐变到0。

  2.2.4. 动画: 其中move(0,0,100,100)表示从(0,0)移动到(100,100)。

  2.2.5. 特殊效果: 其中blur3表示模糊度为3。

  2.2.6. 合的ASS字幕案例: 在这个案例中,我们可以看到SCRIPT INFO中定义了脚本的一些基本信息,V4 Styles中定义了字幕样式,Events中定义了具体的字幕内容和效果。

  在字幕内容中,使用了an5表示居中上对齐,move(960,700,960,900)表示在x=960,y从700移动到900, ()表示特效,fscx表示X轴缩放,fscy表示Y轴缩放,frx表示X轴旋转,fry表示Y轴旋转,fs表示字号大小,p表示描边的点数,c表示字体颜色,3c表示描边的颜色。

  此外,在这个案例中还使用了透明度、渐变、模糊等各种效果,可以看出ASS字幕的灵活性和功能性非常强大。

  下载FFmpeg6.0源码 下载libass,解压到FFmpeg源码目录,并且重命名为 在FFmpeg根目录编写编译脚本,并且执行 编译完成后,查看版本信息:,可见启用了 可以配置环境变量,方便使用

  1. 准备字幕文件:假设有中文字幕文件为,英文字幕文件为。

  中文字幕文件: 英文字幕文件: 2. 命令

  注意:ass格式同样的操作

  1. 准备字幕文件:假设有中英文字幕文件为,英文字幕文件为。

  中文字幕文件: 英文字幕文件: 2. 命令

  3. 最后使用ffprobe查看一下生成文件的内容

  来自维护项目,https://github.com/xhunmon/VABlog:

  YUV/PCM/H264/H265/AAC/FFmpeg/Opengl. 这有丰富的音视频开发的学习资源、开发工具、优秀书籍、教程、面试题和开源项目,旨在帮助开发者和爱好者更好地学习、实践和工作。

  参考:

  https://www.bannerbear.com/blog/how-to-add-subtitles-to-a-video-file-using-ffmpeg/

上一篇:成年人应该少喝牛奶
下一篇:老年人一天睡多久最合适?医生:若保持在“这个范围”,或更健康