スポンサーリンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« HPに注意事項等を追加 | トップページ | 今年は、個人情報販売元年 »

まずは、AGMPlayer

今週から、Ubuntu版AGMPlayer / AG-ムービーカッターをVer1.4.0相当にする開発を始めたのだが、まずは、AGMPlayerの開発に取り掛かった。Ver1.4.0相当にするためには、音声ファイルの再生に対応させ、音声の録音機能も追加する事になる。

AGMPlayerは、元々、動画ファイル、つまり、映像と音声の両方を持ったファイルの再生が行えていたので、その片方でしかない音声しかないファイルの再生なんて、簡単だろう、と、思う人もいるかもしれない。
 
しかし、そういった考え方は、大局的には正しいのだが、実際問題としては、そうでもない訳だ。
 
何故なら、動画ファイルの場合、映像はある事が前提になるのに対して、音声ファイルには映像はないので、随所で、再生対象ファイルの映像データにアクセスしているソフトに、映像データがないファイルを扱わせる為には、随所を、変更する必要が出てくるからだ。
 
と、言う事なので、AGMPlayerに音声ファイルを扱わせようとすると、実際の所としては、その変更量は、再生系処理を全変更する必要すらある感じだった訳だ。
 
もっとも、Windows版のAGMPlayer Ver1.4.0を開発した時には、それほどの開発時間はかからなかった訳なのだが、これは何故だったのか、というと、AGMPlayerの再生系処理ルーチンに音声ファイルを扱わせるのは大変すぎたので、音声ファイルに映像を追加する事にしたからだ。
 
具体的には、音声ファイルは一般動画のデコードルーチンでデコードさせる事にして、そのデコード時に、本来は存在しない映像データを追加する事で、外部ルーチンには、再生ファイルには通常の動画ファイルと同様に、映像と音声の両方がある形に見える様にした訳だ。
 
その結果としては、仮想的な動画ファイルを作成する為に、一般動画を扱う処理ルーチンに、追加ルーチンが必要になったのだが、それ以外の処理コードについては、従来版のままに出来た訳だ。
 
で、上記の方式は、macOS版でも踏襲したし、Ubuntu版でも同じ仕組みにする予定なのだが、一般動画を扱う処理ルーチンというのは、WindowsではDirectShow + MediaFoundationベース、macOSではAV Foundationベース、UbuntuではLibavxxxベースになっている。
 
なので、実際の所、再生系に関しては、その上位層は各OS版で似通った作りになっているのだが、最下層については作りが全く異なる訳だ。
 
その結果として、音声ファイルに映像を追加して動画ファイルに見せる処理ルーチンというのも、各OS版で異なった作りになってしまうので、既に、Windows / macOS版があるからといって、Ubuntu版の開発が楽になるかというと、まあ、少しは楽ではあるのだが、処理ルーチンをコピーしてくれば動作するのか、と言えば、そんな事は全くない状況だ。
 
更に言えば、Ubuntu版については、サポート対象とする18.04LTSと16.04LTSで同じLibavxxx系のAPI関数を利用できないので、それぞれ用に別個の処理ルーチンを作らなければならない。
 
と、言う事で、作者的にも、色々な意味でのLinux系OSの互換性軽視の姿勢には、勘弁してくれ・・・、みたいな所はあるのだが、まあ、だからこそ、互換性を確保しつつ、サポートが5年行われるUbuntuのLTS版は、Linuxの中でも、最もシェアが高いOSになっている訳だ。
 
更に言えば、18.04LTSについては、詳細については不明な状況ではあるものの、少なくともサーバー版については、サポート期間は10年に延長される、という事になった様だ。
 
なので、技術的な実験用ならいざ知らず、実用でLinuxを使いたいなら、最早、選択肢はUbuntu一択な時代が到来しているのかもしれない。

« HPに注意事項等を追加 | トップページ | 今年は、個人情報販売元年 »

トラックバック


この記事へのトラックバック一覧です: まずは、AGMPlayer:

« HPに注意事項等を追加 | トップページ | 今年は、個人情報販売元年 »

2019年6月
            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