iosデバイスにストリームするmp4ビデオファイルを作成しようとしています。私はIISサーバーを使用してドメインからhttps接続を取得し、ローカルホスト上のexpress(nodejs)サーバーにリバースプロキシを使用しています。これは私のノードのjsです:ノードjsからIOSへの部分コンテンツビデオストリーム
var range = req.headers.range;
var contentType = _mime2.default.lookup(filename);
if (req.get('Range') == null){
console.log("hei");
res.status(200);
res.set('Connection', 'keep-alive');
res.set('Content-Type',contentType);
res.set('Content-Length', data.length);
res.set("Accept-Ranges", "bytes");
res.end(data)
}else{
var total = data.length;
var split = range.split(/[-=]/);
var ini = +split[1];
var end = split[2]?+split[2]:total-1;
var chunkSize = end - ini + 1;
if (parseInt(ini) >= total || parseInt(end) >= total) {
//Indicate the acceptable range.
res.status(416);
res.set("Content-Range",'bytes */' + total); // File size.
//Return the 416 'Requested Range Not Satisfiable'.
res.end();
}
res.status(206);
res.set('Connection', 'keep-alive');
res.set("Content-Range","bytes " + ini + "-" + end + "/" + total);
res.set("Accept-Ranges", "bytes");
res.set("Content-Length", chunkSize);
res.set("Content-Type", contentType);
res.end(data.slice(ini, chunkSize+ini));
}
}).catch(function (err) {
res.status(404);
res.set('Content-Type', 'text/plain');
res.end('File not found.');
});
異なるブラウザの[1]
挙動[![Firefoxの] [1]でCatched]:
- Chromeは
- 全体のビデオをダウンロードしますFirefoxはビデオを細かく再生する
- OSX safariはビデオ全体をダウンロードします
- IOS safariは再生/ストリームを開始しませんg
IOS safariがこれを気に入らない理由を知っている人は誰ですか?
(ビデオ:フォーマット:264、568x320、AAC、22050ヘルツ、784.65キロビット/秒、.MP4)
あなたはサーバーにデータを送信する方法をiOSコードと共有できますか? – souvickcse