機動戦士ガンダムオンラインのCβを必死にやっていたら
200戦分(約6TB)ほど動画が貯まったのでせっせとエンコードしていました。
エンコードの作業は次の通りです。
- 録画ファイルをVirtualDubに読み込み(手動)
- 最初と終わりに入っているロードとか待機画面をカットして出力(手動)
- エンコード(バッチ)
ここで問題になるのが2の作業
単純に指定範囲を別ファイルに出力するだけなので
通常のファイルコピーとだいたい同じ100MB/秒程度の速度は出るのですが、
1戦分のデータが2~30GBと大きいため、5分ほど待ち状態になるわけです。
この5分の待ち時間が結構ばかにできません。
100戦超えた辺りから俺は一体何をしているんだという気分になってきます。
とりあえずCβ分はそのまま手動でやってしまったのですが、
今後Oβ~サービス開始となった時にこんなことやってられません。
俺は動画を見直したいだけでエンコしたいわけではないんだ!
作戦
カットする位置を調べるのはさすがに手動でやらねばならないのでこれは諦めます。
ただし、カット位置を指定したらあとはコンピュータ君に全てやって貰います。
調べたところ映像についてはAvisynthにTrimというそのものずばりな機能がありました。
x264に渡すAVSファイルにTrimを追加して解決です。
むしろ今まで何故使わなかったのか。
音声はエンコーダに渡すためにカットした上でWaveで出力したいわけですが、
AVSを渡すとWaveを出力してくれるavs2wavというのがありました。
映像と同じAVSファイルを使えるのでこれを使うことにします。
今日の本題
嬉々としてavs2wavを落として来て使用してみたのですが、
何故か9KBのファイルが出力されるだけという謎現象が発生。
オプションなど色々試したのですが改善されず、仕方なくソースを読むことに。
すると、とても短いコードだったので、
いいや書き直しちゃえと要点だけ確認して書き直してみました
avs2wav 1.0.0 (バグ有り →
修正版)
思いっきり類似品なので本家と間違われぬよう
64ビットバージョンも作って後ろに32とか64とか付けてみました。
本家の音量調整機能は使わないのでばっさり切ってあります。
本家と比べて有利な点としてメッセージが日本語です。日本人歓喜。
同様の現象でお困りの方はご利用ください。