連番画像ファイルから動画作成

ffmpeg を用いた変換

もし,ffmpegがインストールされていない場合,インストールする.

$ brew install ffmpeg

あとは以下のようにして連番のpngファイルを変換する.

$ ffmpeg -i images%04d.png -pix_fmt yuv420p movie.mp4

その際,-pix_fmt yuv420pのような指定をしないと,QuickTimeやKeynoteで表示できない可能性があるので注意.

ffmpegのファイル読み込みのパターンマッチングは少し複雑.例えば,images0000.pngimages0002.png,…のように,数値が連続していない場合,上記コマンドでは上手くいかないため,次のようにする必要がある.

$ ffmpeg -r 6 -pattern_type glob -i 'images*.png' -pix_fmt yuv420p movie.mp4
  • -pattern_type globとしてシェルのマッチングのようなことを可能にする.
  • -i 'images*.png'のように,アポストロフィで囲んで*を渡してやる.
  • -r 6: 一秒間のフレーム数を指定.(他にもいろいろな指定方法がある.)

ImageMagickのconvertコマンドを用いる方法もあるが,その場合も上記のようなオプション指定ができるのか不明.

それぞれの画像が余白を含んでいて,画像の一部を切り取りたい場合は,以下のようなオプションをつける.

-filter:v "crop=w:h:x:y"
  • w: 切り取る四角の幅(width)
  • h: 切り取る四角の高さ(height)
  • x,y: 切り取る四角の左上の(x,y)座標.おそらく,左上が(0,0).

上のオプションを使うと,次のようなエラーが出る場合にも有効.(サイズが奇数pixelだといけない?)

height not divisible by 2 (1280x945)

次のようにして,出力動画サイズ(幅・高さ)をダイレクトに指定して変更する方法もある1.この場合,幅・高さの片方に -1 を指定するとアスペクト比を維持して変更される.しかし,やはりサイズが奇数となるとエラーとなる.

-vf scale=1280:960

ImageJ

ImageJというフリーソフトがあり,

  • 動画にしたい連番ファイル全てを空のフォルダに入れておく.
  • 「File > Import > Image Sequence…」からそのフォルダを指定する.
  • 「File > Save As > AVI… 」で動画ファイル出力する.

ファイル数が多すぎると,メモリが足りないというエラーが出ることがあるが,「Edit > Options > Memory & Threads…」から使用メモリを増やすことができる(要再起動).


mount_afpコマンドでAFP共有フォルダをマウント

mount_afpコマンドは,AFP共有を行うためのコマンドで,

$ mount_afp afp://[username:password]@host.domain/directory /path/to/mountpoint

host.domainにあるAFP共有フォルダを/path/to/mountpointフォルダへマウントすることができる. passwordをベタ書きできない場合,

mount_afp: AFPMountURL returned error -1069, errno is -1069

のようなエラーが出ることがある. そんな場合は,-iオプションをつければよい.

$ mount_afp -i afp://username@host.domain/directory /path/to/mountpoint
Password:

でパスワードは(おそらく)暗号化され,マウントが成功するはず.


speedtestコマンド

ネットスピードを測定するコマンドラインツール. brew から( speedtest_cli として)インストールできる.

$ speedtest --list | grep Switzerland
3904) Cortex IT SA (Lausanne, Switzerland) [1.85 km]
3930) AlpineDC SA (Lausanne, Switzerland) [1.85 km]
7483) Swiss Network SA (Lausanne, Switzerland) [1.85 km]
7526) SIL Citycable (Lausanne, Switzerland) [1.85 km]

のようにいろいろとリストが表示されるから,そのうちの一つを指定して実行する.

$ speedtest --server 7526
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Ecole Polytechnique Federale de Lausanne (128.179.180.20)...
Hosted by SIL Citycable (Lausanne) [1.85 km]: 73.733 ms
Testing download speed........................................
Download: 75.74 Mbit/s
Testing upload speed..................................................
Upload: 75.60 Mbit/s

Netflix提供の https://fast.com/ にアクセスすることでもインターネットスピードを測ることができる.


Favorite Apps

Obsidian

Note-takingアプリ. 以前は Evernote, Quiver なんかを使っていた. Markdownでノートを取るのだが,各ノート(ページ)をアプリの特殊なファイル形式で保存しているのはなく一つのテキストファイルとなっているから,他のアプリで開くことも容易.しかもローカルファイルとして保存しているため,オフラインで使える.

wiki風リンクとbacklinkをたどる機能があるので,ノート間を繋げていくことができ,巷で流行っているZettelkastenを実装することができる点が良い.

ちなみにこのサイトは Obsidian で書いたものを Quartzを使ってウェブサイトに変換している.

Karabiner-Elements

キーバインドを変更するのに重宝するアプリ.他にもいろいろとできるようだが,macのMicrosoft製品が最もキーバインドがひどいので,それを修正するために必須のツール.

Workflowy

TODOアプリ.見た目も使い方も非常にシンプル.高機能性を求めないのであればこれで十分.

ココから登録すると月毎のエントリー数が増えるからハッピーになれる(僕も).

iTerm2

標準の Terminal の代替アプリ. タブ内の画面分割など,Terminalよりも少し機能が豊富と思われる.

Paperpile

文献管理ソフトとして Papers, Mendely を試してきたが,最近は Google が作ったサービスである Paperpile を使っている.Google Chromeの機能拡張を使うと,論文ウェブページから直接 Paperpile に登録することができる.しかしこれはmacアプリというわけではなく,ウェブサービスなので,オフラインでは使えない.

gnuplot

グラフ作成ソフト.Emacsにgnuplotモードを導入すると少し便利になる.

LaTeXiT

Mac用の LaTeX をインストールしたらこれも一緒にインストールされる. ここで簡単な数式を作成して,それを Keynote にコピペすることで簡単に数式をスライドに挿入することができる.

PlainCalc

電卓アプリ.普通の電卓とはちょっと違って,テキストエディタに計算式を書いたら結果を出してくれる感じ.計算の履歴も残るから電卓アプリよりも便利.

potrace

ラスター画像(BMP)をベクトル画像(EPS)に変換してくれるソフト.MacのソフトというよりはLinuxのソフトかな? まだ一回しか使用していないが,色々な場面で使える気がする. brewでインストールできる.

$ brew install potrace

使い方は,

$ potrace bitmap_image.bmp

とするだけで,アウトライン化されたbitmap_image.epsが作成される. JPEGのような画像は,Photoshopでbmpに変換するプリプロセスが必要.その際に,コントラストやレベル補正を調整してアウトラインが明確に出るようにしておくと良い.

Footnotes

  1. 【ffmpeg】動画の解像度を指定してリサイズ、アスペクト比を維持したまま解像度を変更する、回転する