我正在尝试创建一个html5网页,其中有一个像13s的小视频,我将此视频的flash版本转换为3格式:.ogv使用fireFogg,.webm使用firefogg也和.mp4使用HandBrake应用程序html脚本我在我的页面中使用过:
<video width="800" height="640" loop preload="false" autoplay controls tabindex="0">
<source src="xmasvideo/video.mp4" type="video/mp4" />
<source src="xmasvideo/M&P-Xmas 2.ogv" type="video/ogv" />
<source type="video/webm" src="xmasvideo/M&P-Xmas.webm" />
</video>
该视频在Chrome和FireFox中运行良好,但在桌面上的Safari和iPhone或iPad上都无法正常工作,输出只是一个空白页面,显示视频标签的控件但没有加载任何内容
请注意,我支持的Safari版本支持HTML5视频
16 回答
您未来搜索者的另一种可能的解决方案:(如果您的问题不是mimetype问题 . )
由于某些原因,除非我设置controls =“true”标志,否则视频无法在iPad上播放 .
示例:这适用于iPhone,但不适用于iPad .
现在这适用于iPad和iPhone:
您的Web服务器可能不支持HTTP字节范围请求 . 这是我正在使用的Web服务器的情况,结果是视频小部件加载并出现播放按钮,但单击该按钮无效 . - 该视频适用于FF和Chrome,但不适用于iPhone或iPad .
阅读更多here on mobiforge.com关于字节范围请求,在附录A:Apple iPhone流媒体中:
您可能想在网上搜索“iphone mp4 byte-range” .
我和iPhone和iPad这样的苹果设备有同样的问题,我关闭了低功耗模式并且它工作正常,你还应该在视频标签中包含
playsinline
属性,如下所示:只有在包含
playsinline
时才有效 .如果您的视频受基于会话的登录系统的保护,Safari将无法加载它们 . 这是因为Safari对视频进行了初始请求,然后将任务交给QuickTime,后者发出另一个请求 . 由于Safari保存会话信息,因此它将通过身份验证,但QuickTime不会 .
如果您查看服务器访问日志,则可以看到此信息...首先是来自Safari的请求,然后是来自QuickTime的请求 . 其他浏览器只是从浏览器本身发出一个请求 .
如果这是您的问题,您可能需要重新编写视频访问权限以使用临时令牌或从原始请求进行有限时间访问 . 如果我找到更直接的解决方案,我会更新这个答案 .
对于将来的搜索,我有一个mp4文件,我用Handbrake使用
handbrake-gtk
从apt-get
缩小尺寸,例如sudo apt-get install handbrake-gtk
. 在Ubuntu 14.04中,handbrake
存储库不包含对MP4的支持 . 我离开了默认设置,剥离了音轨,并生成了一个* .M4V文件 . 对于那些想知道,他们是相同的容器,但M4V主要用于iOS在iTunes中打开 .This worked in all browsers except Safari:
我在
video/mp4
和_2513169之间更改了mime类型,没有任何效果 . 我还测试了添加control
属性,再次没有效果 .This worked in all browsers tested including Safari 7 on Mavericks and Safari 8 on Yosemite. I simply renamed the same m4v file (the actual file, not just the HTML) to mp4 and reuploaded to our CDN:
Safari我认为完全期待一个实际命名的MP4 . 没有其他文件和mime类型的组合为我工作 . 我认为其他浏览器首先选择WEBM文件,特别是Chrome,尽管我很确定源列表应该选择技术上支持的第一个源 .
但是,这并没有修复iOS设备中的视频问题(iPad 3“新iPad”和iPhone 6测试过) .
我发现尽管Safari确实支持HTML5视频,但必须安装Quicktime Player以使其正常工作 . 在我构建的使用HTML5视频的网站上,用户在使用Safari时会收到警报,告诉他们必须安装Quicktime,否则他们只能看到视频脚本 . 希望这可以帮助 .
我已经看到了一个非可信的“开发”SSL证书的奇怪问题,即移动Safari很乐意为您的页面提供服务,但即使您已经接受了证书,也拒绝将视频提供给“假的”SSL证书 .
要测试你可以在其他地方部署视频 - 或切换到http(整个页面),它应该播放 .
只需添加
muted
属性即可会很好的 .这个答案的来源是:https://webkit.org/blog/6784/new-video-policies-for-ios/
如果您不介意将视频静音,添加'playinline'对Iphone和Ipa有效 .
如果您不希望自己的视频被静音,但仍想要自动播放,可能会尝试使用js删除静音属性:How to unmute html5 video with a muted prop
从iOS 6.1开始,不再可以在iPad上自动播放视频 . 根据Apple文档,Autoplay功能在包括iPad在内的所有ios设备上都不适用于Safari:
"Apple has made the decision to disable the automatic playing of video on iOS devices, through both script and attribute implementations.
In Safari, on iOS (for all devices, including iPad), where the user may be on a cellular network and be charged per data unit, preload and auto-play are disabled. No data is loaded until the user initiates it. “
您可以在this Apple documentation阅读更多内容
对于.mp4这适用(Safari移动和桌面):
上面提到的
controls=”true”
对我来说没有任何意义,因为Apple说它只是自己使用控件 .Reference : “要使用HTML5音频或视频,首先要创建一个或元素,指定媒体的源URL,并包括controls属性 .
<video src="http://example.com/path/mymovie.mp4" controls></video>
“资料来源:https://developer.apple.com/library/content/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Introduction/Introduction.html
在我的交易中 ( a small digression ) :我发现从iPhone上传视频会将其作为.quicktime发送到服务器 . 具有讽刺意味的是,这是尝试在safari上从服务器播放视频时的问题 . (手机和桌面) .
所以 if ( like me ) you are experiencing a .quicktime ( or anything other than .mp4 ) problem in safari ,这是Apple提供的解决方法 . 请注意,我一点也不高兴,只是提供更多信息 .
Reference : “回归QuickTime插件有一种简单的方法可以回退到适用于几乎所有浏览器的QuickTime插件 - 从HTML视频示例下载Apple提供的预编译的JavaScript文件,ac_quicktime.js并包括通过在HTML头中插入以下代码行在您的网页中:
<script src="ac_quicktime.js" type="text/javascript"></script>
“资料来源:https://developer.apple.com/library/content/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/AudioandVideoTagBasics/AudioandVideoTagBasics.html#//apple_ref/doc/uid/TP40009523-CH2-SW6
Update: For .quicktime 重命名为
.mov
之前上传到服务器(在base64文件类型"data:video/mov;"中),跳过ac_quicktime.js . . . 然后将在html视频标签中工作; Hackerdy Hack .By using this code video will play in all browser in safari as well with ios devices... Go for it everyone (I have used this and working fine)
`
对于IOS,请仅使用mp4源文件 . 我在最新的safari浏览器中观察到一个问题,safari浏览器无法正确检测源文件,因此,视频自动播放不起作用 .
让我们检查下面的例子 -
因为我在源文件中使用了mp4,webm . Safari deosnt支持webm,但仍然是最新的safari版本,它会选择webm并且它无法通过视频自动播放 .
因此,要在支持的浏览器上工作自动播放,我建议首先检查浏览器,并根据您应该生成您的html .
所以对于safari,请使用以下html .
除了野生动物园,
我遇到了同样的问题 . 因为我的视频帧尺寸太大了 . ie.2248 px apple支持H.264 Baseline Profile Level 3.0视频,最高640 x 480,30 fps . 请注意,基准配置文件中不支持B帧 . check this for more info
我有这个问题.mp4在Safari中播放不起作用,但在其他浏览器中它很好 . 我在控制台中看到的错误是:错误媒体src不受支持 . 在我的情况下,这被证明是一个MIME类型问题,但不是因为它在IIS中没有被声明为MIME类型,而是它被声明了两次(一次在IIS中,也在一个web.config文件中) . 我通过尝试在服务器上本地下载.mp4文件找到了这个 . 我从我试图播放的内容的位置删除了配置文件,它修复了问题 . 我本可以从web.config文件中删除MIME类型,但在这种情况下不需要web.config文件 .
在我的案例中有助于放弃音轨 . 它以前是沉默的,但它必须完全消失 .
在ubuntu上:
Safari和桌面开始播放视频