強火で進め

このブログではプログラム関連の記事を中心に書いてます。

透過付きの動画ファイル(WebM)の作成方法

急いでる人向け

配布ファイル

ここに VP8 と VP9 コーデックの透過付き WebM ファイルを置いているのでお使い下さい。

自作

もしくは連番の透過画像ファイルを準備した後に FFmpeg を以下のコマンドで実行して作成。

ffmpeg -r 30 -i frame%04d.png -auto-alt-ref 0 -c:v libvpx output.webm

■オプションの解説

オプション 説明
-r フレームレート
-i 入力データ
-auto-alt-ref alternate reference frames(2-pass only)。0=無効、1=有効
-c:v コーデックの指定(※)。今回はVP8を指定

※指定しないと VP9 が使われる様です。 VP9 は Unity が対応していない様で、インポートに失敗します。対応している環境で使う予定の場合には VP9 でもOKです。

元画像の準備

Processing や openFrameworks に慣れてる人はそういうもので作成。

processingで透過画像を作る - Qiita
http://qiita.com/jonigata/items/c0ed59119338ab921eb1

Research scrap: openFrameworksで背景を透過させてキャプチャする方法
http://jun1chi.blogspot.jp/2010/02/openframeworks.html

ここでは Unity を使って作成する方法を解説します。

こちらに画面キャプチャ用の Unity プロジェクトを作成しているのでこのシーンに自分の作りたいオブジェクトを置いてキャプチャして作成して下さい。

nakamura001/Unity-ScreenRecorder: Unity の実行画面を画像ファイルに連番で書き出し。透過にも対応。
https://github.com/nakamura001/Unity-ScreenRecorder

今回の様に背景を透過した状態でキャプチャしたい場合にはカメラの Background のアルファ値を 0 に設定して下さい。


プロジェクトを実行した後に「Start Recording」ボタンを押すと Capture フォルダにキャプチャ画像が保存されます。

FFmpeg を準備

画像を元に動画ファイルを作成にするには FFmepg を使います。まだインストールしていない場合にはこちらのサイトからダウンロードして下さい。

FFmpeg
https://ffmpeg.org/

FFmpeg で画像ファイルから動画を作成

記事の最初に書いた「急いでる人向け」に書かれているコマンドを実行して動画に変更して下さい。

エラー

VP8 のコーデック

VP8 のコーデックがインストールされていない場合には以下のエラー文が出ます。コーデック付きでインストールしましょう。

Automatic encoder selection failed for output stream #0:0. Default encoder for format webm (codec vp8) is probably disabled. Please choose an encoder manually.
Error selecting an encoder for stream 0:0

auto_alt_ref のエラー

  • auto-alt-ref 0 を付けておかないと以下のエラーが発生しました。 -auto-alt-ref 0 のオプションを追加しましょう。
Transparency encoding with auto_alt_ref does not work