主にメモ

ただのメモ

DISM SFCを なでしこv1で自動化してみる

ここ数か月メインで使用してるPCがブルースクリーンを頻発していたので

www.youtube.com

上を参考にしてみたところ、特にDISM・SFCが効果的でした。

(これを知る前に物理的にSSDの換装、メモリーの換装なども試しました。そしてPCの買い替えも検討していました。)

 

うちのPCではブラウザの特定の拡張機能を使うとよくブルースクリーンになるのは

最近になって経験上分かったのですが

時々どうしてもこの拡張機能を使いたい時があり

(勿論、コレだけが原因というわけではないでようです。たぶん)

 

更にVirtualBox上のVMも2つ以上同時に起動していることも多いことから

ブルースクリーンで落ちた時や、時間のある時、気が付いた時に

(うちのPCでは思ってた以上に結構、頻繁にファイルが壊れてますね…)

それぞれのPC(VM含む)で、

管理者コマンドプロンプト

DISM.exe /Online /Cleanup-image /Restorehealth

して、終わるのを数分待ってから

sfc /scannow

 

もー、待ち時間も呪文を唱えるのも面倒くさくなっています。

(効果が絶大なのでやりますが。)

 

そこで、なでしこv1で自動化できないか色々と試してみて

nadesi.com

 

コレに落ち着きました。

やっぱり、なでしこv1、便利ですね~。

ほんの数行で、ちょっと調べて合わせるだけで出来上がんだもの。

 

(ちとハードルが高くv3に移行できないヘタレな万年初心者ですみません。v3でも、同じようにできるのかな?)

 

簡単に実行出来ると歯磨きをするように、やらずにはいられないこの頃です。

 

 

#DISM_SFC
#このプログラムをDISM_SFC.nakoのファイル名で保存してから実行

ファイル名=「DISM_SFC.nako」
管理者権限取得。
もし、それがいいえならば、
  「"{ランタイムパス}vnako.exe" "{ファイル名}"」を管理者権限実行。
  終わる。 

「C:\windows\Sysnative\cmd.exe /C DISM.exe /Online /Cleanup-image /Restorehealth」を起動待機。
「C:\windows\Sysnative\cmd.exe /K sfc /scannow」を起動。
終わる。

#ここまで

 

#cmdオプション  /C :実行後閉じる /K :閉じない 

「起動待機」で使うなら /C

 

 

 

なでしこは、今現在、仕事にプライベートに毎日欠かせない状態で、

感謝を込めて少しでも、お役に立てればと思い

今回初めて、日本語プログラミング言語「なでしこ」 Advent Calendarに参加させていただきました。

万年初心者ユーザーならではの、なでしこの魅力が見ていただいた方に伝われば幸いです。

 

 

 

 

 

bunkoOCR Helper

bunkoOCRを少し試しているのですが、認識率もさることながら、GoogleDriveでのOCRで出来なかったルビ無しのOCRがいいですね。

※うちのPC(CPU AMD Ryzen 7 PRO 4750GE with Radeon Graphics   3.10 GHz 内臓GPU)では1冊bunkoOCRでOCRするのに4時間程度かかりますが…

 

以前から愛用しているiOS用テキスト読み上げアプリ(Voice Dream Reader)で聴くとGoogleDriveで変換したテキストではルビが邪魔でいつもイラっとしていましたw。

 

そこで、bunkoOCRで生成したルビ無テキストファイル(noruby.txt)を結合。

改行ごとにテキスト読み上げアプリ(Voice Dream Reader)では間があるので改行を削除。

代わりに「。」の後に改行を追加。

UFT-8でOCRされるので書式を崩さないように日本語プログラミング言語「なでしこ」v1とPowershellの合わせ技で作ってみました。

できたテキストファイルは、フォルダ名+.noruby.txtです。

 

Powershellコマンドプロンプトもほとんど知識無しでしたが、ChatGPT先生に聞きながら試行錯誤したら意外とできるものですね。(一度尋ねてそのまま動いたためしがないのでエラーを含めて何度も尋ねるを繰り返しましたw。)

