问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

使用 FFmpeg 为视频嵌入硬字幕

创作时间:
作者:
@小白创作中心

使用 FFmpeg 为视频嵌入硬字幕

引用
1
来源
1.
https://secdroid.github.io/2024/12/01/add-subtitles-for-video-with-ffmpeg/

FFmpeg是一个开源的多媒体框架,可以用来记录、转换和流式传输音视频。它支持超过200种视频格式,是处理音视频文件的强大工具。本文将介绍如何使用FFmpeg为视频添加硬字幕。

对于视频字幕,我们通常有两种选择:

  • 硬字幕:渲染在视频画面上的字幕,不可关闭
  • 软字幕:在播放器支持的情况下,可以自由开关字幕

虽然软字幕更灵活,但在某些场景下,播放器可能不支持自动加载字幕。这时,我们可以使用FFmpeg将字幕直接烧制到视频中。

基本命令

FFmpeg烧制字幕的基本命令如下:

ffmpeg -i input.mp4 -vf "subtitles=input.ass" -c:a copy output.mp4

字幕格式

字幕本身存在多种格式,常见的有srt格式。这种格式只能显示文本,不方便设置字体、字号等信息。将srt转成ass格式,就可以自由调整字体、字号、颜色等信息,实现专业字幕组的播放效果。

注意事项

在实际使用FFmpeg烧制字幕时,需要注意以下几点:

  1. 文件名带空格:需要使用双引号括起来

    ffmpeg -i "X Y Z.mp4" -vf "subtitles=X Y Z.ass" -c:a copy output.mp4
    
  2. Windows路径分隔符:在Windows下使用/而不是\作为路径分隔符,不管是相对路径还是绝对路径,字幕文件名参数都需要这样处理

    错误示例:

    ffmpeg -i "in\\X Y Z.mp4" -vf "subtitles=in\\X Y Z.ass" -c:a copy output.mp4
    

    正确示例:

    ffmpeg -i "in\\X Y Z.mp4" -vf "subtitles=in/X Y Z.ass" -c:a copy output.mp4
    

    如果使用错误的路径分隔符,FFmpeg会提示如下错误:

    [Parsed_subtitles_0 @ 000002b418a5e180] Unable to open inX Y Z.ass
    [AVFilterGraph @ 000002b4184296c0] Error initializing filters
    [vost#0:0/libx264 @ 000002b418428380] Error initializing a simple filtergraph
    Error opening output file output.mp4.
    Error opening output files: No such file or directory
    

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号