みるきぃはうす

ダビスタ99の攻略や、かつてニコニコ生放送で開いていたBC「みるきぃ杯」の情報があります。レトロゲーム大会の話も多め。

kakorokuRecorderで保存した読めないflv動画の変換

ニコニコ生放送をkakorokuRecorderで保存したflv動画で、容量はあるのに再生しようとしても開けない、変換ツールを使っても変換できないやつを読めるようにするやり方を備忘録として書き残しておきます。

 

この読めないファイルですが私の環境だと2016年2月辺りの動画でちょくちょく発生しているようです。この時代は長時間放送だと30分ぐらいの区切りでファイルが分割しているので、結合する際に読めないファイルがあったりすると全体の編集に影響を及ぼすので難儀です。

kakorokuRecorderの配布先でもflvrepairという修正ツールを作っていたようですが、このツールでも残念ながらうまく行かないのいがしばしば。そこで私は「Hugflash」と言うツールを使っていました。

このツールは元来フラッシュ動画のSWFの内部データを抽出するもののようですが、flvファイルから映像と音声を抽出することも可能なようで、このような読み込み不可能な動画から読める部分だけを引っ張り出してくれます。設定にもよると思いますが私の環境では音声なしのmp4ファイルと、音声だけのm4aファイルに分割されました。

ただこのファイルを連結する際私はAviUtlを使用するのですが、mp4は拡張編集にドロップしてそのまま読み込めるものm4aは読み込めない。一見変換しないといけなさそうですが、ここは拡張子をmp3にすることであっさり読み込めます。

この際、音声データより動画データのほうが若干短くなっています。もともと仕様上の問題なのかkakorokuRecorderで落とした動画は最初の数秒が音声だけのものがほとんどなのでおそらくその部分が欠落してるのかと。これは動画と音声の後ろを合わせると音ズレなく結合できます。複数の動画を連結させる場合、動画が欠落してる部分に関しては各自うまく調整すればいいでしょう。私は真っ暗が数秒続くのは嫌だったので最初のフレーム画像をコピー、数秒間画面は止まって音声だけ流れる状態にしました。

なお、実際のフレーム数に対して動画のフレーム数があってない場合があります。私は当時24フレームで配信していたのですが、抽出された動画は23.81フレームと中途半端な数字になっておりその分短くなっていたので音声との同期が取れない状態になってました。これは動画の再生速度をその分遅くすれば対応可能で、この場合再生速度を99.2%(23.81÷24×100)にすればピッタリ合いました。もし動画と音声の同期が取れてないと思った場合はここを確認してみてください。フレーム数を調べるには動画ファイルを右クリックしプロパティを選択→上の詳細タブをクリックすればフレーム率という項目に載っています。

ここまでできたらあとはお好みの出力方法で出力しましょう。ちなみに私はx264guiExでプラグイン出力してますが、うまく行かないときはAVI出力でビデオ圧縮をx264vfwにする方法でうまくいくと思います。

以上です。基本自分のために書いたものですが、全く同じことで悩んでる人がこれ読んで解決できたのなら幸いです。