「⧅ffmpeg」の版間の差分
(ページの作成:「パソコンに戻る == '''概要''' == ffmpegはほぼ全ての形式を網羅した動画変換と少しのエフェクト・編集ができるアプリケーションでもあり、ソフトウェアです。コマンドプロンプトでの操作が基本となっているソフトウェアで、GUIもあるよ。という感じです。 === '''インストール''' === ffmpeg-guiというGUI形式の専用アプリ…」) |
|||
(同じ利用者による、間の7版が非表示) | |||
25行目: | 25行目: | ||
*動画・音声ファイルの詳細情報取得 | *動画・音声ファイルの詳細情報取得 | ||
< | <syntaxhighlight lang="Shell scripts"> | ||
>ffmpeg -i [ファイル名] | >ffmpeg -i [ファイル名] | ||
</ | </syntaxhighlight> | ||
-i 入力ファイル名を -i の後ろにスペースを一つ追加した後に記述することを意味しますが、変換・加工処理をして出力するファイル名を省略した場合は入力ファイルの詳細情報が表示されます。以降 -i のオプションのように引数値を指定する場合にスペースを一つあけて記述すること自体を <span style = "background:linear-gradient(transparent 75%, #ff7f7f 75%); font-weight:bold; ">-i の引数</span>という風に呼ぶことにします。都度、スペースの後ろにとか説明していると読んでいる人に分かり難いし、記事を書く管理人も疲れます。winwinです。 | -i 入力ファイル名を -i の後ろにスペースを一つ追加した後に記述することを意味しますが、変換・加工処理をして出力するファイル名を省略した場合は入力ファイルの詳細情報が表示されます。以降 -i のオプションのように引数値を指定する場合にスペースを一つあけて記述すること自体を <span style = "background:linear-gradient(transparent 75%, #ff7f7f 75%); font-weight:bold; ">-i の引数</span>という風に呼ぶことにします。都度、スペースの後ろにとか説明していると読んでいる人に分かり難いし、記事を書く管理人も疲れます。winwinです。 | ||
*動画・音声ファイルの簡単な変換 | *動画・音声ファイルの簡単な変換 | ||
< | <syntaxhighlight lang="Shell scripts"> | ||
>ffmpeg -i 元の動画ファイル名と入力のパス [オプション] 変換後の動画ファイル名と出力のパス | >ffmpeg -i 元の動画ファイル名と入力のパス [オプション] 変換後の動画ファイル名と出力のパス | ||
</ | </syntaxhighlight> | ||
カレントディレクトリ。作業中のディレクトリにファイルを置いたり、出力したりする場合はファイルのパスに関する情報は必要ありません。ファイル形式を変えるだけの処理で、変換後のファイル形式とも互換性があるときは、オプションを省くことが出来ます。拡張子から判断します。[[⧅ffmpeg 全てのエンコード(ファイル生成)・デコード(ファイル読み込み)可能なファイル形式|ファイルの拡張子]]は、こちらのエンコード・デコード対応ファイル形式、一覧表を確認して下さい。オプションを指定しない場合、動画ファイルのコンテナーの形式だけが変わる感じになります。コンテナー中身にあるビデオ形式やオーディオの形式が保持されます。まぁ普通はオプション付けるでしょうね。動画ファイルは箱の中に<span style = "background:linear-gradient(transparent 75%, #ff7f7f 75%); font-weight:bold; ">ストリームという単位でビデオだったりオーディオだったり字幕だったりを保持して構成</span>されています。このときの<span style = "background:linear-gradient(transparent 75%, #ff7f7f 75%); font-weight:bold; ">箱のことをコンテナー</span>と呼びます | カレントディレクトリ。作業中のディレクトリにファイルを置いたり、出力したりする場合はファイルのパスに関する情報は必要ありません。ファイル形式を変えるだけの処理で、変換後のファイル形式とも互換性があるときは、オプションを省くことが出来ます。拡張子から判断します。[[⧅ffmpeg 全てのエンコード(ファイル生成)・デコード(ファイル読み込み)可能なファイル形式|ファイルの拡張子]]は、こちらのエンコード・デコード対応ファイル形式、一覧表を確認して下さい。オプションを指定しない場合、動画ファイルのコンテナーの形式だけが変わる感じになります。コンテナー中身にあるビデオ形式やオーディオの形式が保持されます。まぁ普通はオプション付けるでしょうね。動画ファイルは箱の中に<span style = "background:linear-gradient(transparent 75%, #ff7f7f 75%); font-weight:bold; ">ストリームという単位でビデオだったりオーディオだったり字幕だったりを保持して構成</span>されています。このときの<span style = "background:linear-gradient(transparent 75%, #ff7f7f 75%); font-weight:bold; ">箱のことをコンテナー</span>と呼びます | ||
[[⧅ffmpeg 全てのエンコード(ファイル生成)・デコード(ファイル読み込み)可能なファイル形式]] | ■[[⧅ffmpeg 全てのエンコード(ファイル生成)・デコード(ファイル読み込み)可能なファイル形式]] | ||
[[⧅ffmpeg 全てのオプション一覧と可能な限りの説明]] | [[⧅ffmpeg 全てのオプション一覧と可能な限りの説明]] | ||
=== '''よく使うコマンド''' === | |||
*ファイル情報を見る。拡張子は適宜。-hide_bannerオプションは毎回表示されるffprobeについての情報の部分を隠す意味があります。 | |||
<syntaxhighlight lang="Shell scripts"> | |||
…>ffprobe -hide_banner "動画ファイル名.mp4" | |||
</syntaxhighlight> | |||
*動画と音声ファイルの対をxvid(DivX)形式の*.avi(mp3は4.8K 128kbps、動画はプログレッシブのfps30 720x480 16:9 600kbps)として生成する。 | |||
<syntaxhighlight lang="Shell scripts"> | |||
…>ffmpeg -i "元の動画.mp4" -i "元の音声ファイル.mp3" -sn -c:a libmp3lame -ar 48000 -ab 128k -ac 2 -c:v libxvid -crf 24 -vtag DIVX -vf "fps=30,scale=720:480" -aspect 16:9 -mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 30 -b:v 600k -minrate 600k -maxrate 600k -map 0:v -map 1:a -deinterlace "出力ファイル名.avi" | |||
</syntaxhighlight> | |||
*動画と音声ファイルの対をxvid(DivX)形式に変換する。音声も動画も同じファイルを使う。mp4を入力にしていますが、拡張子はなんでも大丈夫です。入力ファイルを解析して変換してくれます。1600kbpsの高画質の例。通常は600kbpsくらいで十分です。 | |||
<syntaxhighlight lang="Shell scripts"> | |||
…>ffmpeg -i "入力動画ファイル名.mp4" -sn -c:v libxvid -crf 24 -vtag DIVX -vf "fps=30,scale=720:480" -aspect 16:9 -mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 30 -b:v 1600k -minrate 1000k -maxrate 1900k -map 0:v -map 0:a -deinterlace "出力動画ファイル名.avi" | |||
</syntaxhighlight> | |||
*動画に埋め込まれているmp3を抜き出す。そのままの形式でいい場合 | |||
<syntaxhighlight lang="Shell scripts"> | |||
…>ffmpeg -i "元の動画.mp4" -acodec copy -map 0:1 "出力音声ファイル名.mp3" | |||
</syntaxhighlight> | |||
*動画に埋め込まれているmp3を抜き出す。libmp3lameで符号化する場合 | |||
<syntaxhighlight lang="Shell scripts"> | |||
…>ffmpeg -i "元の動画.mp4" -acodec libmp3lame -map 0:1 "出力音声ファイル名.mp3" | |||
</syntaxhighlight> | |||
*画像1枚と音声ファイルからmp4形式の映像を作る場合(Youtubeアップロード用。広告表示非対象。) | |||
<syntaxhighlight lang="Shell scripts"> | |||
…>ffmpeg -loop 1 -i "画像ファイル名" -i "音声ファイル名" -vcodec libx264 -acodec aac -ab 160k -ac 2 -ar 48000 -pix_fmt yuv420p -shortest "出力ファイル名.mp4" | |||
</syntaxhighlight> | |||
==='''関連情報'''=== | ==='''関連情報'''=== |
2024年1月24日 (水) 23:38時点における最新版
パソコンに戻る
概要
ffmpegはほぼ全ての形式を網羅した動画変換と少しのエフェクト・編集ができるアプリケーションでもあり、ソフトウェアです。コマンドプロンプトでの操作が基本となっているソフトウェアで、GUIもあるよ。という感じです。
インストール
ffmpeg-guiというGUI形式の専用アプリケーションがありますが、コマンドで操作するのが柔軟です。
本家
インストールしたら、環境変数のPathへの登録をしましょう。どのフォルダがカレントディレクトリであってもffmpegというコマンドが使えるようにします。
[コントロールパネル]-[システム]-[システムの詳細設定]-[詳細設定]タブ-[環境変数]ボタンから下側のシステム環境変数側のpathという項目を選択した状態で[編集]ボタンを押して、[追加]ボタンを押して
- C:\Program Files\ffmpeg\bin
と登録します。インストールしたディレクトリによってffmpeg以前のディレクトリ階層が異なる可能性があります。
使い方
ここでは基本的な使い方を紹介します。引数、オプション、オプションの値、オプションの中の要素。要素に対する値と多岐にわたる使い方があります。普通にこれらの全ての説明をしようと思うと、数千行の文章量になってしまいます。
- 動画・音声ファイルの詳細情報取得
>ffmpeg -i [ファイル名]
-i 入力ファイル名を -i の後ろにスペースを一つ追加した後に記述することを意味しますが、変換・加工処理をして出力するファイル名を省略した場合は入力ファイルの詳細情報が表示されます。以降 -i のオプションのように引数値を指定する場合にスペースを一つあけて記述すること自体を -i の引数という風に呼ぶことにします。都度、スペースの後ろにとか説明していると読んでいる人に分かり難いし、記事を書く管理人も疲れます。winwinです。
- 動画・音声ファイルの簡単な変換
>ffmpeg -i 元の動画ファイル名と入力のパス [オプション] 変換後の動画ファイル名と出力のパス
カレントディレクトリ。作業中のディレクトリにファイルを置いたり、出力したりする場合はファイルのパスに関する情報は必要ありません。ファイル形式を変えるだけの処理で、変換後のファイル形式とも互換性があるときは、オプションを省くことが出来ます。拡張子から判断します。ファイルの拡張子は、こちらのエンコード・デコード対応ファイル形式、一覧表を確認して下さい。オプションを指定しない場合、動画ファイルのコンテナーの形式だけが変わる感じになります。コンテナー中身にあるビデオ形式やオーディオの形式が保持されます。まぁ普通はオプション付けるでしょうね。動画ファイルは箱の中にストリームという単位でビデオだったりオーディオだったり字幕だったりを保持して構成されています。このときの箱のことをコンテナーと呼びます
■⧅ffmpeg 全てのエンコード(ファイル生成)・デコード(ファイル読み込み)可能なファイル形式
よく使うコマンド
- ファイル情報を見る。拡張子は適宜。-hide_bannerオプションは毎回表示されるffprobeについての情報の部分を隠す意味があります。
…>ffprobe -hide_banner "動画ファイル名.mp4"
- 動画と音声ファイルの対をxvid(DivX)形式の*.avi(mp3は4.8K 128kbps、動画はプログレッシブのfps30 720x480 16:9 600kbps)として生成する。
…>ffmpeg -i "元の動画.mp4" -i "元の音声ファイル.mp3" -sn -c:a libmp3lame -ar 48000 -ab 128k -ac 2 -c:v libxvid -crf 24 -vtag DIVX -vf "fps=30,scale=720:480" -aspect 16:9 -mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 30 -b:v 600k -minrate 600k -maxrate 600k -map 0:v -map 1:a -deinterlace "出力ファイル名.avi"
- 動画と音声ファイルの対をxvid(DivX)形式に変換する。音声も動画も同じファイルを使う。mp4を入力にしていますが、拡張子はなんでも大丈夫です。入力ファイルを解析して変換してくれます。1600kbpsの高画質の例。通常は600kbpsくらいで十分です。
…>ffmpeg -i "入力動画ファイル名.mp4" -sn -c:v libxvid -crf 24 -vtag DIVX -vf "fps=30,scale=720:480" -aspect 16:9 -mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 30 -b:v 1600k -minrate 1000k -maxrate 1900k -map 0:v -map 0:a -deinterlace "出力動画ファイル名.avi"
- 動画に埋め込まれているmp3を抜き出す。そのままの形式でいい場合
…>ffmpeg -i "元の動画.mp4" -acodec copy -map 0:1 "出力音声ファイル名.mp3"
- 動画に埋め込まれているmp3を抜き出す。libmp3lameで符号化する場合
…>ffmpeg -i "元の動画.mp4" -acodec libmp3lame -map 0:1 "出力音声ファイル名.mp3"
- 画像1枚と音声ファイルからmp4形式の映像を作る場合(Youtubeアップロード用。広告表示非対象。)
…>ffmpeg -loop 1 -i "画像ファイル名" -i "音声ファイル名" -vcodec libx264 -acodec aac -ab 160k -ac 2 -ar 48000 -pix_fmt yuv420p -shortest "出力ファイル名.mp4"
関連情報
パソコンに戻る