Windows用のバッチファイル(スクリプトファイル)に関する質問です。ホームビデオで撮影したイベントの動画ファイルがたくさんあります。Windows Media Player10で再生して見ています。この複数の動画ファイルを、連続で再生したいのです。


  ・動画は、「C:\video\」の下に、まとめて置いてます
  ・30~40個くらいです
  ・1分間程度を再生したら、次に動画に移りたいです
  ・順番は指定(記述)できると良いですが、ランダムでも構いません
  ・WindowsXP/Proです
  ・Dosバッチファイルやvbsなどのスクリプト系が条件です
  
Dosは詳しくないので、単純に「"C:\Program Files\Windows Media Player\wmplayer.exe" "C:\video\fami001.wmv"」などと、複数行、書いてみました。当然ですが、1つのファイル全ての再生が終了しないと、次のファイルの再生に移りません。

初歩的な質問ですみません。ズバリのご回答のみ、求めています。「こうすれば~~」のような推測的ご回答は不要でございます。たぶん、簡単な記述でOKなのだと思います。

以上、よろしくお願いいたします。  

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/09/10 09:13:16
  • 終了:2006/09/10 21:19:19

回答(5件)

id:Namo4680 No.1

Namo4680回答回数38ベストアンサー獲得回数22006/09/10 10:58:13

ポイント5pt

http://www.vector.co.jp/soft/winnt/art/se408339.html

目的を達成するだけならばこちらのフリーウェアから可能ですが

バッチファイルでないと駄目だったでしょうか?

動作確認してみましたがランダム再生と再生時間の指定が可能です。

(ただ再生時間を0~60秒と指定しても若干再生時間にずれが生じるようですが)

なおファイルの種類を指定する時にすべてのファイルを選択しないとデフォルトでwmvが表示されないようです。

wmvは再生可能

id:Mugicha2004

ご回答、ありがとうございます。試してみますね。希望はバッチファイル系です。そちらのコメントを、お待ちします。

2006/09/10 11:07:11
id:captim No.2

captim回答回数109ベストアンサー獲得回数62006/09/10 12:07:42

ポイント50pt

下のスクリプトでできます。

ただし、今回2つのファイルしか書いていませんが

読みたいものを1つずつ書いていく必要があります。

工夫すればリストから読み出しもできるはずですが・・・

ファイルは関連しているソフトで動きますが、起動までの

時間も含まれているので実際は1分以上で設定したほうが

よいかもしれません。

名前を連番にするならfor~nextを使えばいけます。

スクリプトの説明

 wscript.Sleep 1000

  →1000[mSec]なのでこれで1秒待ちます。

   60000[mSec]は1分です。

 Set ws = CreateObject("Wscript.Shell")

 ws.run "ファイル名"

  →ファイル名を実行します。


  • 以下スクリプト----

Set ws = CreateObject("Wscript.Shell")

ws.run "c:\video\fami001.wmv"

wscript.Sleep 60000

Set ws = CreateObject("Wscript.Shell")

ws.run "c:\video\fami002.wmv"

wscript.Sleep 60000


次のURLはあまり参考にならないかもしれませんが・・・

http://www1.u-netsurf.ne.jp/~tomo_c/tips/Scr003.html

id:Mugicha2004

ご回答、ありがとうございます。これです!こちらの内容で、完璧にOKでした。大変感謝です。

Unix系のシェルスクリプトはなじみが深いのですが、Dosのバッチファイルは、ほとんど知りません。WSHはその高機能版みたいですね。有用そうですので、これをきっかけに勉強してみます。

本当に、ありがとうございました。

2006/09/10 21:15:19
id:circuit No.3

circuit回答回数13ベストアンサー獲得回数02006/09/10 14:26:13

ポイント5pt

少し作成に時間がかかりますが、Windowsについている「Windows ムービー メーカー」を使って、映像を編集したのを見てみてはいかがですか?

たとえば40個のファイルをすべて読み込んで、順番に時間していで再生するのも可能だったと思います。

http://www.microsoft.com/japan/windowsxp/using/moviemaker/de...

id:Mugicha2004

ご回答、ありがとうございます。すみませんが、希望情報とは異なるようです。スクリプト系の解を求めていました。同様のコトは実現できるのかもしれませんが、当方の希望する状況にはマッチしないのです。申し訳ありませんが...

2006/09/10 21:16:16
id:y3kz No.4

y3kz回答回数31ベストアンサー獲得回数92006/09/10 14:44:21

ポイント30pt

普通にバッチかスクリプトを書くと、SLEEPを使って、動画ファイルを順次WMPに再生させていくことになるのだと思います。

自動再生していくだけならそれでもいいのかもしれませんが、途中で連続再生をやめたいときや、動画をスキップしたいときに不便です。

.ASXファイルで再生時間を指定するのが一番スマートではないかと思います。

<DURATION> タグを使用すれば、再生時間を指定できます。

参考↓

http://www.microsoft.com/japan/windows/windowsmedia/howto/ar...


とりあえず、再生時間を指定した.ASXファイルを作成して、それをWMPに再生させるVBSを書いてみました。

		'動画フォルダとWMPのパスの指定
		Const MOVIE_FOLDER = "C:\Video"
		Const WMP_PATH = "C:\Program Files\Windows Media Player\wmplayer.exe"
		
		'作成するASXファイルのパスの指定。
		Const ASX_PATH = "C:\WINDOWS\TEMP\myASX.asx"
		
		'時間の設定(「時間:分:秒」で指定し、ダブルクォーテーションで囲む。)
		Const PLAYTIME = "00:01:00"
		
		Set fso = CreateObject("Scripting.FileSystemObject")
		Set myASX = fso.CreateTextFile(ASX_PATH, True)
		Set myMovies = fso.GetFolder(MOVIE_FOLDER).Files
		
		myASX.WriteLine "<ASX Version = ""3.0"">"
		For Each myMovie In myMovies
		 myASX.WriteLine " <Entry><Ref href = """ & myMovie.Path & """ /><Duration value = """ & PLAYTIME & """ /></Entry>"
		Next
		myASX.WriteLine "</ASX>"
		myASX.Close
		
		'.ASXファイルを作るだけなら、↓の行は不要。
		CreateObject("WScript.Shell").Run """" & WMP_PATH & """ """ & ASX_PATH & """"
	
id:Mugicha2004

ご回答、ありがとうございます。こちらのテも有効そうですね。ぱっと見た感じでは、2番の方の手法の方が、シンプルな印象です。機会がありましたら、試してみます。

2006/09/10 21:17:27

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 babizo 22 18 0 2006-09-10 17:24:27

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません