【问题标题】:Cannot play MP4 video on LAN in iOS through asset pipeline, but can from WAN无法通过资产管道在 iOS 的 LAN 上播放 MP4 视频,但可以从 WAN 播放
【发布时间】:2017-07-27 21:00:20
【问题描述】:

我正在尝试在我的网站上嵌入<video> 并在对话框中显示它。我认为存在 JavaScript 问题,但我将其范围缩小到 iPhone 上的 iOS Mobile Safari 不会播放来自本地网络的 mp4 文件,即使有直接链接也是如此。链接看起来像http://localhost:3000/assets/introduction-0cf920e06b4224f8f83f59d02f878b7d5733b09590a14147d1580cbfb5081f18.mp4,除了我将localhost 更改为我的桌面服务器的IP。它将加载一个与视频的第一帧颜色相同的黑屏,中间有两个破折号。

如果我从暂存中加载 MP4 的热链接,那么它可以正常播放。它在桌面上的 Chrome 中也能正常播放。

我也尝试在 iPad iOS 9.3.5 中播放,但无法播放,但确实显示了整个播放按钮,但没有任何作用。

如果我将视频复制到/public 文件夹,那么它将在 iOS Safari 上播放。它似乎只有在通过资产管道时才会失败,但只是在开发中(暂存中的相同文件)。

如何在开发环境中在 iPhone Safari 上播放 MP4 视频?

我通过 Fiddler4 代理汇集了 iPhone 并重新加载了页面。它连续发出两个请求:

GET /assets/introduction-0cf920e06b4224f8f83f59d02f878b7d5733b09590a14147d1580cbfb5081f18.mp4 HTTP/1.1
Host: 10.0.0.14:3000
Upgrade-Insecure-Requests: 1
Connection: keep-alive
Accept-Encoding: gzip, deflate
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us
Connection: keep-alive
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.0 Mobile/14G60 Safari/602.1

HTTP/1.1 200 OK
Content-Type: video/mp4
Cache-Control: public, max-age=31536000
ETag: "0cf920e06b4224f8f83f59d02f878b7d5733b09590a14147d1580cbfb5081f18"
X-Request-Id: b97a488d-7141-434f-813d-af4848162a70
X-Runtime: 0.058637
Content-Length: 27555596

GET /assets/introduction-0cf920e06b4224f8f83f59d02f878b7d5733b09590a14147d1580cbfb5081f18.mp4 HTTP/1.1
Host: 10.0.0.14:3000
Range: bytes=0-1
X-Playback-Session-Id: A0C3C96E-6F17-47B1-A509-521B3A61D481
Accept-Encoding: identity
Accept: */*
Accept-Language: en-us
Connection: keep-alive
Connection: keep-alive
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.0 Mobile/14G60 Safari/602.1

HTTP/1.1 200 OK
Content-Type: video/mp4
Cache-Control: public, max-age=31536000
ETag: "0cf920e06b4224f8f83f59d02f878b7d5733b09590a14147d1580cbfb5081f18"
X-Request-Id: 273865e7-b389-4473-b565-75b2d7ac6559
X-Runtime: 0.038530
Content-Length: 27555596

iOS 10.3.3、iPhone 5、Windows 8.1、Rails 5

【问题讨论】:

    标签: ios ruby-on-rails video ruby-on-rails-5 asset-pipeline


    【解决方案1】:

    我也遇到了这个问题。经过一些测试,我意识到它也在生产中发生 - 这让我得到了这个答案:

    Rails 4 - How to serve video?

    TL;DR - 不要使用资产管道来提供视频,如果可能,请将其完全放在 Rails 服务器环境之外。

    【讨论】:

      猜你喜欢
      • 2014-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      • 2023-04-01
      • 2022-01-19
      相关资源
      最近更新 更多