昔ニコニコ生放送を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にする方法でうまくいくと思います。
以上です。基本自分のために書いたものですが、全く同じことで悩んでる人がこれ読んで解決できたのなら幸いです。
───────────────────────────
2025/3/14追記:
hagflashはもともと音声をmp3で出力する機能を持っており、
歯車のアイコン → sound → MP3/M4A設定 で
変換の項目を しないから M4A(AAC)->mp3
にすればいちいちmp3に拡張子変更しなくてもOKです。
動画のフレームレートに関しては変な計算とかせずに素直に30フレームに全部変換した方が簡単です。というか、フレーム数が中途半端な動画をAVIUTLの拡張編集にドロップしても長さが変になったりしてうまく変換出来ないことが多いようです。

拡張編集で読ませると画像の様に必ず動画側に隙間ができます。この頭の部分をカットして読めなくなった動画を無理やり読めるようにしてる感じなのでここが消えるのは仕方がないです。
この間真っ暗もあれなので動画の一番前のフレームを画像保存して静止画として表示しているのですが、これはAVIUTL側で動画の先頭を表示した上で、
編集 → 現在のフレームの出力イメージをクリップボードにコピー
を選択して、それを別途アプリに貼り付けて保存しています。私の場合 IrfanView という画像ビューアですね。画像サイズは動画と同じサイズで出力されるので、それをそのままAVIUTLの拡張編集にドロップすれば綺麗にはまります。
こんな感じでやればそこまで手間かからずやれると思います。