トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     FMS2でplaylistを自動的に再生する方法
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
YAKA2
Åê¹ÆNo.32460
投稿日時: 2007-3-13 12:08
新米
居住地:
投稿: 5
使用環境:
FLASH8,FMS2
FMS2でplaylistを自動的に再生する方法
現在、FMS2の技術検証をしていて、flvをxml(smil)で
記述して、逐次再生(連続再生)が出来ないか検証しています。

FLVPlayBackコンポーネントを使用して、contentPathに
smilで記述してテストをしたところ、<video src>
は一つしか再生されず、seqタグでvideoタグを2つ並べて
記述しましたが、xmlのinvalidエラーと帰ってきます。

この方法は間違えているのでしょうか?

出なければ、どのように実装したらよいですか?

また、contentPathにflvをrmtpで記述すると1つは再生で
2つ以上の再生をどうインプリメントしてよいか
わかりません。

誰か、ご教授いただけないでしょうか?
永井勝則
Åê¹ÆNo.32462
投稿日時: 2007-3-13 14:21
職人
居住地: 白馬村
投稿: 796
使用環境:
Windows 7 :Flash CS4:
10.6.8 :Flash CS5.5
Re: FMS2でplaylistを自動的に再生する方法
記述が間違っているかどうかは知りませんが、
FLVPlaybackコンポーネントはSMIL処理に関するバグがあって
http://www.adobe.com/support/flash/downloads.html
にコンポーネントのアップデータが出ています。
これを適用されていない場合はインストールします。

引用:
この方法は間違えているのでしょうか



http://www.himco.jp/
の[翻訳記事]にFlash VideoやFMS、FCSに関する翻訳文が
いくつもありますので、参考になるかもしれません。
引用:
どのように実装したらよいですか



----------------
永井勝則:
himco.jp :

YAKA2
Åê¹ÆNo.32464
投稿日時: 2007-3-13 16:10
新米
居住地:
投稿: 5
使用環境:
FLASH8,FMS2
Re: FMS2でplaylistを自動的に再生する方法
FLVPlayBackコンポーネントでは、再生だけならば、
actionscriptを記述せずとも出来ると思っていましたが、
やはり、actionscriptを記述しなければならないのでしょうか?

ちなみに、
記述したsmilは、以下のとおりです。
逐次再生するように、seqタグでくくってみましたが、
<smil>
<body>
<seq>
<video src="rtmp://webserver/streamtest/video01.flv" />
<video src="rtmp://webserver/streamtest/video02.flv" />
</seq>
</body>
</smil>
単純に、video01→video02と連続再生したいだけなのですが・・・
WMSのASXなら簡単ですが、flashにはこのような概念が
無いのですかね?

FLVPlayBackのcontentPathには、
http://webserver/flashtest/test.xml
と記述してみました。
そうすると、
1005: Invalid xml: URL: "http://webserver/flashtest/test.xml" At least one video of ref tag is required.

と帰ってきて、読み込んでもらえないみたいです。
永井勝則
Åê¹ÆNo.32487
投稿日時: 2007-3-14 22:03
職人
居住地: 白馬村
投稿: 796
使用環境:
Windows 7 :Flash CS4:
10.6.8 :Flash CS5.5
Re: FMS2でplaylistを自動的に再生する方法
参考になるかどうか分かりませんが、
FLVファイルを指定したXMLファイルを読み込み、
FLVPlaybackコンポーネントを使って、FMSからストリーミング再生する
SWFファイルを作ってみました。
スクリプトを使っています。
http://www.himco.jp/test/autoPlay/FMS_AutoPlay.html
FLAファイル、ASファイル、XMLファイルなどZIPファイルで
上記からダウンロードできます。

具体的に何を条件に”検証”されているのか分かりませんので、
こちらでやりよいように作っています。
なお、コードの記述は必ずしもほめられたものではないと思うので、
責任はもてません。

あと、連続再生には
FLVPlayback.activeVideoPlayerIndex
FLVPlayback.visibleVideoPlayerIndex
が使えると思います。

スクリプトを使わないことが条件なら、FMS+Flashの場合は、
すんなりと自動再生はできないと思います。



----------------
永井勝則:
himco.jp :

YAKA2
Åê¹ÆNo.32488
投稿日時: 2007-3-15 0:40
新米
居住地:
投稿: 5
使用環境:
FLASH8,FMS2
Re: FMS2でplaylistを自動的に再生する方法
ありがとうございます。

何を条件にどのようにしたいか?
というと、

