スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 更に少し前進 | トップページ | とりあえず、次に行く »

使えそうではあるのだが

今はAmuseGraphicsの開発フェーズで、AG-デスクトップレコーダー/AG-WebカメラレコーダーとAGMPlayerとの連携機能として、各データをAGMPlayerで録画/追いかけ再生できる様にしていたのだが、今日の時点では、動作していて、使う気になれば使える状態なのだが。

AG-デスクトップレコーダー/AG-WebカメラレコーダーからAGMPlayerへのデータの配信は、AG-デスクトップレコーダー/AG-Webカメラレコーダーが共有メモリを作成し、それを、AGMPlayerが参照する格好になっている。

もっとも、AG-XXXの方は、キャプチャーデータを、非同期に、そこに書きこんでおいても、データ配信、という事にはなるのだが、今回は、ハンドシェイクを行う様にしている。

つまり、新しいデータを書きこんだら、AG-XXXはAGMPlayerにその旨をイベントで通知し、AGMPlayerがそのデータを取り込んだ、というイベントを返してこない限り、次のデータの書き込みは待つ格好にしてある。

これは何故なのか、というと、AG-XXXのデータ配信処理は、エンコーダーへの入力の代わりに行っているので、動画フレームのタイミング制御はAG-XXXの方で行えているので、AGMPlayerが各データを確実に受け取れば、AGMPlayer側でタイミング制御を行う必要を無くせるからだ。

と、いう事で、AGMPlayer側では、受け取ったストリームを単純にエンコードしてファイルに書きこめば、タイミングズレのない動画ファイルを作成できるのだが、今日の時点では、この辺のオーバーラップ動作を真面目に作りこんでいないので、性能的には、AG-XXXがAGMPlayerの応答遅延により、動作が遅延する格好になっている。

もっとも、それでも、30FPS程度の動画なら、その遅延時間は問題になっていない感じで、録画ファイルを見ていても、特にカクカクしている感じはない。

追いかけ再生についても、今日の時点では、真面目なオーバーラップ処理は作りこんでいないのだが、追いかけ再生をやっていても、録画ファイルがカクカクになる事もなければ、再生動画がカクカクになる事もない。

なので、AG-XXXからのデータを受信した上での録画/追いかけ再生機能も、使えそうではあるのだが、使い勝手的には、今日の時点では、相当、危なっかしい。

具体的には、ループバック録音では、アクティブな音声出力、つまり、通常は規定の再生デバイスに出力された音声を録音するのだが、AGMPlayerの再生出力も、デフォルトでは、規定の再生デバイスに出力している。

つまり、AGMPlayerの音声出力先を変更せずに、リアルタイム再生や追いかけ再生を行うと、音声がループするので、ハウリングみたいな現象がおきてしまう。

また、録画と追いかけ再生との関係についても、今日の時点では曖昧で、追いかけ再生は録画を開始していないと実行できないのだが、一旦、実行してしまえば、追いかけ再生中に録画を終了させる事は可能だ。

これは、普通の使い方として、例えば、2時間くらいのリアルタイム配信を、その開始時に、とりあえず録画開始しておき、見る時間が出来たら、途中から、追いかけ再生で最初から見る、みたいな事を想定しているからだ。

つまり、この場合、録画自体は、録画開始後2時間で終了させる筈なのだが、追いかけ再生については、録画を終了しても、最後まで見続けたい筈だからだ。

しかし、今日の時点では、追いかけ再生中に録画を終了させると、コマンド的には、新たな録画を開始できる格好になっているのだが、そのコマンドを実行するとクラッシュしてしまう。

これは何故なのか、というと、今日の時点では、ストリーム用の録画ファイルはワーク領域の固定ファイルにしてあるので、追いかけ再生でも参照するそのファイルを新たな録画で初期化されてしまうと、問題も発生するからだ。

と、いう事なので、上記の問題を解決したければ、追いかけ再生中には新たな録画を禁止する処理を追加すれば良いのだが、録画の度に、録画ファイルを新規作成する、という手もある。

ただ、この場合には、追いかけ再生を一旦やめてしまうと、次の追いかけ再生では新しい録画を追いかける感じになってしまうので、前述の様な使い方をしていると、前の録画を最後まで見たかったのに、なんで見れなくしたんだ! みたいに腹を立てる人も出てくるだろう。

もっとも、この場合、録画は既に終了している訳なので、その録画ファイルをライブラリにコピーしておけば、そのファイルを通常再生する事で、最後まで見る事は可能だ。

しかし、それが可能だったとしても、上記の様な感じにしておくと、使い勝手が悪すぎる、なんて事を言う人が必ず出てくる筈だ。

このため、追いかけ再生中に録画が終了された場合、AGMPlayer的には、通常再生も可能に出来る訳なので、その時点で、追いかけ再生を通常再生に切り替え、続きをそのまま再生する、という手もある。

しかし、そういう事をしてしまうと、ストリーム視聴をしている筈が、いつの間にか、そのストリームを無視して、通常再生を行う格好になってしまう訳だ。

と、いう事で、プログラム的には、かなり色々な事がやれるのだが、操作系としては、殆ど何も出来なくしておいた方が、逆に、使い勝手は良くなる筈だ。

このため、明日は、何を出来なくするのかを、色々と調整したりしながら、検討する事にする。

= この記事に関連する公開中ソフト =

AmuseGraphics

AmuseGraphics

(2016/10/25追加)

« 更に少し前進 | トップページ | とりあえず、次に行く »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/64042582

この記事へのトラックバック一覧です: 使えそうではあるのだが:

« 更に少し前進 | トップページ | とりあえず、次に行く »

2017年10月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    Cookieを無効にする設定およびAdsenseに関する詳細については、以下のリンクを参照下さい。

    広告 - ポリシーと規約 - Google