見出し画像

OBS(生放送用PCアプリ)がクラッシュしたが、解決した。備忘録

結論

以下3つの設定をしておくと、いざと言う時(ファイルが壊れた、間違って消した、Windows10が起動しない)役に立ちます。今すぐ設定しましょう。

Windows10の素晴らしい機能です。

1. ファイル履歴のオン

スタートメニュー→Windows システムツール→コントロールパネル→ファイル履歴でファイルのバックアップコピーを保存→オンにする

2. システムバックアップ

スタートメニュー→Windows システムツール→コントロールパネル→バックアップと復元→あとはなんか適当にバックアップ設定する。バックアプスケジュールを設定する(自分は毎日にしてみてます)。

3. 回復ディスク作成

要USBメモリ。できれば32GB、16GBも可。
スタートメニュー→Windows システムツール→コントロールパネル→システムとセキュリティ→セキュリティとメンテナンス→回復(これをクリックしても回復が行われる訳では無いので安心して下さい)→回復ドライブの作成USBメモリさします→※間違ってUSBメモリ以外のドライブを指定すると、そのドライブが壊れてしまいます。エクスプローラー(Windowsキー(四角4つのキー)+Eキー)で表示されるUSBメモリの容量(例えば「D:」ドライブで16GB)を確認して、そのドライブ(この場合「D:」)を指定して下さい→表示に従って進めて下さい。

今回の問題の解決は、上記2つの設定のおかげか(どちらの設定によるものか?もしくは両方必要なのか?)確信は無いのですが、今回の問題に関係なく今すぐ設定しておきましょう。3.の回復ディスクは、Windowsが起動さえしなくなった時のためです。

きっかけ

OBSを同時に2つ起動出来るかな?と、試しにやってみた。多分それが原因で起動はするが、クラッシュのメッセージ(OBSはクラッシュした。ログはここにあるよのポップアップ)が出て、すぐ落ちるようになってしまった。一から設定しなおすと死んじゃうので、なんとかしてバックアップ(エクスポート)しておいた .json ファイル(OBS_Scene_collection.json)を読み込ませたい。

対処の前に

・OBSのフォルダまるごとコピペして、バックアップをとって置く。
・C:\Users\ユーザー名\AppData\Roaming\obs-studio\ というフォルダが多分設定などがあるフォルダ(OBS起動後に作成される)。ここもバックアップ取っておく。
・シーンファイルをエクスポートしておく(クラッシュしたらOBS起動もできなくなるので、普段から何か変更したら取っておく)
上記3つのフォルダ・ファイルは普段からバックアップしておくと安心かも。

自分は普段からOBSのシーンのバックアップファイルを取っていた。メニュー→シーンコレクション→エクスポート。これでシーンがバックアップ出来る。これがあれば設定がほとんど戻せると思うので、安心。だが、一応フォルダまるごとコピペして、バックアップをとって置くとよい。

対処

