VideoProcessor

PeloReaper Extensionの情報やダウンロードはこちらからどうぞ。
PeloReaper Extension for REAPER is here.
ReaperBanner01_w250 AudioSoftBanner01_w250

REAPERで動画の字幕を簡単に作成する方法

初稿:2023/02/03 22:30 - 最終更新:2023/02/04

REAPERで動画を作成している場合に、動画の字幕を設定するのが面倒だなーと思ったことはないでしょうか? 今回はそんな時に便利に使える、PeloReaperの機能を紹介します。


REAPERで動画に字幕を入れる機能について

REAPERでは、ItemのFX(Take FX)にVideo Processorを追加して、ItemのTake名に字幕文字列を記入することで、動画の字幕をタイムラインに配置することが出来るようになっています。

これについての使い方などは、以下の記事をご覧ください。


PeloReaperの機能でEmptyItemから字幕Itemの自動生成

PeloReaperにはVOICEVOXやVOICEPEAKといった音声合成ソフトとの連携機能が実装されており、それらを使う場合、Empty ItemのItem Notesにセリフを記入して音声合成を行うのが非常に便利となっています。

また、Empty ItemのItem Notesにセリフなどの文字列を記入すると、それがArrange View(タイムライン)上で見えるようになっています。

EditItemNotes01

これらの特性を踏まえると、字幕用に使う文字列はEmpty Itemに記載しておくというのが、最も扱いやすい方法となっているのですが、残念ながらVideo ProcessorからItem Notesを参照する方法が今のところありません(Empty ItemにはTakeも含まれていないため、そもそもVideo Processorを挿入することも出来ない)。

なので、Empty Itemから字幕用のItemとVideo Processor(Text-Overlay)を自動生成してやろうというのが結論で、以下紹介するActionでこれを実現することが出来ます。


Empty Itemから字幕用Itemを自動生成

PeloReaperの以下のActionを使用すると、選択したEmpty ItemのItem Notesを使用した、動画字幕用Itemを自動生成することが出来ます。

[PeloReaper] Misc: Generate video subtitle items from selected items' notes (Destination: VideoSubtitlesTrack)

セリフを記入したEmpty Itemを選択してこのActionを実行すると、「Video Subtitles」という名前のTrack(なければ自動生成される)に字幕用のItemが自動的に作成されます。

GenerateSubtitlesAndVP

このActionの実行時にはVideo ProcessorのText-Overlayに関するパラメータを指定するダイアログが表示されますので、そこで好みの設定にすることも出来ます(文字を大きくするなど)。

VPTextOverlaySettings

↑ これらのパラメータは、Video ProcessorのText-Overlayプリセットで利用できるパラメータなので、どんな値にするかはText-Overlayをいじってみて、好きな値を決めると良いと思います。

VPTextOverlay

字幕用Item生成時に指定するText-Overlayパラメータのリセット

字幕用Item生成時に指定するText-Overlayの設定は以前設定したものを覚えておいてくれますが、設定ダイアログの値を初期値に戻して指定したいという場合は、以下のようにActionの最後に「Reset text-overlay params」のあるものを実行して下さい。

[PeloReaper] Misc: Generate video subtitle items from selected items' notes (Destination: VideoSubtitlesTrack, Reset text-overlay params)

いろいろパラメータを変えたりした後に、やっぱり初期値に戻したいと思ったら使うとよいと思います。


字幕用Item生成先Trackを新規Trackにしたい場合

「Video Subtitles」という名前のTrackではなく、新規のTrackに字幕用Itemを生成したいという場合は、以下のActionを使用して下さい。

[PeloReaper] Misc: Generate video subtitle items from selected items' notes (Destination: NewTrack)


今回説明した機能で、一部のセリフの字幕を作り直したり、一括で全部の字幕Itemの設定を変えて作り直したりということが出来るため、動画用の字幕を作るのが非常に楽になりました。ちょっとした解説動画などを作るのに非常に便利なので、ぜひ皆さんも使ってみて下さい。


REAPERで動画編集:Blur系・MonitorFX専用効果など

REAPER v5.97以降で追加されたVideo Processor(以下VP)のプリセットで、まだ取り上げていなかったものを紹介します。

Blur(ぼかし)系効果

画面全体をぼかすBlur効果が追加されました。Gaussianとlow qualityがありますが、後者は軽量版のようです。

  • 元の画像
    VP_ImgOrg
  • FX: Blur (Gaussian)
    VP_BlurGaussian01
  • FX: Blur (low quality)
    VP_BlurLowQuality01

この実装追加のため、VPのAPIである gfx_evalrect が改良されたようです。以前は左から右、上から下という方向にしかピクセル処理出来なかった気がしますが(あんまり覚えてないけど)、逆方向もフラグ設定でいけるようになった模様。

