カテゴリー
Windows

Windows 上で VLC を使って MP4 に SRT を焼き込むための bat ファイル。

ここんとこ mp4 ファイルと srt ファイルをマージする必要があった。単にマージするだけだと、 MP4Box を使うのが簡単だし早い。だけども今回は、 mp4 に字幕を焼き込む必要があった。どうも MP4Box には焼き込みの機能がないみたいに思ったのだが、正しいだろうか?いずれにしても私は MP4Box でうまくやれなかったので、ネット上を探し回って、こんなのを YouTube で発見した。素晴らしい。けど問題は、 VLC GUI でやると 1 ファイル 1 ファイルごとに繰り返しセットしてやらないといけない。これは面倒。というわけで、このための bat ファイルを作った。
 VLC の bat ファイルでの transcode については、 Transcode – VideoLAN Wiki を参照してください。

setlocal enabledelayedexpansion

set VLCEXE="C:\Program Files\VideoLAN\VLC\vlc.exe"
set InputFileExtension=mp4
set OutFolder=

pushd %~dp0
if "!OutFolder!" NEQ "" (
	if not exist "!OutFolder!" (
		mkdir !OutFolder!
	)
)
set Dist=!OutFolder!
for %%a in (%*) do (
	if %%~xa==.!InputFileExtension! (
		if "!OutFolder!"=="" set Dist=%%~dpa
		cmd /c
		!VLCEXE! -I dummy -vvv %%a --sout #transcode{vcodec=h264,scale=auto,acodec=mpga,ab=128,channels=2,samplerate=44100,soverlay}:file{dst=!Dist!\sub_%%~na.mp4,no-overwrite} :no-sout-all :sout-keep vlc://quit
	)
)
popd
exit

 自分のファイルの変換作業終了後、 bat にちょっとした改良を加えた。

【使い方】

  1. 上のコードをコピペして、テキストエディタで ‘hardecoding_subs_by_vls.bat’ なんて物を作る。ここに ‘hardecoding_subs_by_vls.txt’ を置いてあるので、ダウンロードしてもいいです。拡張子は、 txt から bat に変えてください。
  2. hardecoding_subs_by_vls.bat を PC の適当なところに置き、デスクトップにショートカットを作る。
  3. mp4 ファイルと srt ファイルを用意する。当たり前だが😁。対になるファイルは、同一フォルダに入れて同一名にしておかないといけない。例えば ‘sample.mp4’ と ‘sample.srt’ みたいな感じ。
  4. 操作は、 mp4 ファイルのアイコンをショートカットアイコンにドラッグ&ドロップするだけ。 mp4 がいくつあっても、まとめて操作可能。
  5. トランスコードは、元 mp4 ファイルの長さと同じくらいの時間がかかる。したがって、元 mp4 の総時間が長ければ、長く待たされることになる。

些細なオプションがある。

  • VLCEXE=”C:Program FilesVideoLANVLCvlc.exe”
    32-bit 版の VLC を Windows 64-bit 版にインストールしているときは、ここを VLCEXE=”C:Program Files (x86)VideoLANVLCvlc.exe” に変更する。
  • InputFileExtension=mp4 は文字通りの意味😁。
  • OutFolder=
    デフォルトはブランクで、デフォルトのまま使うと、作られるファイルは元 mp4 と同じフォルダに出来る。
    ここに何か書くと、例えば OutFolder=D:subfiles とか、作られるファイルはすべて D:subfiles に出来る。ただ、上記 bat は mp4 ファイルの名前チェックをしていないので、元ファイル名が同じだと上書きが起こってしまう。この点は、注意してほしい。
The same article in English

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です