最終的には、FMS2+FLASHを使用して、xmlに
記述されたflvファイルをrmtpを利用して
連続ストリーミング再生をしたいと考えております。

xmlの内容は、できればDBから動的に拾ってきて
見るたびにランダムで動画が再生できるようにしたいのです。

また、製品の説明に書いてあった、

「プレイリスト、映像広告挿入のサポート
SMIL、ASX といった一般的な XML フォーマットで記述されたプレイリストを記述することにより、Flash Media Server でストリーミング配信を行う際に、プリロール型 (コンテンツの前に流す) あるいはミッドロール型 (コンテンツの間に流す) 広告を挿入する、といった利用例も考えられます。」

この機能も検証したいのですが、サンプル見たいのが
見当たりません。調べたところ、SMILもたいした
タグ解釈能力もないみたいだし、ASXも読むコンポーネント
もないようです。
ActionScriptを記述できれば可能ということなのでしょうかね?

また、再生をしながらあるタイミングでJPEGや、
GIFをHTML上のDIVタグに変化させて描画してみたり・・・

といったことが、これでできないか等も考えてますが、
難しいんでしょうかね?


永井勝則
Åê¹ÆNo.32492
投稿日時: 2007-3-15 9:07
職人
居住地: 白馬村
投稿: 796
使用環境:
Windows 7 :Flash CS4:
10.6.8 :Flash CS5.5
Re: FMS2でplaylistを自動的に再生する方法
これはFMSの製品の説明書に書いてあったのですね。
引用:
プレイリスト、映像広告挿入のサポート
SMIL、ASX といった一般的な XML フォーマットで記述されたプレイリストを記述することにより、Flash Media Server でストリーミング配信を行う際に、プリロール型 (コンテンツの前に流す) あるいはミッドロール型 (コンテンツの間に流す) 広告を挿入する、といった利用例も考えられます。」


たぶん日本語での公開された参考資料は少ないと思うので、
英語などで書かれたWebページを探すとか、
英語のFMSメーリングリストで聞いてみる方法が有効かと思います。
わたしも探してみます。
とここまで書いてきて、どこかで読んだことがあるような気が。。。
ま、探ってみますね。


----------------
永井勝則:
himco.jp :

YAKA2
Åê¹ÆNo.32493
投稿日時: 2007-3-15 10:39
新米
居住地:
投稿: 5
使用環境:
FLASH8,FMS2
Re: FMS2でplaylistを自動的に再生する方法
この文章は、日本のAdobiの機能ツアーに記述されておりました。

だったら、サンプルとかあればわかりやすいのですが、
見当たりませんね。

もし、簡単でよい方法があれば教えてください。
私も探してますが・・・
永井勝則
Åê¹ÆNo.32495
投稿日時: 2007-3-15 17:52
職人
居住地: 白馬村
投稿: 796
使用環境:
Windows 7 :Flash CS4:
10.6.8 :Flash CS5.5
Re: FMS2でplaylistを自動的に再生する方法
1)SMILファイルの使い方について

<smil>
<head>
<meta base="rtmp://localhost/AutoPlay/" />
<layout>
<root-layout width="240" height="180" />
</layout>
</head>
<body>
<switch>
<video src="sample" system-bitrate="128000"  dur="3:00.1" />
<video src="sample" system-bitrate="56000" dur="3:00.1" />
<ref src="sample" dur="3:00.1" />
</switch>
</body>
</smil>

これをtest.smilという名前でFLAファイルと同じフォルダに保存します。
(なお、SMILファイルは帯域幅を検出してそれに適したFLVを求めるサンプルばかりのようです。
この例ではぜんぶ同じファイル名にしており、時間も嘘です。)
FLAファイルにFLVPlaybackコンポーネントを置いて、
インスタンス名をvideoとして、フレームに


var video:mx.video.FLVPlayback;
video.contentPath = "test.smil";

とします。
Flashのヘルプ[SMIL ファイルの使用]の例そのままでは動かず、
拡張子.flvを削除しています。

2)プレイリストについて
NetStream.play()メソッドでは、たとえば、
ns.play("sample1", 0, -1);
ns.play("sample2", 0, -1, false);
ns.play("sample3", 0, -1, false);
とすると、”プレイリスト”を作成して、指定したFLVファイルを
連続して再生できます。
したがって、FLVPlaybackコンポーネントを使わない、
Videoオブジェクト+NetStreamオブジェクトによる再生では、
このままこの方法が使えます。