なでしこv1でプログラムを作るのに便利ですね。ChatGPTもPowershellも。

 

ダウンロード

 

ソース

 

Bing自動検索

MSリワード、自分用w。

直接https://www.bing.com/news?q={対象}と出来れば良かったんだけど

うまくポイントにならないようで、力業で。

 

#Bing自動検索
https://blog-bootcamp.jp/related-keyword/
「.\related_keyword.csv」を開いてSJIS変換
#「.\*.csv」で「.csv」のファイル選択。それを開いてSJIS変換
I=0
それを配列シャッフルしてワドに代入
ワドを反復
  「"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" "https://www.bing.com/news?q=%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9&form=ml11z9&crea=ml11z9&wt.mc_id=ml11z9&rnoreward=1&rnoreward=1"」を起動
  対象をコピー
  2秒待つ
  266,115へマウス移動
  マウスクリック
  1秒待つ
  266,115へマウス移動
  マウスクリック
  1秒待つ
  『^a』をキー送信
  1秒待つ
  『^v』をキー送信
  0.5秒待つ
  『{ENTER}』をキー送信
  2秒待つ
  I=I+1
  『%{F4}』をキー送信
  1秒待つ
  母艦=「{I}回目 {クリップボード}」
  もし I>34ならば「終了します。」と言う。終了
終了

 

FFmpeg一括変換

ダウンロード

ソース

※なでしこではShiftJISなファイル名のみ対応だそうなので、ダメそうな文字を含むファイル名のもはfile_name_error_list.txtへ書き込まれます。

※ちなみにアイコンはBing Image Createrに作ってもらいましたw。

※av1の動画をiPhoneで再生するには、要VLCPlayer、いまのところかな。

 

最近、動画ファイル用のストレージの空き容量がなくなってきたため3年前にH.265で変換した動画ファイルを再度変換してみようと思い試行錯誤してみました。以前試してみたAV1のコーデック「libaom-av1」は、物凄く時間が掛かる代物で実用的ではないと感じてAV1での変換を諦めていましたが、「libsvtav1」を試してみるとこれがlibaom-av1より、速いというかむしろH.265のコーデック「libx265」よりもかなり速い。(2.5倍くらいか・・・)ということで久しぶりに日本語プログラミング言語「なでしこ v1」でffmpegのフロントエンドを作ってみました。

 

そこで出来た動画を見比べてみても自分の目では遜色ないと思えるのですが数値で画質が数値で測れるVMAFスコアで検証してみました。(100が最高値、%の意味ではなくあくまでも品質評価の指標らしい、たぶん)

 

Blue-rayからH.264(libx264)で変換したsample.mp4(サイズ:1.61GB 長さ1:39:31) をffmpegで以下のコマンドでそれぞれ変換してます。(libsvtav1のqpは品質で小さいほど高画質となります。)


ffmpeg -i sample.mp4 -vcodec libx265 -c:a aac -ac 2 sample-h265converted.mp4

ffmpeg -i sample.mp4 -vcodec libsvtav1 qp=45 -c:a aac -ac 2 sample-av1converted.mp4

 

コーデック サイズ VMAFスコア
libx265 482 MB 94.347841
libsvtav1 qp=45 290 MB 91.215262
libsvtav1 qp=43 318 MB 92.077913
libsvtav1 qp=40 370 MB 93.277861
libsvtav1 qp=38 411 MB 93.883247
libsvtav1 qp=36 457 MB 94.398944

 

以上のような結果となりました。VMAFスコアでlibx265のデフォルト設定と同等な

libsvtav1のqpは36くらいということでサイズ差はいまいち。

でも実際の動画を見てもVMAFスコア90以上あれば十分だとわかりました。

(最近、老眼入ってきてるしねw)

qp=45が自分の中ではサイズと画質の両立ができてると感じてlibsvtav1 qp=45で

動画を再変換することに決めました。

 

※VMAFスコアをffmpegで計測する場合は

ffmpeg -i [参照動画ファイル] -i [評価対象動画ファイル] -lavfi libvmaf -f null -