- 録画ファイルの形式は Matroska Video (.mkv) にしよう
- コイツならファイナライズミスってるファイルも VLC media player で修復できるよ
経緯
少し前から、OBSでの録画が、録画終了処理において絶対にハングアップする様になった。
最終的な対処としては、録画を担っているプログラム「obs-ffmpeg-mux.exe」を強制終了する事によって、OBS本体は支障なく終了する。あくまでハングアップしているのは前述の録画プログラムであって、OBSはそのプログラムの終了を待機しているだけだ。一応 Windows におけるプログラム強制終了コマンドである所の taskkill で当該プロセスを殺すバッチファイルを作っておくと都度手打ちするよりはナンボかマシである。「taskkill /F /IM obs-ffmpeg-mux.exe」と唱えるが良い。
めでたしめでたし、ではない。
当然、正規の方法で終了した録画ではない故に、ファイナライズ処理が行われずに保存された録画ファイルは破損している。ファイルの種類によっては正常に見ることは適わない。基本的に対応するのは Matroska Video(.mkv) か Fragmented MP4(.mp4) になる。(オススメされているのは後者である。)
但し。
この二つのファイルにおいてもファイナライズは行われていないので、再生において若干支障となる。ファイル再生に必要な情報が恐らくファイル終端に記録される形式であろうが、それが無い為に、ファイル内をシークして補間して再生する模様。録画時間によってはロードがかなり待たされる。再生が始まった後も、ジャンプするとかなり映像が乱れる。いうて恐らくキーフレームが来るまでの我慢であるが。
修復
正常な録画ファイルに戻す方法はあるのか?
という事において、mkv であれば VLC Player で正常に戻すことができる。
メニューバーのメディア - 変換/保存 を選び、対象ファイルを選択した上で画面下部の変換/保存を押す。
変換のプロファイルは追加しておくと良い。
カプセル化は MKV にし、ビデオコーデックもオーディオコーデックも「オリジナルの~~トラックを保持」とする。自分は分かりやすい様に「MKV repair」とプロファイル名を指定した。
後は出力ファイルパスを指定して開始するだけである。便利。
では Fragmented MP4 では?というと、残念ながら同じ方法では無理である。なんでやねんと。
変換作業が最終盤に差し掛かったまま動かなくなる。嫌なことにタスクマネージャなどで動作を見てみると頑張ってファイルに書いている(ディスク書込量がそこそこある)にも関わらず、全く進まなくなる。一体何を書いているのだろうか。
結論から言えば、MP4 の修復においては Aviutl を使うのが良い。実際には順当に導入していれば、プラグイン「L-SMASH Works File Reader」を導入しているであろうから、これ経由で読み込んだ後、メニューのファイル - エクスポート - L-SMASH Works Muxerから書き出せば良い。紹介のページではAviutlへの対象ファイルの読み込みがドラッグ&ドロップでは駄目、とか書いてあるが、そんな事は無かった。気になる人は修復対象のファイルを開いた後にメニューのその他 - ファイルの情報 で表示されるファイル情報一覧でファイル制御がL-SMASH Works File Readerになっている事を確認してから作業したら良い。
とはいえ、皆が皆 Aviutl を導入しているかと言えばそうではなく、導入の簡単さから言えば VLC media player の方が簡単ではあろうと。そう考えるならば録画形式はMKVにしておいた方が楽なんではなかろうか。
なおOBSを導入して録画なんてしてるの配信者率高ぇだろAviutl入ってるに決まってんだろ的なご意見の持ち主はFragmented MP4にしても全く問題ないと思われる。
そもそも
ただ、事の発端から言うなら、なんで obs-ffmpeg-mux.exe がハングアップすんねん、という所から来ているのだが、一応は「どうもGPUへの高負荷によって引き起こされている様だよ?」というご意見が提示されており、根本の解決にはなっていない模様。ある日突然起こるようになったのやら、同時配信系全部止めてからやっても発生してるとか、なんなら配信使わずに録画だけ試しても起きるんだけどっていう事象の説明になってないから多分何らかのバグを内包してるものと思われるが。エンコーダ設定弄ってみるかなぁ…
0 件のコメント:
コメントを投稿