Linux で映像制作メモ

自分用の覚書です。

Shotcut

たまに不安定になるけど、いろいろできそう。

Google 先生の空気読むスキルが全開になると、検索結果が「shortcut」だらけになる不遇のソフト名。ショートカットでもなければキスショット・アセロラオリオン・ハートアンダーブレードでもありません先生。

Adobe Affter Effects の古いやつ(バージョン6.0?)ならライセンスを持っているので使えるんだけど、VM で動かした Windows 10 上でやるにはとてもかったるい。僕が Windows や Mac の人だったら迷わず Creative Cloud に契約するんだけどなぁ。というか、そろそろ Linux 版を出してください Adobe 様。

納豆が大好きな嫁ちゃん

切ったり貼ったりだけだったら ffmpeg や Openshot を使ってたけど、真面目にやろうと思うと Shotcut はかなり使えそうです。 HTML を画面上に重ねるフィルタがあるのはありがたい。外部のペイントツールで画像素材を作らなくても、WYSIWYG でそれっぽい文字や簡単な画像挿入ならOK。ちゃんと使えるようになろう〜。

フリー素材

音楽

Sound Cloud に Creative Commons なまとめがあった。

ところで WordPress の新しいエディタって Sound Cloud の URL (https://soundcloud.com/wearecc みたいなの) を貼ると、自動で組み込みプレイヤーにしてくれるのか〜。便利。

映像素材

適当にパーティクルをキラキラ飛ばしまくってる映像をジェネレートするジェネレータが欲しい。書こうかな。あるだろうな。

MPEG 圧縮泣かせの細かなパーティクルの★なんかが、大量に舞う映像は雑でも「わぁ、綺麗」と思わせるのにもってこいだし、パラメータを変更するだけで無尽蔵に作れるような素材はとても便利。CC の素材集や商用ソフトに頼らないんだったら Blender とかで作るのが早いかも。まだちゃんと調べていない。

NHK のクリエイティブ・ライブラリーで NHK が撮影した実写映像の素材が配布されてる。結構前からあるサイトみたい。

僕がNHKで映像制作をやってた時は、権利がガチガチの制限がついているイメージしかなかったけど、時代に則した形態になってきてるんだ。今もそうだとは思うけど、放送に乗っけられるフォントも限られていたから、イメージ通りのフォントから自作しなくちゃいけなかったな。

PCが壊れました。

表題のとおりです。より正確に表現すると、LMDE2 のパッケージマネージャの依存関係データベースがふっ飛んだ上に systemd などの OS の実行に必要な機能が使えなくなりました。

電源を入れても Linux Mint のロゴが表示されるだけで、init の次でコケている模様。ちょうど LMDE3 もリリースされていることだし、必要なファイルを避難させてインストールし直すことにしました。

ストレージ構成

元々の環境は以下のとおりです。

  • /dev/sda … GRUB
    • /dev/sda1 … スワップ領域
    • /dev/sda2 … 「/」にマウント。ext4。
  • /dev/sdb
    • /dev/sdb1 … RAID10 アレイ (1)
  • /dev/sdc
    • /dev/sdc1 … RAID10 アレイ (2)
  • /dev/sdd
    • /dev/sdd1 … RAID10 アレイ (3)
  • /dev/sde
    • /dev/sde1 … RAID10 アレイ (4)

RAID10 環境の復旧と、パーティションを切っていない 「/」 以下の必要ファイルの復旧が目的です。なお、sda は 256GB SSD、sdb 〜 sde はそれぞれ 3TB の HDDです。

ソフトウェア RAID ツールの mdadm を用いて、sdb1 〜 sde1 までの RAID10 アレイすべてを合わせて /dev/md0 として認識させていました。

サルベージ

まず、対象マシンが起動できないとどうにもこうにもならないので、別マシンで LMDE3 x64 の Live DVD イメージをダウンロードUnetbootin を使って、ブータブル USB キーを作成しました。

次に対象マシンの電源を入れ、ブートシーケンス設定で USB Key をプライマリに設定。作成したブータブル USB キーを USB ポートに挿して、LMDE3 をライブ起動しました。(…ライブ起動っていう表現でいいのかな。要は、対象マシンの内蔵ストレージにインストールせずに起動。)

ライブ起動した LMDE3 上のコンソールで /dev を確認すると、sda 〜 sde まですべて確認することができました。

SSDのsda1とHDDのsdb〜sdeたち。
sudo mkdir /mnt/sda1
sudo mount /dev/sda1 /mnt/sda1

/dev/sda1 をマウントすると、そのまま LMDE2 の「/」を覗くことができます。ここから必要なファイルを RAID ストレージに移動したいのですが、ライブ起動した LMDE3 には /dev/md0 がありません。

そこで、ターミナルより

sudo apt update
sudo apt install mdadm

とし、ソフトウェア RAID の mdadm を導入。

sudo mdadm --assemble --scan

すると、RAID アレイを認識し /dev/md/0 と /dev/md0 の仮想デバイスファイルが作成されました。あとはマウントして旧「/」配下のファイルを救出するだけです。

# マウントポイントを作成
sudo mkdir /mnt/md0
# マウント
sudo mount /dev/md0 /mnt/md0
# バックアップディレクトリを作成
sudo mkdir /mnt/md0/backup
# バックアップ
sudo time rsync -aAXv /mnt/sda1/ --exclude={"/mnt/sda1/dev/*",\
"/mnt/sda1/proc/*","/mnt/sda1/sys/*","/mnt/sda1/tmp/*",\
"/mnt/sda1/run/*","/mnt/sda1/mnt/*","/mnt/sda1/media/*",\
"v/lost+found"} /mnt/md0/backup; date

やたら時間がかかったので、 /mnt/md0 内にあるマンガを mcomix で読みながら待っていました。バックアップが終わったら、/dev/sda1 および /dev/md0 をアンマウントし、新しい OS をインストールします。

LMDE3 Cindy x64 のインストール

デスクトップにある「Linux Mintをインストール」アイコンから GUI で入れていきます。最近のディストリはインストールがとても簡単だし、Youtube を見ながらネットサーフィンしながらできるし、とても快適ですね〜。

ストレージの構成だけ注意して、 /dev/sda1 をこれまでどおりスワップ領域に、/dev/sda2 を新しい OS の「/」にして EXT4 でフォーマット。/dev/sda に GRUB をインストールする設定で進みました。

あと、セットアップウィザード中で行ったことといえば、僕は英語キーボード (PFU Happy Hacking Keyboard) を使っているのでキーレイアウトを US 配列にした程度です。滞りなくできました。

インストール完了後、USB キーを抜いて内蔵ストレージから再起動します。

環境の再構築

無事に起動できたら、また mdadm をインストール。マウントします。

sudo apt update
sudo apt upgrade
sudo apt install mdadm
sudo mdadm --asemble --scan
sudo mount /dev/md0 /mnt

OS 上で一度スキャンすると、/etc/mdadm/mdadm.conf にアレイ情報が書き込まれるようですね。

続いて、ユーザーやグループ情報の移動を行い、これまで使っていたソフトのインストールを行いました。

起動できなくなった時は少し焦ったけど、とりあえず使える程度までには現状回復できたし、ゴミファイルの整理にもなって良かったと思います。

イシューズ

下記は積み項目。

  • IMの調子が変。UIM で SKK 使いなんだけど、入力のタイミングでキーが変なことになったり、辞書を引き継げなかったり。
  • GeForce GTX460 の nVidia の公式ドライバの組み込みに失敗する。いや、組み込みはできるんだけど、cinnamon がクラッシュする。以前は lightdm を停止して X を殺して、端末から startx してたら起動できたけどそれも無理。んー、今のところ、noveau ドライバで問題ないけど…。グラボの替え時かなぁ。
  • 動画やコミックアーカイブのサムネイル表示が nemo でできなくなってる。ffmpegthumbnailer や ffmpegthumbs をインストールしても改善せず。謎ファイル名の動画が多いんで割と不便。
  • Ruby や Python といったプログラミング環境は必要になったら順次、入れていこうと思う。とりあえず Git は入れておいた。
  • オーディオや動画のオーサリングツール系も必要に応じて入れる。
  • LMDE3って標準で mozjpeg が入ってるんだ!

ffmpeg によるバイク走行動画のスタビライズ(手ぶれ補正)

アクションカメラ

アクションカメラで運転中の動画を撮影するととても楽しいです。

僕が一昨年購入したのは中華製ですが、安価といえど立派に撮影できます。マウント用のアタッチメントが最初からたくさん付属していて、防水ケースも付属。この手のものは他にもいくつも出ていますが、僕が購入したアクションカメラは、防水ケースに入れたまま USB で給電・撮影ができるもので重宝しています。

ただ、ハードウェアはもとよりソフトウェアでの手ぶれ補正(スタビライズ)機能がついていないため、撮れた動画はかなり「ガタガタ」しています。(Go Pro のような、ちゃんとしたアクションカムは補正機能があるのかなぁ)

振動が気になる

出来るだけ振動が少なく、実際に見ている視点と同じような画にするため、僕はヘルメットのチン部分にカメラをしばりつけています。それでも振動が気になる。エンジンや車体の振動というより、走行している路面そのもののガタつきの影響のようです。

比較的、路面がキレイな国道でこんな感じ。

体が振動して視点位置が細かくズレても人間の目は優秀で、注視点をトレースしてモノを見ます。そのため、実際にはもっと滑らかな動きとして目に映っています。

Youtube の手ぶれ補正

Youtube に手ぶれ補正機能があったな。と思って調べてみると、動画をアップロードする際に設定ができたクイック加工の「スタビライズ」は、2018年8月頃に使えなくなったみたいです。残念。

なお、最近は Youtube Studio (β)なるものが出てきて、ブラウザ上で簡単な編集ができるみたいです。あくまでも、まだ「簡単な」編集だけのようですが、今後に期待。

ffmpeg の vid.stab プラグイン

動画で困った時の駆け込み寺、ffmpeg でのスタビライズについて調べてみると、とても強力な vid.stab というプラグインがある事が分かりました。

公式のデモビデオがスゴい!

左側の元動画はこれだけブレブレなのに、右側の補正後の動画はとても滑らか。

さっそく手元の ffmpeg でも使えるか見てみます

$ ffmpeg 2>&1 | grep -o enable-libvidstab
enable-libvidstab

コンパイルオプションに –enable-libvidstab が入っています。わあい、使えるようです。こちらのページを参考に元動画 rec.mp4 に補正をかけて out.mp4 として保存します。

ffmpeg -i rec.mp4 -vf vidstabdetect -an -f null - && \
ffmpeg -i rec.mp4 -vf vidstabtransform -y out.mp4

最初のコマンドで手ぶれを検知して transforms.trf という情報ファイルを生成し、次のコマンドでその手ぶれ情報を用いて補正をかけるようです。補正できた動画がこちら。

おおー、良い塩梅!

画面右下にある日時表示が動いているのが、映像を主体にして手ぶれ補正されている証拠。もっと細かなオプションもあるようなので、さらに調整するとヌイヌイと進む映像になりそうです。

僕が使ってきた携帯電話たち

ついこの間「新世紀になった!」と思ったら、気付けばもう2019年になってしまいました。僕が初めて移動体通信音声デバイスを運用したのは、今から20年前の1999年。ちょうど良い節目なので、これまでどういうデバイスを使っていたか、覚え書きとして書いておきます。

1999年春〜 ケンウッド ISD-P67

中学3年生の時に初めて持った PHS です。元々、母が契約・購入したものですが、あまり使う用途がなかったのか、おねだりしたら貰うことができました。

当時は中学生で携帯電話・PHSを持っている人は少なくて、クラスでも片手で数えられる程度だったと思います。最近話題になっていたポケベル世代、よりはちょっと後なので、「携帯電話・PHSを持っているか否か」で考えてOKと思います。

本体カラーは白。画面はモノクロ液晶で、緑色のバックライトでした。着信音は単音。通話とショートメールに対応。

今のデバイスと比較するととても質素ですが、持っているのと持っていないのとでは大違いでした。中学生なので、用途はもちろん友達との遊び用です ;-D

1999年冬〜 東芝 C301T

高校生の頃に使っていた cdmaOne に対応した携帯電話。当時はまだ KDDI じゃなくてセルラーだったと思います。

本体カラーはシルバー。画面はモノクロ液晶で、オレンジ色のバックライトでした。前の PHS に比べれば格段に表示できる情報量も多く、Eメールにも対応。それまで PC でしかできていなかったEメールが手元のケータイでできて、夜遅くまで友達とつながっているのはとても楽しかったです。Emoji が進化してきたのもこの頃ですね!

着信音は三和音で、EzWeb によって i モードサイトの表示もできていました。

高校生世代とその当時の背景から、周辺でもケータイ保有率が一気に上がった気がします。高1の頃はクラスの1/3、高3の頃には、クラスの2/3くらいは持ってたんじゃないかな。

着メロ作りや、携帯電話でも閲覧できるホームページ作成など、それなりに楽しかったです。

2002年冬〜 カシオ A5302CA

高3の冬から使っていた携帯電話。カラー液晶を搭載して、(僕として)初めての着うた対応モデル。本体は白。

他社が「写メ」という言葉を出してきた頃で、au ケータイにもカメラが付きました。写真が撮れてメールに添付できて表示ができる…コレはスゴい。

広い画面でカラー画像が見れるし、今まで電子音だった着信音が音楽になったのは感動でした。マルチメディア時代の到来ですねー!

2004年秋〜 三洋電機 W22SA

専門学校生の時に購入した携帯電話。CDMA 1X WINで、BREWアプリ対応しています。本体は青。サブディスプレイが搭載されていたのは地味に便利でした。

この機種の前と後はそれなりに良い進化が分かるのですが、この頃のケータイはあんまりパッとしません。驚くような進化率じゃなくなってるって意味です。知らないだけで色々と新しい技術が盛り込まれているんでしょうが…

電話ができて、ケータイサイトが見れて、アプリが充実して、メールができて、写真が撮れて、音楽が聴けて、ちょっとした動画の撮影・再生もOK。

2008年秋〜 カシオ W63CA

地元に戻ってきた頃に購入した携帯電話。カシオのデジカメ EXILIM の機能を盛り込んだ「EXILIM ケータイ」らしく、カメラレンズがかなり大きいです。画面をひっくりかえすと本当にコンデジのような見た目になります。始まったばかりのワンセグのチューナーも搭載。本体は黒。

ワンセグチューナーを搭載した機種は初めてだったので、一人暮らしの僕にとっては良い相棒でした。風呂でもトイレでも自室でも簡単に持っていってテレビを見ることができます。

コンパクトでおさまりも良く、操作性も悪くなかったのですが、バッテリーの持ちが怪しくなってきたのと、世界がスマートフォンのビッグウェイブに乗りかけている時期だったので、次の IS01 に買い替えをすることにしました。

2010年秋〜 シャープ IS01

Android 1.4 搭載の au 初の Android スマートフォン。結果から言うと地雷でした。腐ってやがる…早すぎたんだ…!

ここから数年間、携帯電話を携帯しない率が高くなります。

ハード的なスペック不足と初期の頃の不安定な Android のために動作がカクカク。着信があっても、タッチ操作の処理が追いつかずに電話がとれない事もあるレベルでした。電話ができない電話機っておま。

この端末を持ってからほどなくして、au とのインターネット通信 (2Gかな?) を解約して音声プランだけにしました。インターネットはモバイル Wi-Fi 経由で、事業者は日本通信 b-mobile。

当初は月額費用を抑えるためと、PC でテザリングをするために通話と通信の事業者を分けて契約したのですが、携帯でネット接続するたびにモバイル Wi-Fi を携帯して電源を入れて接続して…のくりかえしの煩雑さに嫌気が差し、モバイル Wi-Fi を携帯しなくなりました。すると、もろもろの割引サービスが全解除されて高額な通話しかできない・デカい・遅い IS01 を不携帯、という現象に拍車がかかりました。

メリットは、広くて自立する液晶画面とワンセグチューナーを搭載しているので、小型テレビとして使える点。レトロゲームのエミュレータを入れて携帯ゲーム機にするとおさまりが良い点、くらいかな…。

2014年2月〜 シャープ SHL22

IS01 から4年。「そろそろ Android も脂が乗った頃で、買い替えても良いだろう…」と購入したスマートフォン。

2017年6月〜 ASUS Zenfone 3

Honda VRX Roadster の 3D モデルを作ってみました。

複数の写真から 3D モデルを生成できる 3DF Zephyr を使って、VRX の 3D モデルを作成してみました。FBX モデルにして sketchfab にアップロードしたモデルを貼りつけておきます。

画面内をマウスでドラッグ、または、指でスワイプするとモデルを回転させることができます。環境によっては表示されない場合があります。

元にした写真はこんな感じ。

まー、ディティールはさておき、普通のカメラで適当に撮影した二次元の写真からここまで立体モデルを起こせるのは面白いですね!

勤め先に、レーザースキャナー計測をしている部門があり、たまに話を聞くこともあるので、このお手軽さは驚きです。

特に VRX はマイナー車種すぎて、インターネットで探しても図面データがないので大雑把なパーツの検討をする時に使えそうです。

もし、チャレンジしてみたい方がいらっしゃれば、3D 化の手順を記事にて解説しますのでコメントをください。

LMDE(Linux Mint Debian Edition)2 で Google Drive を使う

Linux で Google Drive を使う方法は google-drive-ocamlfuse 一択かなーと思っていたら、Grive というオープンソースのソフトを知ったので入れてみました。google-drive-ocamlfuse は fuse でマウントできるのに対し、Grive は Windows 版の Google Drive クライアントのように同期させるためのソフトです。(Google ドキュメントで作成したファイルは同期されません)

fuse でマウントすると、ローカルにデータを置いておかなくてもバックエンドで Google Drive にアクセスして省スペースになりますが、ネットワークが切れたり、通信コストを抑えたい場合に厄介です。Grive は二重にデータを保持するもののネットワーク環境がなくてもデータが利用可能ですし、Grive を単体で使うと自動同期もしないので、ユーザーが好きなタイミングで同期することができます。

自分にぴったり…! ピコーン (‘A`)

公式サイト

LMDEやDebianのリポジトリにあって、APT で降ってくる grive を最初に入れたものの使えず、調べてみると新しいバージョンを使った方がいいらしいです。 ということで、Github から入手してビルドします。

インストール方法は、公式の手順のとおりです。

1. ビルドに使うものをインストール

C++ 方面の団体さんがお着きです。

sudo apt-get install git cmake build-essential \
  libgcrypt11-dev libyajl-dev libboost-all-dev \
  libcurl4-openssl-dev libexpat1-dev libcppunit-dev \
  binutils-dev

2. ダウンロード、ビルド、インストール

cd /tmp
git clone https://github.com/vitalif/grive2.git
cd grive2
mkdir build
cd build
cmake ..
make -j4
sudo make install

インストールすると次の位置にコマンドが配置されました。

$ sudo make install
[ 78%] Built target grive
[ 83%] Built target btest
[ 98%] Built target unittest
[100%] Built target grive_executable
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/bin/grive
-- Installing: /usr/local/share/man/man1/grive.1
$

3. 初回設定

初回の Google アカウント認証は WWW ブラウザ経由で行います。 同期用のディレクトリは作成されないので、自分で作って移動します。 最初、ホームディレクトリで grive コマンドを実行してしまい焦りました。(-p dir オプションを指定することにより、ディレクトリを指定することも可能。省略時はカレントディレクトリです。)

$ mkdir ~/GoogleDrive
$ cd ~/GoogleDrive
$ /usr/local/bin/grive -a

-a オプションが初回の認証を行うオプションです。認証用 URL が印字されるので、そのリンクを WWW ブラウザで開きます。

$ /usr/local/bin/grive -a
----------------------
Please go to this URL and get an authentication code:

https://accounts.google.com/o/oauth2/auth?... # ← 認証コード

-----------------------
Please input the authentication code here: 
(ここに認証コードをコピペ)
Reading local directories
Reading remote server file list
Synchronizing files
...

認証コードを貼りつけた後は、Return キーを押してそのまま待ってください。手癖で C-d などタイプしてしまったら、そのまま終了してしまいます(終了させてしまいました)。 あとは Google から降ってくるファイルを淡々と眺めていくだけです。

初回の同期に終了すると

Finished!

と表示されてコマンドが終わります。

4. その後の同期

あとは、

$ cd ~/GoogleDrive
$ /usr/local/bin/grive

または

$ /usr/local/bin/grive -p ~/GoogleDrive

とすれば、同期することができます。Ubuntu では grive-tools パッケージを入れたら常駐型の GUI ソフトが入って自動同期してくれるようですね。僕の場合は、Git のプッシュとプルのようにマニュアル同期の方が助かるのでこれ以上の設定はしませんが、ユーザー権限で動く grive を cron に登録しておけば自動同期も可能だと思います。