问题:如果我使用动态生成的.ass文件(详细说明如下)。我是否需要设置任何参数来模拟我可以使用django服务的服务器上存在的物理.ass静态文件的行为?
现在实际的问题是在上下文中使用.ass文件作为带有jwplayer的字幕文件。
简介我的问题是,如果我有一个名为captions.vtt的文件,其内容如下:
WEBVTT
00:00:03.000 --> 00:00:06.000
<v Roger Bingham>We are in New York City
00:00:13.000 --> 00:00:16.000
<v Roger Bingham>We're actually at the Lucern Hotel, just down the street
我在django中生成内容,如下所示:
#url which generated and returns captions file
urlpatterns += patterns('apps.mymodel.views',
url(r'^captions/(?P<pk>[0-9a-zA-Z]+)/$', 'captions_view',name='captions'),
)
#this view is responsible for creating .vtt files on go and returning them
def captions_view(request,pk):
"""
To Avoid multiple caption files for html5 players we use cap.vtt
as a template and then pass the text onwards.Note the cap.vtt has the approx
time for which caption should be visible,
To fix the issue with the iphone captions trying it as file download and assigning content type
"""
print('In the captions view')
myobj = Myobj.objects.get(pk=pk)
watermark_text = myobj.watermark_text
from django.template import Context
from django.template.loader import get_template
from django.http import HttpResponse
captions_context = Context(dict(text=text))
captions_body = get_template('home/cap.vtt').render(captions_context)
mimetype = "text/vtt"
response = HttpResponse(captions_body, content_type=mimetype)
response["Content-Disposition"]= "attachment; filename=capt.vtt"
#return render_to_response('home/cap.vtt',{'watermark_text':watermark_text})
return response
#template for .vtt ( name for the template is home/cap.vtt)
WEBVTT
00:00:00.000 --> 00:00:02.000
<v Roger Bingham>We are in New York City
00:00:03.000 --> 03:00:00.000
{{text}}
the output in this case would be say something like
WEBVTT
00:00:00.000 --> 00:00:02.000
<v Roger Bingham>We are in New York City
00:00:03.000 --> 03:00:00.000
woouf
如果上述问题没有任何意义,那么我面临的问题的细节是:由于IOS(iphone和ipod)迫使iphone全屏(ios设备)上没有显示字幕用户可以全屏查看视频。
对于我们的用例,我们正在动态生成字幕文件。我们服务字幕文件的方式如上所述:
如果我没有错,webvtt(即.vtt)文件是一个简单的纯文本,其中包含有关视频的几种类型的信息。因此,在我们的情况下,我们动态生成它并在我们之前讨论的情况下通过URL提供它,我们可以看到类似的here。虽然,我直接使用.vtt文件'它有效,但我不想这样做,因为我的应用程序的架构。但这不是类似于静态文件服务,我们不是已经这样做了吗?因此,记住一切,最简单的方法是以最小的可能变化来解决这个问题。我假设我可能错过了一个标题或某些可以使它工作的东西。是这样吗?
与该问题相关的更多细节可能会对该问题有所了解:
来自jwplayer支持的链接: https://support.jwplayer.com/customer/portal/articles/1407438-adding-closed-captions
来自苹果对支持字幕的支持与hls: https://developer.apple.com/library/ios/qa/qa1801/_index.html
我在此基础上做了一些实验:在深入挖掘之后,我们还为CLOSED-CAPTIONS
标记添加了EXT-X-STREAM-INF
属性,但仍然无法看到所需的结果
我们最终使用的示例主.m3u8
文件如下:
#EXTM3U
#EXT-X-MEDIA:TYPE=CLOSED-CAPTIONS,GROUP-ID="cc"
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1075000,RESOLUTION=640x360,CODECS="avc1.42001e,mp4a.40.2",CLOSED-CAPTIONS="cc"
4610_360.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1692000,RESOLUTION=854x480,CODECS="avc1.42001f,mp4a.40.2",CLOSED-CAPTIONS="cc"
4610_480.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2874000,RESOLUTION=1280x720,CODECS="avc1.42001f,mp4a.40.2",CLOSED-CAPTIONS="cc"
4610_720.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=4623000,RESOLUTION=1280x720,CODECS="avc1.420028,mp4a.40.2",CLOSED-CAPTIONS="cc"
4610_1080.m3u8
我们也尝试过:
#EXTM3U
#EXT-X-MEDIA:TYPE=CLOSED-CAPTIONS,GROUP-ID="cc",NAME="CC1",LANGUAGE="en",DEFAULT=YES,AUTOSELECT=YES,INSTREAM-ID="CC1"
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1075000,RESOLUTION=640x360,CODECS="avc1.42001e,mp4a.40.2",SUBTITLES="subs",CLOSED-CAPTIONS="cc"
4610_360.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1692000,RESOLUTION=854x480,CODECS="avc1.42001f,mp4a.40.2",SUBTITLES="subs",CLOSED-CAPTIONS="cc"
4610_480.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2874000,RESOLUTION=1280x720,CODECS="avc1.42001f,mp4a.40.2",SUBTITLES="subs",CLOSED-CAPTIONS="cc"
4610_720.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=4623000,RESOLUTION=1280x720,CODECS="avc1.420028,mp4a.40.2"SUBTITLES="subs",CLOSED-CAPTIONS="cc"
4610_1080.m3u8
我想确认我们是否正在构建用于自适应流媒体的主文件?但这并不成立,因为.mp视频面临同样的问题,不应该是这种情况,因为hls是一个问题。
虽然使用相同播放器的示例有效:
以这种方式设置您的VTT文件,使用相同的播放器:
http://qa.jwplayer.com/~heidi/cc_indee_test.html http://qa.jwplayer.com/~heidi/beautifulmind.vtt
我还附上了上述两种情况下两个请求的镜头细节。 我已经坚持了很长时间。任何对此都有所了解的人请分享。如果您可以共享代码段或某种类型的工作示例,那将会很棒。感谢
答案 0 :(得分:0)
为了让字幕与JW Player(包括在iDevices上)保持一致,您需要确保以下内容:
或者您可以考虑为JW Player添加我的iOS字幕插件以克服这些问题,尊重iOS中的JW字幕样式块并与早期的JW版本一起使用:http://dev.powered-by-haiku.co.uk/solutions/jwioscaptions/