播放视频时默认显示软字幕

Posted

技术标签:

【中文标题】播放视频时默认显示软字幕【英文标题】:soft subtitles showing by default when video is played 【发布时间】:2015-05-28 08:13:46 【问题描述】:

是否可以从原始视频文件和适当的字幕文件创建包含软字幕并默认显示的视频文件(在 VLC 中打开它 - 无需激活字幕轨道) ?

我尝试了以下方法:

ffmpeg -i input.mp4 -i input.ass -c:v copy -c:a copy -c:s copy -map 0:0 -map 0:1 -map 1:0 -y out.mkv

生成的 out.mkv 确实包含字幕,但默认情况下不显示。感谢您的帮助。

【问题讨论】:

【参考方案1】:

我正在寻找的答案是here。 简而言之,它会是这样的:

mkvmerge -o out.mkv -S "input.mp4" --language "0:eng" --track-name "0:Forced" --forced-track "0:yes" --default-track "0:yes" "input.srt"

【讨论】:

【参考方案2】:

这对我有用:

将字幕转换为“ass”格式:

ffmpeg -i english.srt english.ass

然后像这样使用视频过滤器播放视频:

ffplay -vf ass="english.ass" video.mp4

这样您就不必将字幕合并到视频中。

【讨论】:

以上是关于播放视频时默认显示软字幕的主要内容,如果未能解决你的问题,请参考以下文章

HTML5 视频 + TTML 字幕不显示字幕

在JavaFX中播放带字幕的视频[重复]

VideoView 上的字幕

任何本机视频控件都支持字幕吗?

怎么把字幕放到电影里 把字幕嵌入视频

在 WPF MediaElement 中显示视频的字幕