海の底には何がある

これは日記だ。ブログじゃない。

QuickTimeProを使ったテキストトラック背景の透明化

OSX TigerをインストールするとQuickTimeがもれなく7になる。で、6時代のProキーが無効になるので、早速こちらも更新。するとプロパティ表示まわりのインターフェイスが一新されていた。

新しいものは一渡り触ってみないと、とやっているうちに、7Proでは、トラック中の特定の色を透明化する方法がなくなっていることに気づく。私はこれまでテキストトラックをビデオトラックに重ねて字幕風にするとき、いつもテキストトラックの背景の黒を透明化してきたので、これができないのはチト困る。さらに私だけならチト困るだけで済むが、業務の関係で字幕入れの方法について質問を受けることが時々あるので、こちらに応えられないとなると、モチョット困る。

で、何かやり方があるはずだと思って試行錯誤を開始。プロパティ表示を良く見ると「透明化」というリスト項目に「ブレンド」「プリマルチプライホワイト」「プリマルチプライブラック」「ストレートアルファ」「ディザコピー」とある。「ブレンド」はトラック全体の透明度を変えるもの、「プリマルチプライホワイト」「プリマルチプライブラック」はそれぞれ白ないしは黒の部分が反転して透明になってしまう。「ストレートアルファ」「ディザコピー」は何の効果も出てこないが、後者はただ重ね合わせるだけだから当然として、前者はきっとアルファチャンネルさえあれば使えるはずだ。じゃあテキストトラックにアルファチャンネルを加えられるのか?と思うもダメ。{backColor: 65535, 65535, 65535}とかになっているところに、4つめの数字を書き込んでみるとおかしなことになる(おそらく一つ目の数字が無視される)。うーむ、と思って、ふと「ファイル」→「書き出し」の中に「テキストからQuickTime TeXML」という項目があるのに気づき、やってみたところXMLファイルが生成された。

で、テキストエディタで覗いてみたところ、backgroundColor="100%, 100%, 100%, 100%"という表記があるじゃないか。喜び勇んで最後の数値を0%にして保存し、QTPlayerで開いてみたところ、ちゃんと背景が透明化されました。ばんざい。でも、良く見ると背景色の指定は個々の文字列に対して行っているみたい。で、業務で使う時には、フレーム毎に増加していくカウンターをつけたりすることがあるので、つまり、10秒の動画だと300個の(秒30コマだから)文字列が存在することになって、その背景色を全て書き換えるのはとてもイヤだ(エディタで変換すればいいんだけど、そのやり方を人に説明する時には大変かもしれない)。で、こんなイヤなことありょうはずがない、きっと一括で指定する方法があるに違いないと思うのだが、当方XMLの事はほとんど知らない。しばらく眉をひそめてみた後に、ふっと思いたって、背景が透明化されたテキストトラックを「テキストからテキスト」で変換して、エディターで開いてみた。するとテキストディスクリプタに{keyedText:on}という項目が追加されていることを発見。どうもkeyedTextのオンオフで背景の透明化を制御できるようだ。二度目のばんざい。しかし喜び勇んで調べてみたら、この機能は以前から存在していた様子。がーん。知らなかった。。