スポンサーリンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« クルーズ船への対応に右往左往 | トップページ | エンコード系の移植を開始 »

再生系は全モード動作

今は、Ubuntu版AG-ムービーカッター Ver1.4.1の開発フェーズで、ここの所、あまり開発作業が出来ていないのだが、トランジションの追加機能の再生系については、全モード動作する様になった。次は、エンコード系に入る。

Ver1.4.1で追加するトランジションの実装が難しいのは、Ver1.4.0までは、読み込む全てのファイルを、単純に、そのファイルの最初から最後までを使っていたのに対し、トランジションを設ける場合には、トランジション期間を仮想ファイル扱いにすると同時に、その前後のファイルについても、その最期と最初をそれらのファイル期間としては扱わなくする必要があるからだ。

更に言えば、Ver1.4.0までは、二つ以上のファイルを連結して出力する場合、それらのファイル間に0.1秒程度のギャップが出来たとしても問題なし、という扱いにしていたのだが、トランジションを設ける場合には、それらの映像と音声は滑らかに推移させる必要がある、という所も難しい。

これは何故なのか、というと、通常、映像は30FPSだと約33mSec毎にフレーム映像があるのだが、音声については、そういった決められた単位で格納される事は無いので、ファイルによって、100mSecだったり、20mSecだっりするからだ。

つまり、通常、動画ファイルの映像と音声は同じ長さにはならないので、Ver1.4.0までは、双方の情報を保持するために、極力、長い方に合わせて出力する様にしていた訳だ。

具体的には、映像が10秒丁度、音声が9.8秒しかなかった場合、音声に0.2秒の無音領域を追加して出力していたので、二つのファイルを連結する場合、音声が0.2秒くらい無音になる事も多々あった。

しかし、トランジションを設ける場合、その切れ目でブツっといった音声ノイズが入るのは大問題なので、Ver1.4.0までとは違って、ノイズが入らない様な連結を心掛けなければならない。

なので、Ver1.4.1では、トランジション期間の開始時点と終了時点では、専用の特殊処理を入れているのだが、これは、シーケンシャルアクセスを前提としているので、ランダムアクセスされる場合がある再生時には適用していない。

と、言う事で、今日の時点で、再生系は動作する様になっているのだが、エンコード系の場合、上記の様な特殊処理を入れる必要があり、かつ、macOS / Windows版開発時に書いていた様に、従来の処理コードは複雑になり過ぎていたので、上記の様な新しい処理を追加するのは困難だった。

なので、Ver1.4.1では、従来コードを整理した上で、上記の様な新しい処理を追加する必要があるので、エンコード系については、殆ど、作り直しの様な感じになっている。

このため、macOS / Windows版では、実装には時間がかかったのだが、Ubuntu版については、既に、変更済みのそれらのコードが使えるので、少しは楽が出来そうではある。

しかしまあ、ここの所、体調が芳しくない事もあり、あまりコーディングが出来ていないので、実装を完了させるには、数日は必要になりそうな感じだ。

« クルーズ船への対応に右往左往 | トップページ | エンコード系の移植を開始 »

2020年4月
      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    

広告

プライバシーポリシー

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

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

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google