LoginSignup
2
2

More than 3 years have passed since last update.

VLCを使ってmp3変換をバッチ処理

Posted at

概要

VLCはプレイヤーとしてだけでも便利ですが、変換機能も便利ですよね。動画から音声だけを抜き出すのに使ってます。
1ファイルだけでもちょっと操作が面倒なのですが、ファイルが沢山あるとさらに面倒なので、windowsのバッチファイルにして引数で指定できるようにしました。

ソース

conv.bat
@echo off
set VLC="C:\Program Files (x86)\VideoLAN\VLC\vlc.exe"
set INPUT_FILENAME="%1"
REM 拡張子3文字固定
set OUTPUT_FILENAME=%INPUT_FILENAME:~0,-5%.mp3"

%VLC% --no-repeat --play-and-exit -I dummy -vvv %INPUT_FILENAME% --sout "#transcode{vcodec=none,acodec=mp3}:file{dst=%OUTPUT_FILENAME%}" vlc://quit
if exist %OUTPUT_FILENAME% (
    echo Done.
) else (
    echo Error.
)

呼び出し

$> conv.bat hoge.mp4

ポイント

普通にコマンドラインで呼ぶと、ずっと処理が返らないことがあります。これには2つ原因があります。

1つは、処理が終わった時にVLCを終了する指定。
今回は--play-and-exit, vlc://quit の両方をつけておきましたが、どちらか1つだけでも大丈夫でした。汎用的には後者のほうが良さそうです。

もう1つはループ。デフォルトなのか保存された設定なのかわかりませんが、全曲リピート指定されていると、処理がずっとループしてしまいます。--no-repeat でリピートしない指定にしています。

補足

  • 面倒なので拡張子は3文字固定で、それをmp3に変えるようにしました。
  • サンプリングレート、チャンネル数なども指定できますが今回は省略。
  • 出力ファイルが出来たかどうかは出力するようにしておきました。

参考リンク

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2