これを無理にFLVPlaybackコンポーネントで使おうとすると、


var video_mc:MovieClip;
video_mc.video.autoPlay = false;
video_mc.video.contentPath = "rtmp://localhost/AutoPlay/sample1";
btn.onPress = function() {
	var ns:NetStream = video_mc.video._vp[0]._ns;
	trace(ns);
	ns.play("sample2", 0, -1);
	ns.play("sample3", 0, -1, false);
	ns.play("sample4", 0, -1, false);
};

のようにもできますが、これは反則です。

Adobeの機能ツアーにあったという文章は、たぶん
NetStream.play()で使える”プレイリスト”のことを指しているのではと想像します。

3)いくつかの質問について
NetStream.play()のパラメータに、XMLから読み込んだ内容をあてがうことはできます。
同様に、データベースに毎回問い合わせて、再生するビデオを変えることもできます。

4)下記に引用した質問について
これは、キューポイントだか何だかを使って、”あるタイミング”を判定し、
ActionScript経由JavaScript行きで実現するのではないでしょうか。
引用:

また、再生をしながらあるタイミングでJPEGや、
GIFをHTML上のDIVタグに変化させて描画してみたり・・・


あと、前にも書いているのですが、
http://www.himco.jp/
の「翻訳記事」のNo10も参考になると思います。

いずれにせよ、FMSで何かやろうとすると、サーバーサイドのコードが必要で、
そことやりとりするクライアントサイドのコードも必要です。

FLVPlaybackコンポーネントをFMSで使うときは、
Flash 8\Samples and Tutorials\Samples\Components\FLVPlayback
にあるmain.ascをFMSのアプリケーションのフォルダに置く必要があります。
これはよく忘れます。


----------------
永井勝則:
himco.jp :

YAKA2
Åê¹ÆNo.32514
投稿日時: 2007-3-16 16:13
新米
居住地:
投稿: 5
使用環境:
FLASH8,FMS2
Re: FMS2でplaylistを自動的に再生する方法
親切にありがとうございます。

要約すると、
1.flash上のsmilは、帯域によるビデオの再生行うことのみ
  再生リストでは使用できない

ちなみに、
FLVPlayBackコンポーネント+xmlの再生は何とか作ることが
できました。
マニュアルを見ると、FLVPlayBackコンポーネントを強く
推奨します見たいな事が書かれていたのですが、
Videoオブジェクトのほうが良いのですかね?


永井勝則
Åê¹ÆNo.32541
投稿日時: 2007-3-17 14:06
職人
居住地: 白馬村
投稿: 796
使用環境:
Windows 7 :Flash CS4:
10.6.8 :Flash CS5.5
Re: FMS2でplaylistを自動的に再生する方法
確認ですが、Videoオブジェクトは、Flashのライブラリの[新規ビデオ]で作成するビデオのことです。
それとは別にVideoPlayerクラスというのがあります。
これはFLVPlaybackコンポーネントの中身のクラスです。

Videoオブジェクトで何とかキューポイントが受け取れないものか”少しだけ”努力してみましたが、
それよりもVideoPlayerクラスを使った方がてっとり早いので、
NetStream.play()メソッドはあきらめ、VideoPlayerに乗り換えました。
VideoPlayerはplay()でrtmp://...を指定すると自前でFMSに接続するので、こちらではNetStreamは直接操作しません。

で、サンプルを
http://www.himco.jp/test/autoVideo/autoVideo.html
にアップしました。
借りているFMSの帯域幅が超貧弱なので、満足に再生できず
バッファリングと再生を繰り返していますが、XMLから読み取った
データを繰り返し再生しています。
VideoPlayer.stateChangeで"stopped"を調べ、再生が終わったら
VideoPlayer.play()で次のFLVを再生しています。
VideoPlayer.cuePointでキューポイントを受け取り、
ビデオの下の文字と、SWFの外にあるHTMLのテキストフィールドに
チャプターのような文字を表示しています。
HTMLのテキストフィールドには、ExternalInterfaceを使って
JavaScriptにデータを送っています。

http://www.himco.jp/
の「翻訳記事」で
VideoPlayerクラスはNo.47、
ExternalInterfaceはNo.68
で英文記事を訳したものがあります。

FLVPlaybackコンポーネントとVideoPlayerを使う違いは、
書き出すSWFのファイルサイズが多いか少ないかです。

---追加---
コードを少し追加し、JPG画像も変更するようにしました。


----------------
永井勝則:
himco.jp :

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops