2016年11月8日火曜日

Winパソコンで動画をランダム(シャッフル)再生しよう! (MPC-HC再生サポート のフロントエンドbatファイルの作成) ※修正個所アリ

 お久しぶりです。
 最近は仕事で気力とネタが尽きてまして、ブログを一顧だにせず生活してました。
 が、先日スマホを新しく(アイポンからアンドロ。元々はウィポン)しようとイロイロしてく中で、アンドロな無料ソフトで出来てパソコンでするには難しいか金かかる。な案件が出てきまして、どーも納得できなくて、その実現に試行錯誤してました。

 先日まで60fps再生をイロイロしてましたが、では4kはどうかと、ツベで4K動画を漁ってく中で、最近は特定ジャンルの視聴にハマってしまいまして、どうせ時間を使って再生するなら流し見でも納得したいと試行錯誤してく中で、パソコンでの視聴で不満が爆発してしまいました。
 アニメ本編は基本的に話数に合わせて視聴となるわけですが、ミュージッククリップは再生時間は数分ですが数が多いので視聴や聞き流しは収録順よりもランダム再生をしたくなってきたわけです。

 ですが、ながらな俺としては、再生リストを作成したうえでのランダム再生などメンドイ!
 だいたいファイルはガンガン追加されてくだろうに、いちいち再生リストの作り直しなど手間がかかってしょうがない。
 希望としては
  1.フォルダ指定
  2.フォルダ内検索ワードで絞込リスト作成
  3.絞込リストの連続ランダムシャッフル)再生。
  4.フルスクリーン
  5.縦合わせ再生
  6.なおかつモニタ指定

 そんな事実現してる動画プレイヤーあるのか? というか、今までさんざんMPC-HC+SVPの組み合わせでイロイロしてたわけで、できればMPC-HCプレイヤーでしてみたいが、、、まぁとりあえずそーいうの実現してるプレイヤーないかググッてみるかと思って探してみましたが、コレといった情報はなく、それどころか現在進行形の怪しいプレイヤー情報が出てきただけ。

 こーなったらまたスクリプトでフロントエンドを作成してMPC-HCにファイル情報呼び出して実現するかな~と、試しにDOSで
> (パス)\mpc-hc.exe /?
と打つと打つとコマンドラインヘルプがウィンドでポップ。それを読むと、、、nanaナナななんだってええええええええええ!


使用方法: mpc-hc.exe "pathname" [switches]

"pathname" 最初のファイルかフォルダが読み込まれる(ワイルドカードの使用可, "-" が標準入力を表す)
    (中略)
/open 自動的に再生を開始せずにファイルを開く
/play      プレーヤーの起動と同時にファイルを再生する
/close 再生終了後にプレーヤーを終了する (/play の使用時のみ有効)
    (中略)
/playnext 再生終了後にフォルダ内の次のファイルを開く
    (中略)
/monitor N  N 番目 (N は 1 から始まる) のモニタで起動する。
/fullscreen  全画面表示モードで起動する
/randomize 再生リストをランダム化する
    (以下略)

これ使ったら希望全部デキルヤ~ンとコマンドぽちっと実行すると

>(パス)\mpc-hc.exe /play /randomize /monitor 2 /fullscreen "(パス)\*tda*.*" 

 はい、あっさり希望機能全部モリモリで再生出来ました。 コマンドラインは基本メニューから使えるハズなんだが、コマンドラインから実行できたいくつかの機能はメニューを漁ってみたが見つける事ができなんだ。 まーいいか、指定がメンドイならあまり使おうって気は起きないから。 手軽に呼び出せるならそっち使うだろーしと、呼び出し方法検討開始。 VBAとかJavaScripsとかHtmlからの呼び出しとかイロイロ考えたけど、今回は機能もシンプルにして全部Batのみキックで実現する事にしました。
 バッチファイルの機能は、フォルダファイル条件を渡してMPC-HCを起動するのみに限定。休日の時間も少ないし、第一メンドクサイのイヤな腐れ元プログラマなエンジニアでした。


 サクッと一時間チョイ試行錯誤して完成。 実行すると22件のフィルタリストの選択を1-9,a-m の22件のキーに割り当てて、mpc-hcを呼び出すバッチファイルの完成。
 最大最大1-9,a-zの35件までいけるけど、多いと選択しの表示で画面がスクロールするんですよね。
 後、多少はグループ名(検索条件)の変更しやすいようにしたつもり。

 mpc-hcにしとけば再生できないファイルはホトンド無いし、これで快適な視聴環境できたわ~って、もうすぐ仕事だorz
 以下実行バッチ。テキストファイルなどに貼り付けてmpc-hc.exeの実行パスや、動画ファイルの場所やフィルタ設定を環境に合わせて保存後、拡張子を.batにしてください。

バッチファイルを実行した様子です。指定フォルダのワード"極"でヒットしたクリップがランダム順番で再生されています。 新しい条件にしたければ、再度バッチをたたけば指定できます。


>修正11/8 意図しない動きがみられたためカウントダウン実行を削除しました。

@echo off
rem ***12016/11/8 MPC-HC再生サポート.bat
rem  MPC-HCに指定した条件のファイルをランダム再生させる。
rem 
rem ***最終コマンド例
rem  start /B /I C:\etc\MPC-HC\mpc-hc.exe /play /randomize /monitor 2 /fullscreen "B:\@yb*.*"
rem 
rem ***使用コマンド解説
rem 
rem mpc-hc.exe 動画プレイヤー フルパス指定。設置場所はファイル命名規約を逸脱しないよう注意。
rem  "pathname" 最初のファイルかフォルダが読み込まれる
rem  /play プレーヤーの起動と同時にファイルを再生する
rem  /randomize 再生リストをランダム化する
rem  /monitor N N 番目 (N は 1 から始まる) のモニタで起動する。ただし無かったり既に起動していたら無効。
rem  /fullscreen 全画面表示モードで起動する 既に起動していたら無効。
rem 
rem START 指定されたプログラムまたはコマンドを実行するためにウィンドウを開きます。 ※最後に使用
rem   /B           新しいウィンドウを作成せずにアプリケーションを起動します。
rem   /I           新しい環境は、現在の環境ではなく、cmd.exe に渡された元の環境になります。


rem ***グループ名(ファイル名)グループ名はDOSの命名規約に依存します。好みで変更してください。追加も可能(最大35個)

SET F1="B:\@yb\*.*"
SET F2="B:\@yb\*mmd杯*.*"
SET F3="B:\@yb\*mmd60fps*.*"
SET F4="B:\@yb\*tda*.*"
SET F5="B:\@yb\*つみ*.*"
SET F6="B:\@yb\*ななみ*.*"
SET F7="B:\@yb\*cat*.*"
SET F8="B:\@yb\*3840*.*"
SET F9="B:\@yb\*60*.*"
SET F10="B:\@yb\*藍様*.*"
SET F11="B:\@yb\*ミク*.*"
SET F12="B:\@yb\*ハク*.*"
SET F13="B:\@yb\*いすず*.*"
SET F14="B:\@yb\*極*.*"
SET F15="B:\@yb\*ダ*.*"
SET F16="B:\@yb\*艦*.*"
SET F17="B:\@yb\*東*.*"
SET F18="B:\@yb\*アン*.*"
SET F19="B:\@yb\*紳*.*"
SET F20="B:\@yb\*乳*.*"
SET F21="B:\@yb\*18*.*"
SET F22="B:\@yb\*sex*.*"


rem ****MPC-HC起動文 好みで変更してください。

SET EXENAME=C:\etc\MPC-HC\mpc-hc.exe /play /randomize /monitor 2 /fullscreen


rem ****メニュー表示 m以下だと強制スクロール 選択を増やす場合追加****
rem  最大は(1-9 a-Z)で35個までOK。※0は除外 記号は不可
rem  追加時は対応するFxx文とchoice /c:1~を増やす必要あり。
rem  後、数を増やすと選択支がスクロールするので、配置に工夫が必要?

echo MPC-HC再生(全画面ランダム)のファイルグループを選択してください。
echo  1. %F1%
echo  2. %F2%
echo  3. %F3%
echo  4. %F4%
echo  5. %F5%
echo  6. %F6%
echo  7. %F7%
echo  8. %F8%
echo  9. %F9%
echo  a. %F10%
echo  b. %F11%
echo  c. %F12%
echo  d. %F13%
echo  e. %F14%
echo  f. %F15%
echo  g. %F16%
echo  h. %F17%
echo  i. %F18%
echo  j. %F19%
echo  k. %F20%
echo  l. %F21%
echo  m. %F22%
choice /c:123456789abcdefghijklm 

rem ****ファイル名分岐****
IF ERRORLEVEL 22 GOTO 22
IF ERRORLEVEL 21 GOTO 21
IF ERRORLEVEL 20 GOTO 20
IF ERRORLEVEL 19 GOTO 19
IF ERRORLEVEL 18 GOTO 18
IF ERRORLEVEL 17 GOTO 17
IF ERRORLEVEL 16 GOTO 16
IF ERRORLEVEL 15 GOTO 15
IF ERRORLEVEL 14 GOTO 14
IF ERRORLEVEL 13 GOTO 13
IF ERRORLEVEL 12 GOTO 12
IF ERRORLEVEL 11 GOTO 11
IF ERRORLEVEL 10 GOTO 10
IF ERRORLEVEL 9 GOTO 9
IF ERRORLEVEL 8 GOTO 8
IF ERRORLEVEL 7 GOTO 7
IF ERRORLEVEL 6 GOTO 6
IF ERRORLEVEL 5 GOTO 5
IF ERRORLEVEL 4 GOTO 4
IF ERRORLEVEL 3 GOTO 3
IF ERRORLEVEL 2 GOTO 2

rem ****ファイル名投入****
SET FILENAME=%F1%
GOTO end

:2
SET FILENAME=%F2%
GOTO end

:3
SET FILENAME=%F3%
GOTO end

:4
SET FILENAME=%F4%
GOTO end

:5
SET FILENAME=%F5%
GOTO end

:6
SET FILENAME=%F6%
GOTO end

:7
SET FILENAME=%F7%
GOTO end

:8
SET FILENAME=%F8%
GOTO end

:9
SET FILENAME=%F9%
GOTO end

:10
SET FILENAME=%F10%
GOTO end

:11
SET FILENAME=%F11%
GOTO end

:12
SET FILENAME=%F12%
GOTO end

:13
SET FILENAME=%F13%
GOTO end

:14
SET FILENAME=%F14%
GOTO end

:15
SET FILENAME=%F15%
GOTO end

:16
SET FILENAME=%F16%
GOTO end

:17
SET FILENAME=%F17%
GOTO end

:18
SET FILENAME=%F18%
GOTO end

:19
SET FILENAME=%F19%
GOTO end

:20
SET FILENAME=%F20%
GOTO end

:21
SET FILENAME=%F21%
GOTO end

:22
SET FILENAME=%F22%
GOTO end


rem ****MPC-HCプレイヤー起動****
:end
cls
start /B /I %EXENAME% %FILENAME%
exit

0 件のコメント:

コメントを投稿