banner
miaoer

miaoer

喵二の小博客 https://www.miaoer.net xLog 分站
tg_channel
telegram
bilibili

FFmpeg の一般的なコマンド

#

最近 FFmpeg を発見し、使用してみたところ、非常に強力で、さまざまな音声と動画の操作ができることがわかりました。いくつかのソフトウェアも FFmpeg を引用しています。主に無料でオープンソースで、ライセンスが不要なツールであるためです。ここでは、FFmpeg の一般的なコマンドについて簡単にメモを作成し、初心者の読者が自分の動画のエンコーディングを簡単に変換できるように手助けします!ここでのほとんどの内容は、ネット上の既存の情報を参考にしています。

一緒に遊んでみましょう ฅ՞・ﻌ・՞ฅ

FFmpeg のインストール#

image

Windows#

FFmpeg はソースコードのみを提供しており、コンパイルが必要ですが、すでにコンパイルされた FFmpeg を直接使用できるリポジトリのリリース版があります。

https://github.com/BtbN/FFmpeg-Builds/releases

Ubuntu#

sudo add-apt-repository universe
sudo apt update
sudo apt install ffmpeg

概覧#

コンテナ形式#

私たちがよく見る動画ファイル形式は、実際にはコンテナそのもので、コンテナの中には動画トラック、音声トラック、メタデータ、字幕、タイトル、カバーなどが含まれています……
一般的な動画コンテナ形式には以下が含まれます。

  • MP4 (MPEG 4)
  • MKV (Matroska)
  • WebM
  • AVI (ASF)
  • MOV (QuickTime)

TOP: WebM は最近人気の AV1、VP9、VP8 でよく使用されるコンテナで、コーデックには特定のハードウェアアクセラレーションが必要です。

例えば、AIN の 2022 年の新製品はすべて AV1 のコーデックハードウェアアクセラレーションをサポートしています。

エンコーディング#

一般的なエンコーディングの種類には、ライセンス付きエンコーディング、著作権フリーエンコーディング、音声エンコーディング形式が含まれます。

ライセンス付きエンコーディング

  • H.262
  • H.264
  • H.265

著作権フリーエンコーディング

  • VP8
  • VP9
  • AV1

音声エンコーディング形式

  • MP3
  • AAC

動画エンコーダ

  • libx264: 最も人気のあるオープンソースの H.264 エンコーダ
  • NVENC: NVIDIA GPU に基づく H.264 エンコーダ
  • libx265: オープンソースの HEVC エンコーダ
  • libvpx: Google の VP8 および VP9 エンコーダ
  • libaom: AV1 エンコーダ

音声エンコーダ

  • libfdk-aac
  • aac

インストール済みの FFmpeg エンコーダを確認する

ffmpeg -encoders

使用方法#

ffmpeg [1] [2] -i [3] [4] [5]

[1] グローバルパラメータ

[2] 入力ファイルパラメータ

[3] 入力ファイル

[4] 出力ファイルパラメータ

[5] 出力ファイル

パラメータ#

  • -c: エンコーダを指定
  • -c copy: 再エンコードせずに直接コピー、より速い
  • -c:v: 動画エンコーダを指定
  • -c:a: 音声エンコーダを指定
  • -i: 入力ファイルを指定
  • -an: 音声ストリームを削除
  • -vn: 動画ストリームを削除
  • -preset: 動画エンコーディング品質 ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow
  • -y: 確認なしで、同名のファイルを上書き出力

詳細:https://zh.m.wikipedia.org/zh-hans/FFmpeg


ファイル情報#

ffmpeg -i input.mp4

メタ情報のみを表示、クリーン
ffmpeg -i input.mp4 -hide_banner

フォーマット変換#

ffmpeg -i input.avi output.mp4

直接コピーが最も速い
ffmpeg -i input.avi -c copy output.mp4

-i 入力ファイル

-c copy 直接コピーして再エンコードせずに速度を向上

エンコード変換#

ffmpeg -i input.mp4 -c:v libx264 output.mp4

H.265エンコーダを選択
ffmpeg -i input.mp4 -c:v libx265 output.mp4

-i 入力ファイル

-c エンコーダを変換

トリミング#

ffmpeg -ss 00:00:00 -t 00:00:30 -i input.mp4 -vcodec copy -acodec copy output.mp4

-ss 開始時間

