使用 FFmpeg 转换视频时添加外部字幕

使用 FFmpeg 转换视频时添加外部字幕

使用 FFmpeg 转换视频时是否可以使用外部文件中的字幕?字幕的文件扩展名为 .stl 或 .vob。

答案1

转换字幕

ffmpeg -i input1.mp4 -i input2.srt -c copy -map 0 -map 1 output.mkv

这将从 srt 中获取字幕,并从 MP4 中获取每个流。它应该适用于大多数字幕格式。此特定命令行将复制所有视频、音频和字幕流。

ffmpeg还可以自动选择匹配的字幕格式进行输出,例如,它将.srt使用以下命令将字幕转换为 ASS:

ffmpeg -i input1.mp4 -i input2.srt -c:a copy -c:v copy -map 0 -map 1 

输出.mkv

硬编码字幕

FFmpeg 还可以使用以下方式将字幕硬编码到视频中:subtitles筛选

ffmpeg -i input1.mp4 -c:v libx264 -vf "subtitles=input2.srt" -c:a copy output.mkv

请注意,这里需要重新转换视频。

支持的字幕格式

自 2017 年起,它将解码/编码(D/E)以下字幕格式:

 D E   ass                  ASS (Advanced SSA) subtitle (decoders: ssa ass ) (encoders: ssa ass )
 D E   dvb_subtitle         DVB subtitles (decoders: dvbsub ) (encoders: dvbsub )
 D E   dvd_subtitle         DVD subtitles (decoders: dvdsub ) (encoders: dvdsub )
 D     eia_608              EIA-608 closed captions (decoders: cc_dec )
 D     hdmv_pgs_subtitle    HDMV Presentation Graphic Stream subtitles (decoders: pgssub )
 D     jacosub              JACOsub subtitle
 D     microdvd             MicroDVD subtitle
 D E   mov_text             MOV text
 D     mpl2                 MPL2 subtitle
 D     pjs                  PJS (Phoenix Japanimation Society) subtitle
 D     realtext             RealText subtitle
 D     sami                 SAMI subtitle
 D     stl                  Spruce subtitle format
 D E   subrip               SubRip subtitle (decoders: srt subrip ) (encoders: srt subrip )
 D     subviewer            SubViewer subtitle
 D     subviewer1           SubViewer v1 subtitle
 D E   text                 raw UTF-8 text
 D     vplayer              VPlayer subtitle
 D E   webvtt               WebVTT subtitle
 D E   xsub                 XSUB

相关内容