ffmpegで動画形式を一括変換

notify:

📢 この記事は gemini-2.5-flash によって翻訳されました

はじめに

YouTube-dl を使い始めてから、チャンネルの全コンテンツをダウンロードするのにすごく便利だってわかったんだけど、ダウンロードしたファイルがwebm形式で互換性があんまり良くなかったんだ。だからffmpegを使った形式変換コマンドを調べてみたよ。

設定ファイル

後で設定ファイルをちょこっと変更するだけでいいって気づいたんだ。ファイルの後ろにこれを追加するだけ。

1
--merge-output-format mp4

僕の設定ファイルはこれ。

1
-o 'C:/Users/yexca/Downloads/Video/%(uploader)s/%(upload_date)s%(title)s%(id)s.%(ext)s' --merge-output-format mp4

個別変換コマンド

このコマンドを使えば、サクッとトランスコードできるよ。

1
ffmpeg -i before.webm after.mp4

でも、一つずつ変換するのはさすがに遅すぎるから、バッチ処理を使うことを思いついたんだ。

バッチ処理

メモ帳を新規作成して、以下のコードを入力してね。

1
for %%a in (*.webm) do ffmpeg -i "%%~a" -vcodec copy -f mp4 "%%~na.mp4"

ここで、(*.webm)は元のファイル形式で、"%%~na.mp4"は作成したいファイル形式のことだよ。

そしてrun.batという名前で保存して、該当のフォルダに入れて実行すればOK。

でもこれだと、毎回違うファイルを変換するたびに編集しなきゃいけないから、あんまり実用的じゃないんだよね(

DOSコマンド(ちょっと改良)

それでbatファイルのことちょっと調べて、簡単なプログラム書いてみたんだ(コマンドラインで日本語をちゃんと表示するにはGB2312エンコーディングを使う必要があるよ)。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
echo off
:0
echo 請輸入數字選擇操作
echo 1.轉碼
echo 2.刪除
echo 3.退出
set /p choice=請選擇
goto %choice%
:1
set /p before=請輸入轉碼前文件格式
set /p after=請輸入轉碼後文件格式
echo 開始轉碼%before%到%after%
for %%a in (*.%before%) do ffmpeg -i "%%~a" -vcodec copy -f %after% "%%~na.%after%"
echo 轉碼完成
goto 0
:2
set /p delet=請輸入需要刪除的文件格式
echo 開始刪除%delet%
del *.%delet%
del %delet%
echo 刪除完成
goto 0
:3
exit

該当するフォルダに入れて使えばいいよ。

参考記事

youtube-dl のいくつかの実用的なテクニック · eisen blog

初心者向け!FFmpegコマンド例20選以上 - 知乎

FDMがダメになった、youtube-dlは激遅、肉焼き師の終末が来た! における AnnMilne のコメント

batコマンドでffmpegをバッチ変換 - 五仁の記録

Batコマンド学習 - 陽光雨露& - ブログ園

bat setコマンド詳細解説_pythonベテラン初心者のブログ-CSDNブログ

This post is licensed under CC BY-NC-SA 4.0 by the author.

Visits Since 2025-02-28

Hugo で構築されています。 | テーマ StackJimmy によって設計されています。