-t 終了時間

-i 入力ファイル

ビットレート#

この章は専門的すぎるため、より深い理解が必要です!ここでは最も簡単なエンコーディング方法を示し、圧縮設定は含まれていません。

ABR (VBR) 二次エンコード#

ffmpeg -i input.mp4 -c:v libx264 -b:v 1M -pass 1 -f null /dev/null
ffmpeg -i input.mp4 -c:v libx264 -b:v 1M -pass 2 output.mp4

もちろん、VBRを一度だけ行うこともできます
ffmpeg -i input.mp4 -c:v libx264 -b:v 1M -pass 1 output.mp4

CBR 恒常ビットレート#

2Mビットレートに圧縮
ffmpeg -i input.mp4 -b:v 2M output.mp4

2Mビットレートに安定して圧縮
ffmpeg -i input.mp4 -b:v 2M -bufsize 2M output.mp4

2Mビットレートに安定し、最大2.5Mビットレートを許可
ffmpeg -i input.mp4 -b:v 2M -bufsize 2M -maxrate 2.5M output.mp4

libx264エンコーダを使用して、最小1Mビットレート、最大2Mビットレート、安定して1Mビットレートに設定
ffmpeg -i input.mp4 -c:v libx264 -b:v 1M -minrate 1M -maxrate 2M -bufsize 1M output.mp4

-i 入力ファイル

-b 音声ビットレート

-b 動画ビットレート

-minrate 最小ビットレートを許可

-maxrate 最大ビットレートを許可

-bufsize ビットレート制御バッファ

サイズ#

ffmpeg -i input.avi -fs 114M output.mp4

-i 入力ファイル

-fs ファイルサイズを制御

解像度#

ffmpeg -i input.mp4 -vf scale=1920:1080 output.mp4

アスペクト比を保持するには -1 を使用
ffmpeg -i input.mp4 -vf scale=1920:-1 output.mp4

-i 入力ファイル
[アスペクト比を保持 -1]

FPS#

ffmpeg -i input.avi -r 30 output.mp4

-i 入力ファイル

-r フレームレート値

音声抽出#

ffmpeg -i input.mp4 -aq 0 -f mp3 -vn output.mp3
ffmpeg -i input.mp4 -acodec aac -vn output.mp3

-i 入力ファイル

-f 出力形式

-vn 動画を含まない

-aq 0 圧縮品質

-acodec 音声コーデックを設定

音声と動画の分離#

動画を分離

ffmpeg -i input.mp4 -vcodec copy -an output.mp4

acc 形式を分離

ffmpeg -i input.mp4 -acodec copy -vn output.m4a
ffmpeg -i m.m4a m.mp3

音声を直接抽出

ffmpeg -i mavel4.mp4 m.mp3

音声と動画の結合#

ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -strict experimental output.mp4

-i 入力ファイル

-c 音声エンコーディング方式

-c 動画エンコーディング方式

音声の圧縮#

ffmpeg -i input.wav -b:a 64k -acodec mp3 -ar 44100 -ac 1 output.mp3

-i 入力ファイル

-b ビットレート

-ar サンプリングレート

スクリーンショット#

指定時間のスクリーンショット

ffmpeg -ss 00:11:45 -i input.mp4 -r 1 output.jpg 

最初からフレームを抽出してスクリーンショット

ffmpeg -i input.mp4 -r 1 -q:v 2 -f image2 output.jpg

-i 入力ファイル

-r 秒ごとに 1 フレーム

-q 画像品質

-f 出力形式

カバー#

動画のカバー

ffmpeg -i input.mp4 -i input.jpg -map 0 -map 1:0 -c copy -disposition:v:1 output.mp4

音声のカバー

ffmpeg -i input.mp3 -i input.jpg -map 0:0 -map 1:0 -codec copy -id3v2_version 3 \ 
-metadata:s:v title="アルバムカバー" -metadata:s:v comment="カバー (前面)" output.mp3

引用:
FFmpeg 動画処理入門チュートリアル

ffmpeg を使用して動画ストリームと音声ストリームを分離する

ffmpeg の一般的なパラメータの説明と例

ビットレート制御(一):ビットレート制御モードの理解(x264,x264,vpx)

この記事は Mix Space によって xLog に同期更新されました
元のリンクは https://www.miaoer.net/posts/blog/ffmpeg


読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。