序#
最近 FFmpeg の強力さを発見し、様々な音声と動画の操作ができることを利用しています。多くのソフトウェアも FFmpeg を引用しており、主に無料でオープンソースのツールであるため、ライセンスなしで使用できます。ここでは、FFmpeg の一般的なコマンドのメモを簡単にまとめて、小白読者が自分の動画のエンコーディングを簡単に変換できるようにします!ここでの内容の大部分は、ネット上の情報を参考にして引用元を示しています。
さあ、一緒に遊んでみましょう ฅ՞・ﻌ・՞ฅ
FFmpeg のインストール#
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 の 22 年の新製品はすべて 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 動画ビットレート
-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 動画コーディング方式
音声の圧縮#
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 を使用して動画ストリームと音声ストリームを分離する
ビットレート制御(一):ビットレート制御モードの理解(x264,x264,vpx)
この記事は Mix Space によって xLog に同期更新されました。
元のリンクは https://www.miaoer.net/posts/blog/ffmpeg