uzullaがブログ

uzullaがブログです。

カンファレンスなどの長回しの動画を良い感じに分割するffmpegの話

ちょうど一月前に開催されたヤパチーエイジアハチオウジというカンファレンスでは、がんばって動画を録画しておりました。

主要な動画はアップロードが完了しており、絶賛公開中でございます!是非みなさんみてください!!

www.youtube.com

皆さんは忙しいので最初にオチ

タイトルの事をさっさと話せという感じですね。オチから言えば、長回し派の人はこれをつかえ!!(ババーン)

ffmpeg -ss 2035 -i raw/croom-7_2.mov -t 2475 -c:v copy -filter_complex highpass=f=500 ./C_1_hisaichi.mov

わかる方はもうOKでございます。

この後は蛇足的にこれの意味や意義を説明していきます。

動画の公開は大変である

様々なカンファレンスや勉強会が開かれる昨今ですが、録画が後日公開される事は少ないです。これは単純に大変なのです。

  • 機材を買うなり借りるなりして
  • 現地によっこらともっていって
  • 良い撮影ポイントに三脚をたて
  • けられないように囲って
  • 結構遠くから電源ケーブルをひっぱって、それもけられないようにして…
  • ビデオカメラの使い方をおぼえて(おぼえてる人を用意して)
  • 色々な映像設定を調整して(あるいは設定をオートにもどして)
  • 色々な音声設定を調整して(あるいは設定をオートにもどして)
  • トーク開始前にちゃんと録画を開始して
  • (場合によってはトーク毎に停止して)
  • 終わったら機材を丁寧に撤収して
  • (ここらへんでイベントの打ち上げがある)
  • 機材をもってかえったり、発送して
  • PCに動画を転送して
  • めっちゃやる気をだして
  • 編集して
  • エンコードして
  • Youtubeにアップロードして
  • メタデータを付与して
  • 宣伝する

といった大変さがある。ほんとうに大変よ!

この中で一番怖いのが「録画ミス」ですね。録画をミスるとすべてがなかったことになる。なお、今回初日の頭2トーク分でやらかしております、大変申し訳ございません。

事故原因は単純で、録画開始忘れです。セッティングがおわったあとに「まだ開始時刻ではないから…」と停止してしまった*1模様。ミスを防ぐには、カメラを立てた後は無駄でも録画しっぱなしにするしかないと思う。

まあ、本来見回るオペレータをちゃんとつけられるといいのだけれど、なかなかカンファレンスで人をアサインしていくのはむずかしい…*2。そうなると、ヒューマンエラーを防ぐために、録画のボタンを出来るだけ押さない、みたいな運用をした方が良い(と、私は信じている)。

つまり長回し(朝に録画ボタンをおして、その後は触らない)になる。

本題!長回しの動画をどうやってチョップしていくか

と、いうことで、あなたの手元には長回しの動画、20GBくらいの8時間くらいの動画ができました!(実際にはそれがトラック数x日数)

さあ、これを切っていくぞ!という事になるのですが…。

ビデオ編集ソフトといえば何をつかいますか?いまでこそMacならiMovieや、Adobe CCでPremiereとかのソフトは気軽に使えるようになりましたね。でも、実際にこれで8時間*4トラックとかやると大分大変。

なんというか、こういったソフトはバッチ処理ができないんですよね(俺がしらないだけかも知れない)、なのでつきっきりになる必要がある。

  • 「1本分設定したぞ!(これはそんなに時間かからない)」
  • レンダリング!」
  • 「終わらない…(エンコードはすごいCPU使う)」
  • 「(ちらっ)終わったかな?…おわってない。飯でも食いに行くか…」
  • 「(5時間後)忘れてたけどおわってた!」
  • 「さっきやったことと同じことをまたマウスポチポチでござる…」

こんな感じで「普通のお仕事をしながら隙間時間にやろうとすると」、精々1日に数本しかつくれない。それが何日も(何ヶ月も?!)続く…。

苦行!!

20160802 追記

Premiereはレンダリングをまとめておこなう事が可能とのことです(試してはいません)。

ということで!

当初の通りですが、これが使える!!(ババーン)

ffmpeg -ss 2035 -i raw/croom-7_2.mov -t 2475 -c:v copy -filter_complex highpass=f=500 ./C_1_hisaichi.mov