問題のあるOBS本体のあるフォルダ(binフォルダがある方)は、リネームして(obs_studio_crashとした)、新しくOBSを zip でダウンロードして展開(解凍)して、それを使用して対処していく。
(まあ、もしかしたら、クラッシュしたOBSのバージョンと、新しくダウンロードしたOBSのバージョンが違っていて、それによって問題が新たに起こってクラッシュする可能性もあるが、今はめんどいのでそれはほっておく。

対処1

OBSのデータフォルダを探し、綺麗サッパリ削除してみる。
OBSはZipをダウンロードすると、OBSのフォルダ以外にファイルがない。設定ファイルは起動後に作られるようだ。

「obs」をキーワードにファイル(フォルダ)検索(Everything使用)して、C:\Users\yomox\AppData\Roaming\obs-studio\ というフォルダがあるのを知り、まあシーンファイル保存してあるからいいや、とまるごと削除(真似しないで、フォルダをリネームするなどしてバックアップして下さい)。

→OBSは初期状態で起動した
→普段からエクスポート(バックアップ)していたシーンファイルをインポート「シーンコレクション→インポート→ファイル名指定」→シーンファイル読み込み(シーンコレクション→読みこんだシーンコレクションにチェックいれる→クラッシュしてしまう

対処2

対処1の結果から、インポートしたシーンファイルが原因と思われる。テキストファイル(.json)なので、まずはファイルをコピペでバックアップ。エディタ(サクラエディタ)で見てみたら、なんか15000行ある。。。なんか適当に半分くらいで削って、かっこ「{}」のつじつまだけ合わせてセーブする(ctrl+j→7000で7000行へジャンプして作業)。

→再度シーンファイルを読みこんだら、まだクラッシュした

対処3

ていうか、カッコのつけかた間違ってる。

よく見たらこのファイル「{」と「}」が同じ列に無い。自分はこの書き方はとても見づらい、わかりづらい・・・。

カッコの対応見るの面倒だけど、なんかサクラエディタには、対応カッコの機能あったなーとググる。

要は、サクラエディタでちょっと設定すれば、ctrl+{ で対応するカッコに飛べるとのこと。で、気づいた。一番最初のカッコにカーソルもっていって、ctrl+{押せば、対応するカッコに飛んでみて、飛べたらOKにだと(そのカッコに飛べれば、対応するカッコでちゃんと閉じられているということ)。

→で、うまいこと飛べたので、余計なカッコは消してセーブ、再度読み込み

→はい、やっぱりだめー。

対処4

んーーーーー、どうしよう。もっと削るか。とりあえず、最初の方のだけ(今回は「AuxAudioDevice1」)を残してやってみる。あと、同名のファイルに編集していくなら、OBSで毎回インポートしなくても良いと気づいた(json編集→シーンファイルを選択するだけでいい)

→ほーん。まだダメだった。なんだこれ?

対処5

→よくわからんので、とりあえず、OBS起動してすぐの状態でエクスポートして、それをインポートしてみる。OBS初期状態のファイルだから当然エクスポート、インポートは正常に行えるはず。その後に、その.jsonを見てみて、自分のエクスポートした.jsonをうまーく組み込んでいく、というのを試してみる。まずは「a」というファイル名でデフォのエクス・インポートする

→なんか「無題(1)」って名前になった・・・。もう「a.json」をインポートしても一度やっても「無題(2)」。「a」にならないのは仕様なんだろうか。あ、多分 a.json の中に「無題」ってシーンコレクションの名前が入ってるんだな。じゃあとりあえず選択してみよう

→おっけー!おちない。当たり前だけど、問題が起こった時に、問題の起こらない環境を確認した時の、心の平穏感大事。

対処6

→てことで、早速 .json を見てみる(一応これもバックアップ(こぴぺ)して開いた。とにかくコピペバックアップ大事)。

→なんかなげー。160行ある。いや、少ないか。中身を見ると、なるほど、シーンコレクションの名前「無題」とか「マイク」「デスクトップ音声」「シーン」「フェード」など、初期状態の設定が入ってる。割とシンプルぽい。うーん。。。でも・・・1万行以上ある自分の .json を目視チェックするのは、ちょっと無理ぽい。てか嫌だ。どうしよう

対処7

→やっぱり、問題か所の特定が最初だ。というか、自分の .json 使って、正常に動く部分を特定したい。そっから追記していって、問題箇所を特定する。

→そのために、このデフォ設定の構造をある程度理解する。

AuxAudioDevice1 ( マイク )
DesktopAudioDevice1 (デスクトップ音声 )
"current_program_scene": "シーン",
"current_scene": "シーン",
"current_transition": "フェード",
current(現在の)だから、現在選んでるシーンのことだろう。
「シーン」が複数出てくる。OBSの画面でも「シーン」と、その中に「シーン」があってわかりづらいので、OBSの画面で「シーン」を「シーンX」と変更して、 .json エクスポートしてみる。今度はファイル名「b」で。

→「無題(2)(1)」になった。。。ややこしいが、クラッシュせず動く。名前がややこしいので、 .json の「無題 (2)」を「b」にしてセーブ、読み込んで見る。ちなみに、「シーンx」はファイルに反映されてた。

→b.jsonをインポートして「b」を選択

→動いた。

→ふむ。ちなみに、配信用のURL?は設定してないから、設定ファイルには当然無いわけだが、ショートカットキーの設定も無いなあと。なるほど。そういえば、デフォルトでは特にショートカットキーは何も設定されてなかったかも。ショートカットキーとか、配信先とか設定したら、設定ファイルはどう書かれるんだろう?ちょっと面倒だな。

対処8

→ここにきて

(まあ、もしかしたら、クラッシュしたOBSのバージョンと、新しくダウンロードしたOBSのバージョンが違っていて、それによって問題が新たに起こってクラッシュする可能性もあるが、今はめんどいのでそれはほっておく。

と思い至る(最初の方に書いてあるけど、実は今書いた)。で、クラッシュした.jsonにバージョン書いてあるかなとふと思った。やっぱ同じ環境がベストだなーって。
ていうか?今思い出したけど、.jsonをエクスポートしたあと、バックアップを・・・あ、自作のバッチファイルでバックアップしてるけど、世代バックアップはしてない・・・・あ?だけど、Windows10のバックアップ設定してるから、ファイル個別の古いバージョン復帰は可能では?と思い至る。それ試してみよーーーーーーーー!!

→まずは、クラッシュした .json をさらにコピペ(なにかするときはとにかくファイルを ctrl+c ctrl+v してバックアップするのです)。で、 クラッシュした.json(OBS_Scene_collection.json)を右クリック→プロパティ→以前のバージョン→ちょっと待つ

→うぇーい!!!あるううう!

昨日と一昨日の分があるううう!

やっといてよかったー。この昨日、一昨日ぐらいに設定したんだった。Windows10でこの昨日は、デフォじゃオンになってないから、みんなオンにすることをおすすめするよ!

→さて、本当に復活するか、そもそも保存されていた古いバージョンの.jsonがちゃんと動作するかっていうのは気になるが、とりあえず復活させてみよう。とりあえず、昨日のファイル(2020/05/31 23:21)から。なんで同じ時刻のファイルが2つあるかわからないけど、とりあえずいいや。

→ファイル名(昨日の夜)選んで→復元→上書きするよ?いいの?→コピペでバックアップしてるので問題ないので、「復元」→「以前の状態に復元されました」

→早速OBSに読み込ませ。「OBS_Scene_collection(1)」で読み込まれるので注意。それを選択。

→はい、クラッシュ。ここまではありうると思ってた。昨日OBSを二重起動したのが原因っぽいと思ってるし。

対処9

早速次に古い、一昨日のファイルを復元(2020/05/30 20:38)。これは動くんじゃないかな。
で、ここまで来て思ったけど、インポートしなおさない場合、ちゃんとファイルを読み込んでるか(同名ファイルなら読み込まずにキャッシュを使うなど)怪しいので、インポートして選択する。

→あえーーー??クラッシュした。あえーーー??。。????

→一昨日は動いていたはず。だって、昨日OBS起動した時は問題なくて、今日になってクラッシュしたんだもの。PCスリープ状態じゃなかったはずだし(スリープなら問題が起こったまま、再起動してないから .json 読み込まずに問題を抱え続けてたかもしれないけど)。

対処10

→なんかよくわからないけど、さらに古いファイル、そして一番古いファイル(2020/05/30 9:17)を復元・読み込んでみよう。

→んー?なんか「復元」ボタン押しても反応がない。そもそもファイル名が空欄なんだけど、なんだこれ。一応ファイルのタイムスタンプ確認してみるかな。更新日時かな?

→更新日時は 2020/05/31 23:21。つまり、最初に復元したファイルっぽい。なるほど、それならクラッシュする理由もわかる。が。なんで「2020/05/30 9:17」の復元できてなかったの?

→もっかい5/30に復元してみた。「復元しました」って出るけど、タイムスタンプ変わらない。本当に復元できてるのか?これ。。。

対処11

→コピペ(バックアップ)して、 .jsonを適当に編集セーブして、5/30 20:37  を復元させてみる。

→ファイルの日時が現在の時刻になった。

→復元したら、今度はちゃんと 5/30 20:37 になった。なんだろう?ファイルを編集したおかげか?プロパティを開き直したおかげか?まあいいや。とりあえず、またOBSに読み込み。

→読み込みにしばらくかかり、「あーまただめかなー」と思ったら

きたああああああああ!!!!!!!!

いえーい。問題ナッシング。

解決

一日?2日?くらい巻き戻ってもいいや。クラッシュした .json が最新だけど、それを完全復活させる手間より、それくらい前のをいじる方が良い。別に何か特別なことをここ1~2日で行ってはいないはずだし。

というわけで解決しました。いえーーーーい。

ちなみに、以下の方法でも復元出来るっぽいです

ちょっとやってみましたが、今回のファイルはこの方法では見れないような?よくわからない。

以上、OBSがクラッシュして生放送できないので、復活経過をひたすら記述した記事となりました。


よろしければサポートお願いします!いただいたサポートはただの生活費として使わせていただきます!