しかしまぁ以前からですが、ピクセル毎にスクリプトを走らせるような仕組みなのでとにかく重いですね。画像サイズによっては余裕のフレーム落ちです。あ、ちなみにこれはREAPER上でのリアルタイムプレビュー処理時のみの話なので、ファイルへレンダリングする場合の結果は問題なしです。

こういった定番の画像処理はもう手動でピクセル毎にスクリプト実行という方式じゃなくて、画像処理専用のAPIを用意してくれた方がいい気がします。そうすればSIMDやマルチスレッド化、GPU利用など内部で高速化の手法が使えますし、よくある画像効果なんてもう一から書きたい人いないでしょう? どうしても特殊なことをやるという時だけ、gfx_evalrectなどのような処理を書きたい感じ。

OpenCVとかなんかそういう系のライブラリでも組み込んでくれるといいんですけどねー。


画像のカラーヒストグラム表示

現在処理している画像のカラーヒストグラムを表示する機能も追加されています。

  • Analysis: Histogram (RGB)
    VP_Histogram01

[MonitorFX専用] 画像のピクセル色チェック機能

画像上の特定のピクセル色をVideo Window上で確認できるプリセットが追加されています。

このプリセットはMonitorFXにVPを挿入することを前提に作られています。MonitorFXはREAPERウィンドウ右上にある[MONITOR FX]のところをクリックして挿入できます。
MonitorFX01

このプリセットをMonitorFXで使うと、マウスカーソルをVideo Window上に持って行った時にそのカーソル位置での画像の色情報が表示されます。正確なカラー値を知りたい時に便利かもしれません。

  • Analysis: Color Peeker (Monitoring FX only)
    VP_ColorPeek01

[MonitorFX専用] スクリーンセーバー for Video Window

Video Windowにずっと同じ絵が表示されている状態を防ぐ、いわゆるスクリーンセーバーになるプリセットが追加されています。これもMonitorFX専用です。

[Timeout (seconds)]でスクリーンセーバー状態になるまでの時間を設定できます。

  • Utility: Screensaver (Monitoring FX only)
    VP_ScreenSaver01
    ※スクリーンセーバー状態になるとこんな感じ。色指定で少し緑色にしています

REAPERで動画編集:オシロスコープ・周波数スペクトル表示

音楽を再生するだけの動画などでよく使われる、装飾用の波形表示(オシロスコープ)や周波数スペクトル表示。いつの間にかREAPERのVideo Processor(以下VP)プリセットに追加されていました。

波形データを使った画像処理

そもそもオシロスコープや周波数スペクトルを表示出来るようにするためには、音声波形の情報をどっかから持ってこないといけないのですが、実はREAPER v5.97からそれを実現するための機能が実装されています。

JSFXの[JS: video sample peeker]が動画へ音声データを渡してくれるものになっており、このFXの次にVPを挿入してやることで、VP側で音声データを使った処理が行える訳です。

この順番でFXを挿入するとこんな感じ。
VP_VideoSamplePeeker01
2番目のFXはVideo Processorです(プリセットを切り替えたため名前が切り替わっている)。オシロスコープ・周波数スペクトルいずれもこの順で使うことが出来ます。


オシロスコープ

オシロスコープをもとにした映像効果を表示したい場合は、VPでプリセット [Synthesis: Decorative Oscilloscope with Blitter (requires JSFX video sample peeker)] を使用します。

[mode]パラメータで水平・垂直・極座標系の表示を切り替えられます。他にもいろいろパラメータがありますが、いじるとはっきり動きが変わるものが多く、さほど悩むことはないかと。
VP_OscilloscopeFX


周波数スペクトル

周波数スペクトルをもとにした映像効果を表示したい場合は、VPでプリセット [Synthesis: Decorative Spectrum Analyzer (requires JSFX video sample peeker)] を使用します。

このプリセットでは、同時に2つの方法で周波数スペクトルを表示出来ます。時系列のスペクトログラムが上側に、現在の瞬間的なスペクトルが下側に表示されます。[spectrogram size]の値を変えてやることで、画面上でのそれぞれのサイズの割合を変えたり一方だけを表示する事も可能。
VP_SpectrumFX



これらはシンプルなものではありますが、音声情報をもとにした映像効果を表示出来るようになったのはありがたいですね。

従来はVPが完全に描画プログラム用として閉じたシステムだったために、かなり制限が強い印象がありました。しかし、今回紹介したものを実現するための仕組み(具体的にはJSFXから共有メモリを使ってVPへデータを渡す仕組み)が新たに加わったことで、VPのプログラミングは恐らく別次元と言っていいほど自由度が高くなったと言ってもよいと思います(まぁそれを本気で使えば使うほどプログラミングが複雑化するのでアレですが)。

とはいえ、このあたりはまだしっかりと自分で検証出来てはいないので、どこまで出来るかはそのうちいいネタがあったら試してみたいですね。


このブログについて
ぺろりがREAPERで遊びたいというだけのブログかもしれない

必ずこちらをお読みください

twitter: @pelori

管理人用
  • ライブドアブログ