0

flv vid があり、キュー ポイントを動的に設定します

vid.addASCuePoint(1, "cuePoint1");

とはいえ、いつも同じ場所に止まるわけではありません。どうすればもっと正確に言えますか?これはバッファリングと他のいくつかの要因によるものだと思いますか?

import fl.video.*;
//etc etc 
vid.addEventListener(fl.video.VideoEvent.READY, flvPlayback_ready);
vid.addEventListener(MetadataEvent.CUE_POINT, flvPlayback_cuePoint);

function flvPlayback_ready(evt:fl.video.VideoEvent):void {
vid.addASCuePoint(1, "cuePoint1");
vid.play();
}


function flvPlayback_cuePoint(evt:MetadataEvent):void {
    vid.pause();
    trace("CUE POINT!!!");
    trace("\t", "name:", evt.info.name); // name: cuePoint1
   trace("\t", "time:", evt.info.time); // time: 1
   trace("\t", "type:", evt.info.type); // type: actionscript

}

4

2 に答える 2

0

キューポイントは次の 2 つの方法で動画に追加できます: 1) 実際の動画にエンコードする 2) アクション スクリプトを介して追加する

適切なドキュメントへのリンクはありませんが、以前にこの問題に対処したことがあります。私が読んだ内容によると、アクション スクリプトを介してキューポイントを追加することは、それらをビデオにエンコードするほど正確ではありません。...そしてあなたのコードは、これがあなたがそれらを追加する方法であることを示しています...

より良いニュースがあればいいのですが、精度を高める唯一の方法は、エンコード中にキーポイントを追加することです。

于 2012-03-30T18:28:48.613 に答える
0

おそらく、flv がエンコードされたキーフレームの数が原因です (MediaEncoder でエンコードする場合、デフォルトでは 30 フレームあたり 1 と思います)。

flv を再エンコードして、Key Frame Distance をより小さな値に設定してみてください (または、ActionScript 経由で追加するのではなく、Media Encoder を使用してキーフレームを埋め込むこともできます)。

于 2012-03-30T13:40:44.897 に答える