RSSフィード:

これまでのプログラムの動作をまとめると、

ランキングデータ等の準備(C# 自作プログラム)

音声データ、画像サムネイルの抜き出し(FFmpeg)

ランキングデータ、画像からランキング本編画面(画像)の作成(C# 自作プログラム)

画像、音声から動画を生成(Slide Show Movie Maker をUWSCで自動操作)

エンコード

アップロード(最初の半月は手動)

となります。

エンコードは通常の方法と同じです。エンコードの知識は全く無かったので、
ニコニコ動画まとめwikiに書かれている方法をそのまま用いました。
エンコーダはコマンドラインから実行できるので、自動操作は簡単です。

上の動作の1つ1つはそれぞれボタン1つで実行可能なようにしました。
プログラミングにかかった時間は2月の3連休の3日間だけですので、
それほど多くの時間はかかっていません。この後これらを全自動でできるようにし、
さらにニコニコ動画の仕様変更に対応していく方がむしろ大変だったりしたのですが、
その話は後日書きます。

というわけで、3連休の最終日の夜に第1回目の日刊VOCALOIDランキングが完成しました。
いよいよ公開です。

by rankingloid

ランキングデータの集計は、当時公開されているプログラムがなかったので、
自分でプログラムを書いて行う必要がありました。当時は「毎時間更新のデイリーランキング」が
あったので、そのランキングの18時更新分のデータを集計して使います。
プログラムでやることは、ランキングページのHTMLを取得し、タイトルや投稿日時、再生数、
コメント数、マイリスト数の数値などの情報を抜き出す処理です。
これらの処理はプログラミング言語C#でコーディングすることにしました。
C#の経験はこれまでほとんどなかったので、その勉強も兼ねていました。
Visual Studio .NET 2008(Express Edition)は無料で手に入る開発環境で、
自動インデントや、コード補完(インテリセンス)、デバッグ機能など、無料とは思えない便利な
機能がたくさんあります。C#で本格的なプログラムを書いたのは初めてですが、
Web接続(ランキングページ取得)や文字列処理など、Google で情報を検索しつつ、
なんとか書くことができました。

ランキング画面にタイトルや再生数などのポイント情報を表示するのは、
C#.NET の画像ライブラリを用いることにしました。.NET の画像ライブラリは非常に扱いやすく、
初心者の私でも画像生成が簡単にできました。たとえば、このようなコードが
書けます(一部省略してあります)。プログラミングを知らない人は雰囲気だけご覧ください。


※クリックで拡大します



静止画ですが、このようにしてランキング紹介部分が生成できました。

by rankingloid

日刊VOCALOIDランキングを自動化するにあたり、シーンの選択(どの部分を切り取るか)は
重要な課題でした。ですがここは何も考えず、60秒~80秒の位置を機械的に切り取ることにし、
後々に改良していくことにしました。60秒~80秒を選んだのも半分適当で、サビがくるのは
この辺りだろうということで、検証もせずに決めました。これが意外とうまく紹介できている様で
(できていないときもありますが)、2年近くたった今でもこの方式のまま変えずにきています。
そろそろ改良しようと思っているのですが、なかなか良い方法が思いつきません。


動画・音声の変換は初期の頃からずっと FFmpeg を使っています。
このソフトは様々な動画・音声形式を指定した形式に変換してくれます。
ありがたいことにオープンソースとして公開されていて、もちろん無料で使えます。
ただ、ソフト公式サイトではプログラム本体が配布されておらず、ソースコードだけが置いているため、
自分でソースコードをコンパイルするか、別の非公式配布サイトを見つけて入手する必要があります
(ライセンス的にこれは問題ありません)。このソフトの便利なところは、
コマンドラインから呼び出して使う形式なので、自動制御するのが非常に楽であることです。


たとえば、動画ファイルから音声を抜き出して、サンプリングレートを44,100Hzに変換し、
60秒から20秒間切り取るには、以下のコマンドを実行します。


ffmpeg -i video.flv -vn -acodec pcm_s16le -ar 44100 -ss 60 -t 20 output.wav


前回紹介した Slide Show Movie Maker では動画を扱うことはできないので、
ランクインした動画は70秒の地点を静止画で紹介することにしました。
動画ファイルから70秒の地点の画像を抜き出し、サイズを416×312に変更するには、
以下のコマンドを実行します。


ffmpeg -i video.flv -f mjpeg -ss 70 -vframes 1 -s 416×312 -an output.jpg


このように、FFmpeg はいろいろと細かなオプションを指定できるプログラムです。


by rankingloid

日刊VOCALOIDランキングを全自動で作ろうとしたのが2008年2月の頭です。
最初検討した方法は「マウス自動操作ソフトで Video Studio を操作する」というものでした。
マウス自動操作ソフトで有名なのは UWSC があります。これで実際試してみたのですが、
ビデオクリップをドラッグ&ドロップさせたり、タイムラインをスクロールさせたりする必要があり、
明らかに不可能でした。試してみるまでもなくわかりそうなものですが…

とりあえず、AVI(動画フォーマットの一種)を出力できるソフトを探しているうちに、
Slide Show Movie Maker (SSMM)というソフトに出会いました。これは jpg 等の静止画を
つなげてAVIに出力できるソフトです。ページ切り替え時のエフェクト等もついていて
結構高機能です(日刊ではエフェクトは使わなかったですが)。


Slide Show Movie Maker

Slide Show Movie Maker



プロジェクトファイルの形式がテキスト(.ini)だったので、自動生成に向いているのも
利点でした。唯一致命的に問題なのは静止画しか使えないことですが(このソフトの
趣旨からいうと仕方ないですが)、それは後から考えることにして、
とりあえずこのソフトで動画生成することに決めました。

SSMM本体の操作は、前述のUWSCを使ってマウスを自動操縦することで行います。
メニューをクリックしてファイルを開く操作と、「動画作成」ボタンを押す操作を
記録させます。(このくらいならプログラムの知識がなくても操作を自動記録する方法で
できます。UWSCはプログラムの知識がない人にも使えるお勧めソフトです。)

by rankingloid

当時の私は、動画を作ってアップすることもない、ただの一視聴者でした。
ニコニコ動画では、ランキング(当時はデフォルトのマイリストランキング)に掲載されている
動画を中心に(VOCALOIDに限らず)観ていたのですが、そのうち、ランキングからリンクを
クリックして動画を開くのも面倒になってきました。毎日の上位動画を0クリックで自動的に
再生してくれるプログラムがあれば欲しいと考えていました。

2007年11月ごろ、とある1本の動画に出会いました。

【ニコニコ動画】週マスが出来るまで ~週刊アイドルマスターランキング作業工程~

この動画はランキングの制作過程を、集計から動画編集まで解説しています。
最初のデータ収集以外のほとんどすべての工程を手作業で行っており、
しかも作者はそれを毎週続けているということで、恐ろしいほどの手間がかかっています。
これはあまりにも大変すぎるということで、もう少し手順を改良できないかと
(その頃自分はランキング制作者じゃなかったにもかかわらず)考え始めました。

この、動画の自動再生+ランキング制作の手間軽減、が「日刊ランキング」のアイデアの元に
なったと思います。ぼんやりと考えていた「毎日の動画をチェック」の機構が徐々に
頭の中で具体的な形になっていきました。それがだいたい2007年の年末ごろです。

色々考えているうちに、VOCALOIDというジャンルが日刊形式のランキングに向いていそうな
ことがわかりました。VOCALOID動画は、動画を開いて曲を1フレーズ以上聴いてみないと、
それが自分にとって良い作品かどうかわかりません。そして、VOCALOID動画は当時から
毎日何十本も投稿されており、それらをチェックするための動画として「週刊」では間隔が
長い(そして火曜日が待ちきれない)と考えていました。作るならまずVOCALOIDランキング
だろうと思い、アイデアを形にする作業に取り掛かりました。

by rankingloid

Page 2 of 3123