安卓能播放,ios无法播放mp4视频的问题

1.场景描述
服务端上传MP4视频文件,iOS客户端通过URL播放该视频文件。
2.问题描述
安卓手机可以正常播放视频,iOS手机无法播放,且PC段safari浏览器也无法播放。
3.问题分析
(1)通过内网ip地址播放MP4文件可以播放,使用外网域名无法播放MP4文件。
(2)使用外网域名获取MP4文件路径通过了Nginx代理。
(3)safari不支持整个文件流,服务器必须支持分段请求。
(4) safari对于文件流的请求需要包含一个请求头Range, 和一个响应头Content-Range,通过Nginx代理后没有返回Range的相关信息。
4.解决方案
首先要配置Nginx支持Range标签返回,添加 add_header Accept-Ranges bytes这一行即可:
server {
listen 80;
location ~xxx{
add_header Accept-Ranges bytes;
}
启用以后,iOS请求MP4视频文件后,Nginx会返回含有Range相关的信息。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 HTML5 中,可以使用 `<video>` 标签来嵌入视频,并使用 `source` 元素来指定视频的来源和类型。为了让 iOS 和 Android 设备都能播放视频,可以在 `source` 元素中指定多个视频的来源和类型,例如: ```html <video controls> <source src="video.mp4" type="video/mp4"> <source src="video.webm" type="video/webm"> <source src="video.ogv" type="video/ogg"> Your browser does not support the video tag. </video> ``` 在上面的例子中,我们指定了三个不同格式的视频文件,分别是 MP4、WebM 和 Ogg。当浏览器无法播放第一个视频时,会尝试播放第二个视频,以此类推。 需要注意的是,不同的设备和浏览器支持的视频格式可能不同,因此需要根据实际情况来选择合适的视频格式。同时,还需要注意视频文件的大小和加载速度,以避免影响用户体验。 ### 回答2: 为了让iOS安卓设备都能播放视频,我们可以使用HTML中的video标签,并在其中设置不同的视频类型。 原生的iOS设备支持播放MP4格式的视频,而安卓设备则支持多种格式,如MP4、WebM和Ogg。 在video标签中,我们可以通过设置source子标签来指定不同的视频源文件,并使用type属性来指定视频的格式。 例如,如果我们想在iOS设备上播放MP4格式的视频,可以这样设置: <video> <source src="video.mp4" type="video/mp4"> </video> 而如果我们希望在安卓设备上播放WebM格式的视频,可以这样设置: <video> <source src="video.webm" type="video/webm"> </video> 同时,为了兼容性考虑,我们还可以提供多个source标签,以便不同设备可以根据支持的格式选择合适的视频源文件。例如: <video> <source src="video.mp4" type="video/mp4"> <source src="video.webm" type="video/webm"> <source src="video.ogg" type="video/ogg"> </video> 这样,无论是iOS设备还是安卓设备,都可以根据自身支持的视频格式选择合适的视频源文件进行播放

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值