Safari中的Html5视频-Django

3
我正在尝试实现一个跨浏览器的视频。我已经使用所需的编解码器对视频进行了编码等操作。在通过Django服务器运行时,Chrome和Firefox都显示各自的视频(Chrome显示.mp4,Firefox显示.ogv)。然而,Safari无法显示视频。我知道这不是编码问题,因为当我只打开原始HTML文件并手动将相同的视频移动到正确的目录中时,视频正常加载。它也不是引用错误,因为在运行Django开发服务器时,mp4文件在Chrome中播放得很好。
我不确定能给出什么代码,因为没有任何错误被抛出,即使在终端中,视频请求也是绿色的HTTP 200,但它只是不显示。是否有已知的部署django视频的错误?我尝试硬编码URL,将视频放入静态文件夹而不是媒体文件夹,但都不起作用。
版本:所有内容的最新版本。
编辑:我安装了QuickTime,这似乎也是问题的原因。
如果我右键单击空白的视频面板并单击下载视频,则会下载可播放的mp4视频。
如果我从Safari视频中复制视频路径并粘贴到Chrome中,则mp4视频在Chrome中可以正常播放。当原始HTML链接到视频时,在Safari中仍然可以正常播放。
我通过管理员将视频添加到我的Django上传媒体文件夹中,这可能是原因吗?(不确定为什么,因为只有Safari无法工作)
玩了一会儿之后,我得到了这个错误: OSError:[Errno 41]套接字的协议类型错误 [27/Mar/2016 05:04:01]“GET /media/media/uploads/SampleVideo25.mp4 HTTP/1.1”500 59 另一个编辑:
看到许多人说这只是django开发服务器,我将我的网站部署到了Heroku。同样的事情发生了。它在Chrome和Firefox中工作,但在Safari中不起作用,并且在检查日志时,它只是说它以Http 200状态检索了视频。我唯一可以尝试的其他选项是通过AWS3提供视频。
2个回答

0

出于某种原因,当从AWS3调用时,视频可以正常显示。


0

这是开发服务器的常见问题。有关Django项目的这个问题有相当多的问题,但我认为以下最好地描述了为什么它没有得到解决:

如果我们为某些甚至未受到我认为是相当普遍的Web服务器支持的内容添加runserver支持,那似乎只会鼓励更多人在生产中使用runserver。

相关问题 #22479 但如上所述,您可以找到许多类似的问题与您的问题相关或可能相关。

您可以尝试在开发过程中从外部URL提供视频,这应该是一种解决方法。至少这是我过去做过的事情。


谢谢你的建议和链接,你知道或者有关于为什么这只在Safari中发生的任何参考资料吗?因为视频在开发服务器上对其他浏览器都能正常服务。 - Kyle
欢迎。我知道这不多,这就是我在这个问题上得到的所有信息。我没有发现更多的东西。可能是所提供的文件类型或浏览器请求或头部信息有所不同。 - Wtower

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接