1

次のコードを使用して、サーバーから mp4 ファイルを読み取り、http 経由で送信しています。私のサーバー側は mvc4 コントローラーです。面白いことに、ビデオは Chrome で問題なくレンダリングされます。しかし、iOSデバイスでは何も得られないので、これは応答ストリームヘッダーの問題である可能性があると考えています. 不足しているものはありますか?

        var stream = new FileStream(path, FileMode.Open, FileAccess.Read);
        var result = new HttpResponseMessage(HttpStatusCode.OK)
        {
            Content = new StreamContent(stream)
        };
        result.Content.Headers.ContentType = new MediaTypeHeaderValue("video/mp4");
        result.Content.Headers.ContentRange = new ContentRangeHeaderValue(0, stream.Length);
        result.Content.Headers.Add("filename", fileName);
        return result;

手がかりが得られる場合、これは応答ヘッダーです。

Cache-Control:no-cache
Content-Length:2236480
Content-Range:bytes 0-2236480/*
Content-Type:video/mp4
Date:Fri, 24 May 2013 14:39:11 GMT
Expires:-1
filename:3.mp4
Pragma:no-cache
Server:Microsoft-IIS/7.5
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET
4

1 に答える 1

2

これは iOS デバイスのエンコーダーの問題だと思います。私の知る限り、iOS iPhone デバイスは H.264 mp4 エンコーディングを使用します。ビデオのベースライン レベル 3 エンコーディングを試す必要があります。詳細については、こちらをご覧ください。

于 2013-05-24T13:50:34.167 に答える