使用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