【FFmpeg 教程】给视频加字幕

视频文件中除了音频、视频有时还会有字幕,本章讲解 ffmpeg 添加字幕。

在视频播放器上添加字幕,有两种常见的做法:
一种是在视频中硬编码(即直接将字幕嵌入视频画面中),
另一种是软编码(即将字幕作为独立文件加载到播放器中)。

1. 硬编码字幕到视频中

硬编码字幕是将字幕直接嵌入到视频帧中,视频播放时字幕将无法关闭。使用 ffmpeg 可以很容易地做到这一点。

使用 ffmpeg 在视频上硬编码字幕

首先,确保你有一个字幕文件,常见的字幕文件格式是 .srt(SubRip Subtitle)格式。以下是一个 ffmpeg 命令的示例,演示如何将 .srt 字幕文件硬编码到视频中。

命令行:

ffmpeg -i input_video.mp4 -i subtitle.srt -c:v libx264 -c:a mov_text -preset  fast output_video.mp4

参数解释:

  • -i input_video.mp4:输入的视频文件。
  • -i subtitle.srt:输入的字幕文件。
  • -c:v libx264:使用 libx264 编码器对视频进行解码。
  • -c:a copy:将音频流直接复制,不进行编码。
  • -c:s mov_text:使用 mov_text 编解码器将字幕格式设置为支持视频容器的字幕格式(适用于.mp4 格式)。
  • -preset fast:设置编码的速度与压缩的平衡,fast 是一种比较快速的选择。
  • output_video.mp4:输出的视频文件,字幕已嵌入。

2. 软编码字幕(字幕与视频文件分开)

软编码字幕意味着字幕和视频是分开存储的,播放时可以选择显示或隐藏字幕。你可以将字幕和视频封装到一个容器中(如.mp4),这使得字幕在视频播放时动态加载。

使用 ffmpeg 将字幕作为软字幕封装到视频中

ffmpeg -i input_video.mp4 -i subtitle.srt -c:v copy -c:s mov_text output_video_with_subtitles.mp4

参数解释:

  • -i input_video.mp4:输入的视频文件。
  • -i subtitle.srt:输入的字幕文件。
  • -c:v copy:直接复制视频流,不进行编码。
  • -c:a copy:直接复制音频流,不进行编码。
  • -c:s mov_text:将字幕文件格式转换为适用于 .mp4 的字幕格式。
  • output_video_with_subtitles.mp4:输出的视频文件,包含软字幕。

3. 使用 Python 进行字幕添加

如果你希望通过 Python 编程来添加字幕,可以使用 ffmpeg-python 库来实现。下面是如何在 Python 中硬编码字幕到视频的代码示例。

使用 ffmpeg-python

扫描二维码关注公众号,回复: 17618640 查看本文章

猜你喜欢

转载自blog.csdn.net/u013090854/article/details/144558947
今日推荐