説明していきましょう。

その前に、ffmpegのすばらしいところ

ffmpegはリアルタイムな編集プレビューこそできないが、バッチ処理が出来るので最高。

手元のPCでシェルスクリプトをつくっておけば、別のPCで全く同じ動作をしてくれるのも最高です。*3私はメインマシンを占有されたくなかったので、動画をUSBHDDに保存しておいてあまってるMacbookで回しました(アップロードも同様)。

今回は単なるカット編集なので、「開始時刻(ss)」「開始時刻から何秒で終わらせるか(t)」がパラメーターになります。

開始時刻をどうやって計るか?

普通にメディアプレイヤーで「…このトークは1:34:09から開始だ(メモメモ)、で、2:05:10に終わりと…(メモメモ)」とやっていきました。

大体8時間の動画をチェックするのに(内容を精査しないのであれば)15〜30分くらいですかね。そして、この作業はスケールします!何人かで手分けすればすぐにおわるでしょう。

難点として、ffmpegのオプションでは「すべてを秒」で表現するのですが*4Macで再生時間を秒で表示できるプレイヤーをみつけられなかったので、H:i:s -> s の変換は適当にやり*5ました。

20160802追記

カンファレンスなどの長回しの動画を良い感じに分割するffmpegの話 - uzullaがブログ

ffmpegのオプションは秒じゃなくても-ss h:m:s -t h:m:sと指定できます

2016/08/02 22:03
b.hatena.ne.jp

とのことです。すごい!ちゃんとドキュメントみればよかった!

-c:v copy のつよさ

これを指定することで、動画のエンコードを変換しません。動画のトランスコードが発生しなければ5〜40倍速くらいで変換できるので非常に高速です。(ffmpegの都合ですが、拡張子はソースとそろえないとエラーになるとおもいます)

-filter_complex highpass=f=500 について

この指定は音声フィルタです、ここではハイパスフィルタで低音を消しています。

今回はカメラの設置場所の都合で、ソース映像が反響音でこもった音になってしまい、相当に聞き取りづらかったのでそれを解消しています。

私がつかっているメディアプレイヤーのMovistには音声EQがついていましたので、それをつかって何Hzあたりをおとせば聞こえやすくなるか確認し、500hz以下を切り飛ばせば聞こえやすくなることがわかりました。(これは会場や機材にもよるでしょうが)

本来、音声クオリティは録音時にがんばらないとどうしようもない。

  • 環境音をへらす、ひらたくいえば観客からマイクを離す
  • 良い機材(ガンマイクなど)をつかう、LINEからひろう、ワイヤレスで登壇者につける
  • 機材由来のホワイトノイズなどをへらす
  • 壁からの反響をへらす

どれもこれも大変です。しかし「美しい音」は目指さずに「なにいってるかわかる」というレベルにするだけならバンドパスフィルタ(なり、ハイパスなり、ローパスなり)を通すだけで大分よくなりますね。

動画にはポッドキャストとちがって画面がありますからね、そんなに音をパーフェクトにしなくとも(私的には)気にならない。

YoutubeへのULについて

あとは、バッチで生成された何十個ものファイルをガッとつかんで、とりあえず限定公開モードでブラウザ内にドラッグアンドドロップでイナフ!

…といいたいところなんですけど、ブラウザによってはFile APIDnDだと2GB以上のファイルをアップロードできないことがあります(ファイル選択ダイアログから、1ファイルだけ選んでのアップロードは大丈夫だった)*6

これ、タチが悪い事にエラー表示が発生しないので後で気付きます、アップロードしたらかならず数を数えましょう。

アップロードできたら…

あとはちまちまとなおして公開にしていきましょう。

大変ですが(やるき的な意味で)ここも多人数でやっつけられるタスクです。

以上です

結局一ヶ月くらいかけて60本弱の動画を公開したのですが、ほとんどが

  • ちまちましたテキスト入力が大変
  • これをやって給料がでるわけではない^^
  • つらいご意見で心にダメージ

といった感じの「やるき」の問題でした。なので、やる気さえあれば、このスキームで一週間で100本位いけるんじゃないでしょうか。

逆に、いまさらではありますが、10本くらいなら根性でiMovieでやったっていいとはおもいます。

