首先,我测试的所有在线html5视频示例都可以播放webvtt字幕。
我有一个媒体服务器:127.0.0.1:20001,媒体路径为,http://127.0.0.1:20001/文件/abc.mp4
webvtt路径为:http://127.0.0.1/20001/file/abc.vtt
My Testing html就像,
<video controls width="480" height="270" crossorigin="anonymous">
<source src='http://127.0.0.1:20001/file/132416.mp4' />
<track label="English" kind="subtitles" srclang="en" src='http://127.0.0.1:20001/file/132416.vtt' />
This video format is not supported.
</video>
我的firefox请求了vtt文件和视频。在控制台日志中,它类似于
Request URL: http://127.0.0.1:20001/file/132416.vtt
Request Method: GET
Status Code: HTTP/1.0 200 OK
Request Headers 06:41:56.000
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0
Host: 127.0.0.1:20001
Connection: keep-alive
Cache-Control: max-age=0
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Response Headers Δ0ms
Content-Type: text/vtt
Content-Range: bytes 0-120/121
Content-Length: 121
Access-Control-Allow-Origin: *
Response Body Δ0ms
WEBVTT 1 00:00:00.000 --> 00:00:00.903 abc 2 00:00:00.903 --> 00:00:05.553 def
注意,上面的响应体没有换行符(文件有,可能是firefox控制台显示忽略了换行符)。
我的Chrome在Linux下可以正常播放视频和字幕
firefox只播放没有字幕的视频。控制台没有显示任何警告或错误。
我可以知道我该怎么做才能知道为什么我的火狐浏览器不显示任何东西吗?任何提示或程序来检查任何调试日志等都是非常有用的。
谢谢。
我也是一样。对我来说有效的是使用default
属性和从track元素中删除尾斜杠的组合(注意Mozilla在他们的WebVTT博客中省略了它):
<video controls width="480" height="270" crossorigin="anonymous">
<source src='http://127.0.0.1:20001/file/132416.mp4' />
<track label="English" kind="subtitles" srclang="en" src='http://127.0.0.1:20001/file/132416.vtt' default>
This video format is not supported.
</video>