asp.netスクリプトを使用して、任意の部分またはセクションからmp4ビデオをストリーミングする際に問題に直面しています。開始からmp4ビデオをストリーミングするときにはスクリプトはうまくいきますが、開始点を選択したい場合はストリーミングできませんでした。 (位置> 0) { fsの場合、私はASP.NETを使用したプログレッシブなMP4ストリーミング
if (filename.EndsWith(".mp4") && filename.Length > 2)
{
FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read);
// Sample logic to calculate approx length based on starting time.
if (context.Request.Params["starttime"] != null && context.Request.Params["d"] != null)
{
double total_duration = Convert.ToDouble(context.Request.Params["d"]);
double startduration = Convert.ToDouble(context.Request.Params["starttime"]);
double length_sec = (double)fs.Length/total_duration; // total length per second
seekpos = (long)(length_sec * startduration);
}
if (seekpos==0)
{
position = 0;
length = Convert.ToInt32(fs.Length);
}
else
{
position = Convert.ToInt32(seekpos);
length = Convert.ToInt32(fs.Length - position);
}
// Add HTTP header stuff: cache, content type and length
context.Response.Cache.SetCacheability(HttpCacheability.Public);
context.Response.Cache.SetLastModified(DateTime.Now);
context.Response.AppendHeader("Content-Type", "video/mp4");
context.Response.AppendHeader("Content-Length", length.ToString());
if (position > 0)
{
fs.Position = position;
}
// Read buffer and write stream to the response stream
const int buffersize = 16384;
byte[] buffer = new byte[buffersize];
int count = fs.Read(buffer, 0, buffersize);
while (count > 0)
{
if (context.Response.IsClientConnected)
{
context.Response.OutputStream.Write(buffer,0, count);
context.Response.Flush();
count = fs.Read(buffer, 0, buffersize);
}
else
{
count = -1;
}
}
fs.Close();
}
を使用しています
サンプルスクリプトは、私はそれを削除した場合、ビデオはまだ再生することができ、問題は次の行にあると思いますが、開始 から。位置=位置; } > 0
位置を求める場合は、ストリームは、いずれかが、この中で私を助けることができ、認識することができないため、先の位置を求める追跡するために、ストリーミングFLVに使用されるようなmp4ヘッダーが開始することができます。
よろしくお願いいたします。
FileStreamでの位置の設定はテキストファイルでしか機能しないため、プレーヤー(銀色またはフラッシュ)を考慮する必要があります。非常に小さなチャンスmp4で動作する。 – mslliviu
問題は、例えば、jwplayerのようなフラッシュプレーヤーをクリックすると、開始時間をストリーミングスクリプトに送りますが、ストリーミングスクリプトは、mp4の場合に要求された場所からコンテンツを送ることができません。 http://h264.code-shop.com/trac/wiki/Mod-H264-Streaming-Internet-Information-Services-IIS7-Version2を実装している間に動作しますが、httpスクリプト。 – irfanmcsd