ということで、以上です。

以下はあるあるネタ(愚痴っぽい)なので、本当にカンファレンスで動画を公開する羽目になった方以外は、平和の為に速やかにタブを閉じるなりをお願いいたします。

むずかしいところ

ネット上にアップロードしたコンテンツは挨拶代わりに「クソ」ってすぐに言われます。とにかく「画面がちいさい、バカなの?」「動画の音がクソすぎる」って本当に、必ず、すぐにいわれます。*7

彼らには本当に(本当に!)悪気とかはなくて、指でネットと電脳結線された皆さまは(良い悪いではなく)率直に脳内を高速シェアしているだけです。しかし、公開する側からすればそんな視聴者側の事情はそれはそれでしったこっちゃないわけで、なにかと布団にはいりたくなります*8

とはいえ、どんなにつらい気分になっても公開しないと情報は後世にはのこらないのです。完璧はめざさず、辛い意見から目をそらしましょう。なお、相当に金と手間をかけても「この動画の最前列にすわってるやつが咳をしてて最悪、どうにかできなかったのか」といわれて結局つらいだけです*9。なんとかやっていきましょう(私は誰に言っているのだろうか)。

しかも、あまり見てもらえるワケでもない…

身もフタもないんですけど、皆さんにきいてみると「動画を公開してくれ!」と言われる割には、割と皆さん見ないwウケる〜w

~モチベーションになるからみてくれ!!~

Youtubeは非情にも再生数を公開しているので皆さん確認してみましょう、多くて三桁、大体二桁でございます。この人数(PVなので、UUはさらに減るよね…)の為に機材を用意して、後日編集して…というのは完全に厳しい判断に迫られる。

みなさんに見ていただけない理由は色々想像できますが、Youtubeって隙間時間で見づらいんですよね。Youtubeのダウンロード再生は規約で禁止されているし…。これがポッドキャストならもっと見られるのかな…って思うんですが…。

(ところでビデオポッドキャストというものがあるらしいが、詳しい人いらっしゃいますかね?)

それよりもスタッフ救済の意義

話がかわるようですが、カンファレンスの現場ボランティアスタッフ(特に部屋担当)は、当日担当箇所に張り付いている必要があります。そうなると自由に見たいトークを聴講できない。勿論主催である私もみれない。

スタッフはカンファレンスが好きだからこそ協力してくれているのに、その人達がみれないのでは寂しいですよね、そのためにも録画して後で共有してあげたいですよね。ということで、公開前提ではない録画というものが結構あります。

(これはNG動画のチェックなども不要だし、メタデータを付ける必要もないので大分楽だったりします)

ということで、やはり公開しないにせよ録画はしていきたいですね。

以上です

カンファレンスのトーク「録画」の情報は余りシェアされません。事例がそんなにないからね、しかたないね。結果として属人性がかなり高いタスクになっています。

「どこのカメラがいいのか」(10万以下ならSONYを買っておけと私は思います)、「録画の画質設定はどうすべきか」(長回しではMP4は罠、AVCHDでないとギャップが途切れる&720Pの低ビットレートで十分)みたいな情報を一つとっても、詳しい人にきかないとよくわからない。

ということで、本エントリを書いたのでした。

なんか竜頭蛇尾になってますが、愚痴の箇所をかいたらつかれてしまった。

繰り返しになりますが、Youtube以外の、お金をあまりかけずに、スマホで通勤中オフライン再生できるいい感じのメソッドをご存じの方がいらっしゃれば、是非教えて下さい。

しかし、もう開催から一ヶ月経ったのか…時間が経つのは早いですね!

以上です。

*1:まわしっぱなし前提だったので、丁寧に止める人がいるとはおもっていなかった、そしてその周知が徹底されていなかった

*2:「慣れている人」ならいいけどボランティアスタッフは大抵素人の人が多いので

*3:ただ、ffmpegのバージョンはそろえておきましょう

*4:多分それしかない

*5:PHPでコードをかき

*6:なお、個人的にはSafariが一番安定してアップロードできると思います。

*7:言われない場合、多分見られていない

*8:剤などもありますが、個人的にはつらいことがあったら一旦寝るのが一番だとおもっています!

*9:たんなる実話ですが、りろんじょう出来る事でも、そこまでやるわけないやろ…