クライマックス順次再生
クライマックス順次再生
動画をすべて再生していくのではなく、クライマックス部分のみを再生し、次の動画を自動再生していきます。
例)
元ファイルで、
- "カッパドキア.mp4"の6~16秒の部分
- "気球着陸.mp4"の1~11秒の部分
- "京都御苑.mp4"の13~17秒の部分
- カッパドキア-6-16.mp4
- 気球着陸-1-11.mp4
- 京都御苑-13-17.mp4
条件
- 元ファイル名に"-"を使っていない
- mp4ファイルのみ(現在は)
- 動画はvideoホルダ内
- フリーソフトのVLC media player(3.0.12 Vetinariでした)をダウンロード済
http://www.videolan.org/vlc/
ユーザーガイドは、https://wiki.videolan.org/Documentation:User_Guide/
--マクロ.docx
-- video -- *.mp4(複数)
-- video -- STREAM.xspf(自動生成)
自動生成されたSTREAM.xspfの例
<?xml version='1.0' encoding='UTF-8'?>
<playlist xmlns='http://xspf.org/ns/0/' xmlns:vlc='http://www.videolan.org/vlc/playlist/ns/0/' version='1'>
<trackList>
<track>
<location>カッパドキア-6-16.mp4</location>
<extension application='http://www.videolan.org/vlc/playlist/0'>
<vlc:option>start-time=6</vlc:option>
<vlc:option>stop-time=16</vlc:option>
</extension>
</track>
<track>
<location>京都御苑-13-17.mp4</location>
<extension application='http://www.videolan.org/vlc/playlist/0'>
<vlc:option>start-time=13</vlc:option>
<vlc:option>stop-time=17</vlc:option>
</extension>
</track>
<track>
<location>気球着陸-1-11.mp4</location>
<extension application='http://www.videolan.org/vlc/playlist/0'>
<vlc:option>start-time=1</vlc:option>
<vlc:option>stop-time=11</vlc:option>
</extension>
</track>
</trackList>
</playlist>
STREAM.xspfをダブルクリックすれば、VLC media playerが起動しSTREAM.xspfを読込み順番に自動再生します。参考文献
作って簡単 超便利 Wordのマクロ実践サンプル集 [Word2010/・・・対応]西上原裕明著 技術評論社確認環境
Word 2014
Visual Basic for Applications 7.1 (2012)
マクロファイルの作り方
Word > 白紙の文書 > 開発 > Visual Basic > 標準モジュールのNewMacroに下記マクロを貼付けます > X > ファイルを保存するマクロの実行方法
* videoホルダと同じ層にWordファイルを置きます。Word > 開発 > マクロ > mainを実行
マクロ
Option Explicit '変数宣言を強制
Sub main()
'このファイルの下にvideoフォルダを置きその中にmp4ファイルを入れる。
'mp4ファイルは開始秒と終了秒を記入する。例)video1-15-26.mp4
'videoホルダの中にできたSTREAM.xspfをダブルクリックすると再生される。
'動作前にvideoホルダに"STREAM.txt"と"STREAM.xspf"がない事
'他にword文章を開いていない事
Dim strPath As String: strPath = ActiveDocument.Path 'このファイルの場所
Dim fso As FileSystemObject: Set fso = New FileSystemObject
'新規オブジェクト生成 VBAのツール > 参照設定 > Microsoft Scripting Runtimeをチェックしておく事
Dim fvideo As Folder: Set fvideo = fso.GetFolder(strPath & "\video") 'videoフォルダを取得
Dim f As File 'ファイル
Dim fileName As String 'ファイル名
Dim FNstart, FNstop, FNperiod As Integer '最初の"-"、次の"-"、"."の位置
Dim i As Integer '終了音で使用 整数(約-32k~32k)
Documents.Add '新しく空白文書を開く
Selection.typeText "<?xml version='1.0' encoding='UTF-8'?>" & vbCr '書込む
Selection.typeText "<playlist xmlns='http://xspf.org/ns/0/' xmlns:vlc='http://www.videolan.org/vlc/playlist/ns/0/' version='1'>" & vbCr '書き込む
Selection.typeText "<trackList>" & vbCr '書込む
For Each f In fvideo.Files 'フォルダ内の全ファイルを取得
fileName = f.Name 'ファイル名の取得
FNstart = InStr(2, fileName, "-", vbBinaryCompare) '文字列の2文字目から"-"がある位置
FNstop = InStr(FNstart + 1, fileName, "-", vbBinaryCompare) '次の"-"の位置
FNperiod = InStr(1, fileName, ".", vbBinaryCompare) '"."の位置
If ((FNstart > 0) And (FNstop > 0)) Then
Selection.typeText "<track>" & vbCr '書込む
Selection.typeText " <location>" & fileName & "</location>" & vbCr 'ファイル名
Selection.typeText " <extension application='http://www.videolan.org/vlc/playlist/0'>" & vbCr '書込む
Selection.typeText " <vlc:option>start-time=" '書込む
Selection.typeText Mid(fileName, FNstart + 1, FNstop - FNstart - 1) '開始秒
Selection.typeText "</vlc:option>" & vbCr '書込む
Selection.typeText " <vlc:option>stop-time=" '書込む
Selection.typeText Mid(fileName, FNstop + 1, FNperiod - FNstop - 1) '終了秒
Selection.typeText "</vlc:option>" & vbCr '書込む
Selection.typeText " </extension>" & vbCr '書込む
Selection.typeText "</track>" & vbCr '書込む
End If
Next
Selection.typeText "</trackList>" & vbCr '書込む
Selection.typeText "</playlist>" & vbCr '書込む
ActiveDocument.SaveAs2 fileName:=strPath & "\video\STREAM.txt", _
FileFormat:=wdFormatText, Encoding:=65001 'STREAM.txtに保存,Windowsテキスト,UTF-8
ActiveWindow.Close 'ファイルを閉じる
Set fso = New FileSystemObject '新規オブジェクト生成
Set f = fso.GetFile(strPath & "\video\STREAM.txt") 'ファイルの取得
f.Name = fso.GetBaseName(f.Path) & ".xspf" '拡張子をxspfに変更
Set fso = Nothing 'オブジェクトへの参照を解除
For i = 1 To 10 '終了音
Beep
Next i
End Sub