スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 次はAmuseGraphicsにする | トップページ | 誰かのバグから回避 »

音声オフセット機能を追加

今は、AG-ムービーカッターの改良開発を行っていて、Ver1.3.0の基本機能は適用済みなので、今日はAG-ムービーカッター固有の新機能を追加した。具体的には、音声オフセット機能なのだが、対応形式はAGM形式のみにした。他形式にも適用できない事も無かったのだが。

音声オフセット機能というのは、音声のオフセット秒を指定して、動画再生時にそのオフセット秒分だけ、単純に、音声の再生を遅らせるか早める機能になる。

で、上記の様に、文章にすると、単純な機能になるのだが、実際問題としては、DirectShow動画の場合、再生時のタイミングはDirectShowが決めている。

なので、音声を遅延させたければ、DirectShowから受け取ったデータの再生を遅らせれば、とりあえずは、形式的な音声の遅延は行えるのだが、こういう方式にした場合、再生を開始してから、遅延分だけは、音声が再生されない事になる。

AG-ムービーカッターの場合、再生可能な動画は、そのままエンコード可能な仕様になっているので、エンコードした動画についても、再生開始時点から遅延分だけは、音声が再生されない事になる。

しかし、AG-ムービーカッターには、動画の連結機能だとか分割並列エンコード機能だとかもある訳なので、動画の先頭部分に音声が入らないというのは、使い勝手的に問題がある訳だ。

なので、より望ましい方式としては、音声を遅らせる場合には、再生開始位置を遅らせる分だけ前にして、その音声をバッファリングしておき、遅延分溜まった時点で映像出力と音声出力を開始する、というモノが考えられるのだが、エンコード時には、基本的には、これで良いとしても、通常の再生時には、音声のバッファリングが終わるまでは、音声も映像も出力されなくなってしまう訳だ。

その問題も回避したければ、DirectShowにタイミング制御させるのをヤメ、通常再生時にも、最大速度でデコードさせ、上記の通常再生時の待ち時間を実質的になくす、という手もあるのだが、そういう事をやったとしても、音声のバッファリング用にメモリが必要になる訳だ。

まあ、遅延時間が数秒であれば、必要なメモリ量も大した事は無いので、遅延時間に制限をつけて、上記の様な方式を採用すれば、DirectShow動画も、音声オフセット機能の対象にする事は出来たのだが、AG-ムービーカッターというのは、そもそもは、AGM形式動画用の編集ツールになる。

つまり、DirectShow動画だとか、Media Foundation動画なんかについては、一旦、AGM形式に再エンコードし、AGM形式動画として色々と編集した結果を、必要があれば、また、MP4形式なんかに再エンコードする、というのを、基本的な使い方として想定している訳だ。

と、いう事なので、音声オフセット機能はAGM形式動画についてのみ適用できる、という仕様にした。

ちなみに、AGM形式動画については、全制御ルーチンは自前ルーチンになるので、映像と音声は独立して読み書きできるし、タイミング制御も自前で行っている。

このため、AGM形式動画については、音声にオフセットを入れるのは容易だった訳だ。

もっとも、現行版でも、「音声トラックの別指定」機能を使えば、動画形式に関わらず、音声オフセット機能と同等の処理は行える。

具体的には、動画データから音声トラックをWav形式で切り出し、そのWavファイルをWaveClipperなんかの音声編集ツールで加工し、その結果を「音声トラックの別指定」機能を使ってオリジナルの音声データと入れ替えれば良い訳だ。

にもかかわらず、今回、音声オフセット機能を入れたのは、上記の作業は面倒、という事もあるのだが、作者的には、数日前に書いた様に、既にAGM形式動画になっている音ズレが入った宇宙戦艦ヤマトのデータを持っているからだ。

つまり、今回追加した音声オフセット機能は、AGM形式動画の無劣化出力時にも有効に出来る様にしたので、変更にあたって処理時間は殆どかからないし、画質劣化も防げる。

同様に、YouTubeなんかにアップされている動画は音ズレしているモノも結構あったりするので、そういった動画をAG-デスクトップレコーダーでキャプチャーした場合にも、AGM形式でエンコードしてあれば、無劣化で修正できるし、別形式にエンコードしたい場合にも、現行版よりは、手軽に修正する事が出来る事になる。

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

AmuseGraphics

AmuseGraphics

(2016/05/04追加)

« 次はAmuseGraphicsにする | トップページ | 誰かのバグから回避 »

トラックバック

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

この記事へのトラックバック一覧です: 音声オフセット機能を追加:

« 次はAmuseGraphicsにする | トップページ | 誰かのバグから回避 »

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