リクエスト
Flash/AS3 では、mp4 に埋め込まれた CEA-608 クローズド キャプションをどのようにデコードまたはキャプチャしますか? キャプション データのヒントすら得られないようですし、正しい方向を示すドキュメントも見つかりません。ドキュメント、例、またはアイデアは非常に役立ちます。
仕様
OSMF を使用して AS3 でビデオ プレーヤーを構築しています。m3u8 ビデオの mp4 チャンクに埋め込まれた CEA-608 クローズド キャプションへのアクセスに関する /any/ ドキュメントが見つからないようです。
OSMF CaptioningPlugin は外部の XML ファイルを必要とするため、それはできません。埋め込みキャプション トラックの統合の詳細を探しています。
onTextData
、onMetaData
、onCaptionData
、onTextRR
ハンドラーとリスナーをOSMFにアタッチしようとしましたがNetstream
、運がまったくありませんでした(たとえば、これらのイベントまたはハンドラーのいずれも発火したり、何かを返したりすることはありません)。
private function onTraitAdd ($e:MediaElementEvent) : void { var mediaElement: MediaElement = ($e.target as MediaElement);
switch ($e.traitType) {
case MediaTraitType.LOAD:
_netStreamLoadTrait = mediaElement.getTrait(MediaTraitType.LOAD) as NetStreamLoadTrait;
_netStreamLoadTrait.addEventListener(LoadEvent.LOAD_STATE_CHANGE, onNetStreamLoaded);
break;
}
}
private function onNetStreamLoaded ($e:LoadEvent) : void {
var netStream:NetStream = _netStreamLoadTrait.netStream;
netStream.client.addHandler("onTextData", onTextData);
netStream.client.addHandler("onCuePoint", onTextData);
netStream.client.addHandler("onMetaData", onTextData);
netStream.client.addHandler("onCaptionData", onTextData);
netStream.client.addHandler("onTextRR", onTextData);
netStream.client.addHandler("onCaptionInfo", onTextData);
netStream.addEventListener("onTextData", onTextData);
netStream.addEventListener("onCuePoint", onTextData);
netStream.addEventListener("onMetaData", onTextData);
netStream.addEventListener("onCaptionData", onTextData);
netStream.addEventListener("onTextRR", onTextData);
netStream.addEventListener("onCaptionInfo", onTextData);
netStream.addEventListener(NetStatusEvent.NET_STATUS, onNetStreamStatus);
netStream.addEventListener(NetDataEvent.MEDIA_TYPE_DATA, onStreamData);
}
問題が私の OSMF 実装にあるのか (間違った NetStream をリッスンしているのかもしれません)、それともビデオからこのデータを取得する方法がないことが問題なのかはわかりません。
サンプル ファイル:
http://stream.flowplayer.org/big_buck_bunny_with_captions.mp4 http://now.video.nfl.com/i/captiontest/closedcaptiontest_,350k,550k,.mp4.csmil/master.m3u8 (このサンプル ファイルはより複雑です)ただし、HLS プラグインが必要なため)
他の
使ってみ
OSMFCCDecoder.swc
ました(見つけるのがかなり難しかったので、ここにアップロードしました)。ドキュメントはほとんどなく、期待される結果に関する情報もありません。また
JWPlayer
、キャプションの処理方法を確認するために逆コンパイルし、 byteArray refを解析します。JWPlayer でキャプションを再生する手順
- http://support.jwplayer.com/customer/portal/articles/1430278-cea-608-captions
- ブラウザの JavaScript コンソールを開く
- このコードを貼り付けます
jwplayer("container_wrapper")
.setup({
file: "http://now.video.nfl.com/i/captiontest/closedcaptiontest_,350k,550k,.mp4.csmil/master.m3u8"
});