ページ

2015-04-16

Python + PyAV/Pillowでテスト用動画を生成する

動画を触っていると、テスト用の動画が欲しくなるのだけど、そこらを撮るとセキュリティやプライバシーが心配だし、かといってWebで探すのも好みのサイズや長さじゃないしで、自分で適当に動画作れるのが一番じゃね?ということで、さらっと作る方法を試してみた。

いくつか試して実際にできたのが、Pillowで画像を生成し、PyAVというffmpeg/avconvのライブラリlibavのPythonラッパーで動画化するという方法。ちなみに試してたのはUbuntu 14.04。

準備

依存ライブラリインストール

sudo apt-get install libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libswscale-dev libavresample-dev
Pillowに必要なパッケージが他にあったかも。

Pythonライブラリのインストール

pip install Pillow
pip install av
pipはvirtualenv下のやつを使うのがいいと思う。requirements.txt作れって?

すると、こんなスクリプトで生成できる。drawのところをちょいちょい変えたり、backgroundの色を調整したりすればいいかな。

けっこうローレベルな触りかたをしてしまった…

PyAVはimageにto_string()を呼んでくるのだけど、Pillowにはないので、tobytesを呼ばせるHackをしてある。

ちなみに、以下の感じでも目標が達成できることは後でわかった。なお音入り。avconvでもtestsrcはできるけど、sineはない。
ffmpeg -y -filter_complex testsrc=size=1280x720:rate=ntsc -filter_complex sine=f=440 /tmp/hoge.avi

0 件のコメント:

コメントを投稿