初投稿です。
なにかおかしいところ(情報やマナーなど)がございましたら教えてくれると嬉しいです。
※この記事ではWindows11を使いffmpegはバージョン7.0を使用しています。
※前提条件としてffmpegがインストール済みであるとします。
なぜbatファイルやffmpegを使う必要があるのか
ffmpegとはオープンソースのマルチメディアフレームワークのことで、主に映像や音声ファイルをコマンドで弄くれるものです。 これを使って例えば拡張子を変更したり、そのファイルの細かい情報(再生時間や動画なら縦横の長さなど)を見たりすることができます。
これのすごいところは基本何でもできることなんですよね
コマンドで操作するので表現の幅が無限大過ぎてやってて楽しいので採用しました。
今回は拡張子を変更してみたいと思います。
batとは拡張子の一種でこのように表します。(例:hello.bat)この中にコードを書いて実行するとコマンドプロンプトがその通りに動いてくれるというやつでめっちゃ便利です。
そもそもなんでこれを作ったかというと、エクスプローラーから拡張子は変更できるっちゃできるんですが不便なとこがあったので、サイトを使ってたんですが拡張子をいちいちサイトで変換するのはめんどくさいしソフトをダウンロードするのも容量の無駄なので手持ちにあったffmpegで変換しよう!ってことで作った次第です。
batファイルは使うことで何も考えずとも使えるし手軽に作れるので採用しました。
実際に作ってみる
今回の完成品はこんな感じです。
@echo off
chcp 65001
cd \
set /p "input=ファイルをドラッグアンドドロップしてね:"
set /p "name=出力ファイルの名前と拡張子を書いてね:"
rem 保存先のパス
set save=C:\Users\UserName\Downloads\%name%
ffmpeg -i %input% %save%
pause
一行ずつ流れを見ていくと
@echo off
でC:\Users\UserName>こういうのを消して
chcp 65001
で文字コードをUTF-8にして
cd \
でcドライブの直下に移動して
set /p "input=ファイルをドラッグアンドドロップしてね:"
でinput
変数に/p
で入力状態にして
(これが変換するファイルのパスを入力するコード)
set /p "name=出力ファイルの名前と拡張子を書いてね:"
でname
変数に/p
で入力状態にして
(これが変換後のファイルの名前と拡張子を入力するコード)
rem 保存先のパス
これはただのコメント
set save=C:\Users\UserName\Downloads\%name%
でsave
変数に保存先のフォルダパスをいれて
(文末に変換後のファイルをそのフォルダにいれるため%name%を使う)
ffmpeg -i %input% %save%
で%input%
を使って変更したいファイルのパスをそこに代入して%save%
で保存先のパスを代入して拡張子を変換します。
pause
これはコマンドプロンプトが一瞬で閉じないようにするためのやつです。
これを拡張子が.txt(例:hello.txt)に入力して拡張子を.batに変更してから実行すると成功します。必ず.txtに書いてから.batに変更してください。
パス入力(input変数)は変更したいファイルをドラッグアンドドロップすれば勝手に入力されます。
まとめ
このコードはまだまだ未完成で例えばsave変数をコマンドプロンプト側から変更したり複数のファイルを変更したりエラー処理をしたり細かい設定を、、とかいっぱいあるけど今回は見やすさ重視でシンプルに書きました。
みなさんもbatファイルで色々遊んでみると楽しいですよ!ではさようなら!