使用ffmpeg -i test.mkv 获取视频文件的字幕流信息如下
Stream #0:4(chi): Subtitle: subrip (srt) (default)
Metadata:
title : chs
Stream #0:5(chi): Subtitle: subrip (srt)
Metadata:
title : cht
Stream #0:6(jpn): Subtitle: dvd_subtitle (dvdsub), 720x480
Metadata:
title : jap
Stream #0:7(eng): Subtitle: subrip (srt)
Metadata:
title : eng
4个字幕流数据,其中三个是subrip (srt)格式,可以使用ffmpeg -i test.mkv -map 0:s:0 output.srt命令提取字幕。
还有一个dvd_subtitle (dvdsub)格式的字幕文件,ffmpeg -i test.mkv -map 0:s:2 outputjp.sup 命令提取字幕时报错:Automatic encoder selection failed Default encoder for format sup (codec hdmv_pgs_subtitle) is probably disabled. Please choose an encoder manually.
日志报错,hdmv_pgs_subtitle编码器被禁用
使用命令ffmpeg -codecs 查看支持的编解码器信息,发现只支持D.S... hdmv_pgs_subtitle 解码是支持的,但是不支持E.S... hdmv_pgs_subtitle。
需要重新编译一版支持hdmv_pgs_subtitle编码格式的ffmpeg,
对于PGS字幕支持,你可以在配置FFmpeg时添加--enable-libmp4v2
选项(因为PGS字幕通常与MP4V2库相关联)。
重新编译FFmpeg:
./configure --enable-libmp4v2 --enable-gpl --enable-nonfree
make
sudo make install
确保所有必需的依赖库都已正确安装。对于PGS字幕,可能需要安装额外的库,如libmp4v2。
尚未尝试本地编译ffmpeg