我使用videojs播放Dropbox上托管的视频,但是用户报告说它不能在iPhone(iOS)上运行,对于某些用户来说,视频无法在浏览器中播放一半时代。
1) 任何人都知道Dropbox是否有任何带宽/连接限制?我打算让前10位用户观看每个链接,这样就不会成为问题。
2) 任何人都知道我是否应该在Dropbox的嵌入内容链接末尾使用raw = 1或dl = 1?
3) 我的谷歌搜索指出了问题可能是Dropbox没有发送字节范围的问题,据说这对iOS / Safari甚至是Chrome都是必要的。在下面的例子中,有没有办法找出是否是这种情况?我不知道在哪里寻找标题。另一位负责人告诉我"确保您的应用可以遵循重定向"。这与字节范围问题是一样的,或者我如何确定?
注意:我尝试设置一个代码段,但无法让它与外部库一起使用。有人可以帮助我吗?
4) 如果出现以上任何一种情况,是否有办法在Dropbox端改变某些东西,或使用PHP或任何其他技术来获取链接并以不同方式呈现它?
谢谢!
var myPlayer = videojs('my-video');

<head>
<link href="http://vjs.zencdn.net/6.6.3/video-js.css" rel="stylesheet">
<!-- If you'd like to support IE8 -->
<script src="http://vjs.zencdn.net/ie8/1.1.2/videojs-ie8.min.js"></script>
</head>
<body>
<video id="my-video" class="video-js" controls preload="auto" width="854" height="480" poster="https://www.dropbox.com/s/3q2u7p0cep2c98x/bunny.jpg?raw=1" data-setup="{}">
<source src="https://www.dropbox.com/s/yo9nbii33pfwmtt/big_buck_bunny_480p_h264.mov?raw=1" type="video/mp4" />
<p class="vjs-no-js">
To view this video please enable JavaScript, and consider upgrading to a web browser that
<a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a>
</p>
</video>
<script src="http://vjs.zencdn.net/6.6.3/video.js"></script>
</body>
&#13;
答案 0 :(得分:0)
Dropbox确实有共享链接的带宽限制。如果共享链接不起作用,那可能是一个原因。您应该检查错误代码。错误代码429表示链接被禁止用于过多流量。这些限制记录在这里:
https://www.dropbox.com/help/security/banned-links#traffic
如果当前未禁止链接,则可以使用它来访问文件内容。默认情况下,共享链接指向预览页面,因此您需要修改它们。使用网址参数dl=1
或raw=1
是正确的方法。在这种情况下,raw=1
更有意义。 E.g:
https://www.dropbox.com/s/yo9nbii33pfwmtt/big_buck_bunny_480p_h264.mov?raw=1
这些记录在这里:
https://www.dropbox.com/help/desktop-web/force-download
这些修改过的共享链接虽然会返回重定向,但客户端必须遵循它们。结果链接确实支持字节范围。以下是curl的详细输出示例,显示并跟随重定向并且字节范围检索请求正常工作:(某些不相关的输出已编辑)
$ curl -v -L "https://www.dropbox.com/s/yo9nbii33pfwmtt/big_buck_bunny_480p_h264.mov?raw=1" -H "Range:bytes=0-10"
> GET /s/yo9nbii33pfwmtt/big_buck_bunny_480p_h264.mov?raw=1 HTTP/1.1
> User-Agent: curl/7.33.0
> Host: www.dropbox.com
> Accept: */*
> Range:bytes=0-10
>
< HTTP/1.1 302 Found
* Server nginx is not blacklisted
< Server: nginx
< Date: Fri, 16 Feb 2018 18:59:47 GMT
< Content-Type: text/html; charset=utf-8
< Content-Length: 0
< Connection: keep-alive
< Cache-Control: no-cache
< Content-Security-Policy: sandbox
< Location: https://dl.dropboxusercontent.com/content_link/NShAQ0eUYa8BqhfP8UBRQqrucOsW2CF5PxKzXbYSx4eWxRvzBYh4E9U4Y0EVDSFc/file
< Pragma: no-cache
< Referrer-Policy: origin-when-cross-origin
< X-Content-Type-Options: nosniff
< X-Dropbox-Request-Id: 074229cb353345723b385c8068325b6b
< X-Frame-Options: DENY
< X-Robots-Tag: noindex, nofollow, noimageindex
< X-Xss-Protection: 1; mode=block
< Strict-Transport-Security: max-age=15552000; includeSubDomains
<
* Connection #0 to host www.dropbox.com left intact
* Issue another request to this URL: 'https://dl.dropboxusercontent.com/content_link/NShAQ0eUYa8BqhfP8UBRQqrucOsW2CF5PxKzXbYSx4eWxRvzBYh4E9U4Y0EVDSFc/file'
> GET /content_link/NShAQ0eUYa8BqhfP8UBRQqrucOsW2CF5PxKzXbYSx4eWxRvzBYh4E9U4Y0EVDSFc/file HTTP/1.1
> User-Agent: curl/7.33.0
> Host: dl.dropboxusercontent.com
> Accept: */*
> Range:bytes=0-10
>
< HTTP/1.1 206 PARTIAL CONTENT
* Server nginx is not blacklisted
< Server: nginx
< Date: Fri, 16 Feb 2018 18:59:48 GMT
< Content-Type: video/quicktime
< Content-Length: 11
< Connection: keep-alive
< referrer-policy: no-referrer
< x-robots-tag: noindex, nofollow, noimageindex
< content-disposition: inline; filename="big_buck_bunny_480p_h264.mov"; filename*=UTF-8''big_buck_bunny_480p_h264.mov
< accept-ranges: bytes
< content-security-policy: referrer no-referrer
< content-range: bytes 0-10/249229883
< etag: 376876n
< x-dropbox-request-id: b44ad771d2c348375d715a4717681983
< pragma: public
< cache-control: max-age=60
< x-content-security-policy: referrer no-referrer
< x-webkit-csp: referrer no-referrer
< Strict-Transport-Security: max-age=15552000; includeSubDomains
<
* Connection #1 to host dl.dropboxusercontent.com left intact
ftypqt
也就是说,如果客户端不支持此功能(例如,使用重定向),则技术上可以通过dl.dropboxusercontent.com直接修改链接以进行访问,例如:
https://dl.dropboxusercontent.com/s/yo9nbii33pfwmtt/big_buck_bunny_480p_h264.mov
虽然没有正式支持/记录。
答案 1 :(得分:0)
所以,我自己键入了自己的html5视频网页,下载了你的MOV文件,然后把它放到我的Google-Cloud-Platform上,这很好(在Win-10上的Chrome中)。那么,我只更改了&#39; src = ...&#39; source-tag上的属性指向Dropbox上的文件。我运行了两个测试用例,一个用尾随&#34;&amp; raw = 1&#34;一个没有。两者都失败了...在调试控制台中,我得到一个媒体&#34;错误4&#39; ...具体来说:MEDIA_ERR_SRC_NOT_SUPPORTED)无法加载媒体,因为服务器或网络出现故障或因为格式是不支持。&#34;
(嗯......我不知道该说些什么,但是对于它的价值,我也使用video.js,就像我现在做了大约一年一样。)但这让我想建议你考虑给谷歌云平台一个旋转,如果你不想结婚想要使用Dropbox。
编辑/更新:正如我在下面的最新评论中所述,一旦我重新测试,使用 的备用URL https://dl.dropboxusercontent.com/s/yo9nbii33pfwmtt/big_buck_bunny_480p_h264.mov 我的代码现在正常工作......没有媒体错误。对于任何早先的困扰,我们深表歉意。