多くの友人は FFmpeg について聞いたことがないかもしれませんが、Baofeng Yingyin、QQ Yingyin、KMP、GOM Player、PotPlayer (2010)、KMPlayer のいずれかのソフトウェアを使用したことがあるはずです。 FFmpeg はオープンソース ソフトウェアであり、協定に従って FFmpeg を使用するソフトウェアもオープンソースである必要がありますが、これらのオーディオおよびビデオ ソフトウェアは協定に準拠していないため、FFmpeg の「ブラックリスト」に登録されました。

FFmpeg は、LGPL または GPL ライセンスを使用する、オーディオおよびビデオ マルチメディア処理用の主要なオープン ソース フレームワークです。オーディオとビデオの収集、エンコード、デコード、トランスコーディング、オーディオとビデオの分離、結合、ストリーミング、フィルターなどの豊富な機能を提供します。これには、非常に高い信頼性と移植性を備えた非常に高度なオーディオ/ビデオ コーデック ライブラリ libavcodec が含まれています。コーデックの品質により、マルチメディア処理のアーティファクトになります。

同時に、FFmpeg は Windows、Linux、その他のプラットフォームで使用できるコマンド パッケージも提供しています。FFmpeg は使いにくいと思っている人も多いですが、実際には FFmpeg コマンド ツールをインストールすればすぐに実装できます。 Windows でのビデオ形式の変換とビデオ圧縮、およびビデオと写真の間の変換。

無料のオープンソースのビデオおよびオーディオ形式の変換および圧縮ソフトウェア FFmpeg - 形式を変換してビデオを圧縮する方法

その他のウェブマスター ツールとウェブマスター ソフトウェアについては、次のとおりです。

  1. ウェブマスターがバッチで画像に透かしを追加するための必須スキル - XnView および Meitu XiuXiu のバッチ処理メソッド
  2. WordPress に最適なエディタ: Windows Live Writer をインストールして使用する (Windows 10)
  3. Yisoft を使用して安心してスクリーンショットを取得します。ShareX スクリーンショット ツール - 短く、簡潔で、豊富な機能を備えた自動化されたタスクにより、動画やビデオをキャプチャできます。

1.FFmpegソフトウェアのインストール

Webサイト:

  1. 公式サイト:https://ffmpeg.zeranoe.com/builds/
  2. 代替ダウンロード: https://wzfou.com/down/ffmpeg64 (64 ビット)

Web サイトに入ったら、Windows 7 および Mac OS X 10.10 以降をサポートする、インストールするバージョンを選択します。

ダウンロードした圧縮パッケージを解凍して ffmpeg-xxx-win64-static フォルダーを取得し、名前を ffmpeg に変更して、ffmpeg フォルダーをプログラム フォルダーに配置します。たとえば、wzfou.com の配置パスは C: です。

環境変数設定ページを開きます: エクスプローラー > この PC > 右クリック - プロパティ > システムの詳細設定 > 環境変数。 「パス」項目をダブルクリックして編集ページに入り、「新規」を選択し、パス C:ffmpegbin を入力ボックスに貼り付け、保存を確認します。 (拡大するにはクリックしてください)

ここで CMD を開き、「ffmpeg」と入力して Enter キーを押して実行します。戻りメッセージが表示された場合は、FFmpeg が正常にインストールされたことを意味します。

2. FFmpegの簡単な使い方

オーディオとビデオの専門ユーザーでない場合は、FFmpeg の一般的な操作のこの部分のみを視聴でき、その後のより複雑な操作は「オンデマンドで視聴」できます。

2.1 変換フォーマット

FFmpeg 形式を変換するために最も単純で最も一般的に使用されるコマンドは次のとおりです。

ffmpeg -i input.xxx output.xxx

mp4 および flv 形式を変換するには、コマンドは次のとおりです。

ffmpeg -i input.flv output.mp4
#或者
ffmpeg -i input.mp4 output.flv

mp4 および webm 形式を変換するには、コマンドは次のとおりです。

ffmpeg -i input.mp4 output.webm
#或者
ffmpeg -i input.webm output.mp4

2.2 圧縮ビデオ

FFmpeg でビデオを圧縮するコマンドは次のとおりです。

ffmpeg -i input.mp4 -r 10 -b:a 32k output.mp4 #对它降低fps和音频码率的方法大大压缩文件大小,而清晰度不变。
#或者
ffmpeg -i input.mp4 -vcodec libx264 -crf 20 output.mp4 #采用H.264视频压缩算法和AAC音频压缩算法,视频帧率10fps,音频码率32k
#或者是
ffmpeg -i wzfou.mp4 -crf 20 wzfou.mp4
ffmpeg -i wzfou1.flv -crf 20 wzfou1.mp4
ffmpeg -i wzfou1.mp4 -crf 30 wzfou30.mp4
ffmpeg -i 480p.mp4 480p.webm

2.3 GIF を変換する

ビデオを gif に変換するには、コマンドは次のとおりです。

#把视频的前 30 帧转换成一个 Gif
ffmpeg -i input_video.mp4 -vframes 30 -y -f gif output.gif

#将视频转成 gif 将输入的文件从 (-ss) 设定的时间开始以 10 帧频率,输出到 320x240 大小的 gif 中,时间长度为 -t 设定的参数。
ffmpeg -ss 00:00:00.000 -i input.mp4 -pix_fmt rgb24 -r 10 -s 320x240 -t 00:00:10.000 output.gif

3. FFmpegビデオ操作

FFmpegのコマンドパラメータは以下の通りです。

関連手順:

-crt: このオプションは、出力ビデオのビット レートに直接影響します。このパラメータを設定した後、ビット レートを指定する -b の設定は有効になりません。crt の値の範囲は 0 ~ 50 で、0 は歪みのないエンコードです。 、18〜28をお勧めします。

-preset: エンコード構成を指定します。x264 にはいくつかのプリセット値が用意されており、これらのプリセット値は preset を通じて指定できます。プリセットは主にエンコードの速度に影響し、エンコード結果の品質にはあまり影響しません。

トランスコーディング コマンドを実行した後、-crf パラメータ値をそれぞれ 19、20、28、および 51 に調整し、出力を別の MP4 ファイルに再トランスコードします。データを記録し、次のように比較します。

ソース                ファイルサイズ      減速比
crf = 18       46.3 < x2>            21%
crf = 19  < x2>    36.7            <x2 > 33%
crf = 20       31.2       < x2>      43%
crf = 28       26.5               83%
crf = 51        1.25              97 %

3.1 変換形式の指定

通常、FFmpeg はファイル形式に基づいて最適なコンテナ形式とエンコード形式を選択します。または、手動で指定することもできます。例えば:

ffmpeg -i out.ogv -vcodec h264 out.mp4
ffmpeg -i out.ogv -vcodec mpeg4 out.mp4
ffmpeg -i out.ogv -vcodec libxvid out.mp4
ffmpeg -i out.mp4 -vcodec wmv1 out.wmv
ffmpeg -i out.mp4 -vcodec wmv2 out.wmv

-i の後には入力ファイル名が続きます。 -vcodec の後にエンコード形式が続きます。h264 が最適ですが、Windows システムにはデフォルトではインストールされません。 ppt ビデオを挿入する場合は、wmv1 または wmv2 を選択するのが最も適切です。

追加のオプションもあります。-r はフレーム レートを指定し、-s は解像度を指定し、-b はビット レートを指定します。オーディオ チャネルは変更可能です。トランスコーディング、-acodec はオーディオ エンコーディングを指定し、-ab はオーディオ ビット レートを指定し、-ac はチャネル数を指定します。 :

ffmpeg -i out.ogv -s 640x480 -b 500k -vcodec h264 -r 29.97 -acodec libfaac -ab 48k -ac 2 out.mp4

形式 をそのまま変換します。つまり、元のビデオとオーディオのエンコード形式を維持します。 コマンドは次のとおりです。

ffmpeg -i input.flv -vcodec copy -acodec copy out.mp4 #-vcodec copy 和 -acodec copy 表示所使用的视频和音频编码格式,为原样拷贝。

3.2 MP4 ビデオを結合する

FFmpeg は複数のビデオを結合できます。最初に mp4 をロスレス品質で ts に変換してから結合するのが最善です。コマンドは次のとおりです。

ffmpeg -i 1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.ts
ffmpeg -i 2.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 2.ts
ffmpeg -i "concat:1.ts|2.ts" -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4

3.3 解像度サイズの変更

ビデオの解像度を調整したい場合は、次のコマンドを使用できます。

ffmpeg -i input.mp4 -filter:v scale=1280:720 -c:a copy output.mp4
# or
ffmpeg -i input.mp4 -s 1280x720 -c:a copy output.mp4

ビデオのアスペクト比を調整したい場合は、次のコマンドを使用できます。

ffmpeg -i input.mp4 -aspect 16:9 output.mp4
#常见的宽高比:16:9、4:3、16:10、5:4

3.4 ビデオのビットレートを変換する

ffmpeg ビット レートに関連する主なパラメータは、-minrate、maxrate、-b:v です。コマンドは次のとおりです。

ffmpeg -i input.mp4 -b:v 2000k output.mp4

#把原始视频转换成 2 Mbps 码率视频。ffmpeg 官方建议,在设置 -b:v 时,同时加上 -bufsize 用于设置码率控制缓冲器大小,让整体码率更加趋近于希望的值,减少波动。
ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k output.mp4

# -minrate 和 -maxrate 比较简单,设置码率不要低于或者超过某一个阈值
ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k -maxrate 2500k output.mp4

3.5 ビデオの編集とクロップ

ビデオの一部のインターセプトを変更するか、ビデオの特定の部分を保持したい場合、コマンドは次のとおりです。

ffmpeg -i a.mov -ss 00:00:21 -t 00:00:10 -acodec aac -vcodec h264 -strict -2 out.mp4
#其中 -ss 00:00:21 表示开始剪辑的位置(时间点),-t 00:00:10 表示剪辑的长度,即 10 秒钟

ffmpeg -i a.mov -strict -2 -vf crop=1080:1080:0:420 out.mp4
#将竖向的视频 1080 x 1920,保留中间 1080×1080 部分,其中的 crop=1080:1080:0:420 才裁剪参数,具体含义是 crop=width:height:x:y,其中 width 和 height 表示裁剪后的尺寸,x:y 表示裁剪区域的左上角坐标。比如当前这个示例,我们只需要保留竖向视频的中间部分,所以 x 不用偏移,故传入0,而 y 则需要向下偏移:(1920 – 1080) / 2 = 420

4. 映像操作

4.1 写真をビデオに結合する

まず、結合する画像をフォルダーに入れ、img001.pngimg002.pngimg003.png のように名前を変更します。 。

最後に、コマンドを実行して写真をビデオに結合します。

ffmpeg -framerate 24 -i img%03d.png output.mp4
#或者
ffmpeg -r 0.5 -i  img%03d.jpg  video.avi

4.2 画像とビデオの変換

コマンドは次のとおりです。

#将图片序列合成视频
ffmpeg -f image2 -i image%d.jpg video.mpg

#将视频分解成图片序列
ffmpeg -i video.mpg image%d.jpg

#截取一张352x240尺寸大小的,格式为jpg的图片:
ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352x240 a.jpg

#把视频的前30帧转换成一个Animated Gif :
ffmpeg -i test.asf -vframes 30 -y -f gif a.gif

#在视频的第8.01秒处截取 352*240 的缩略图
ffmpeg -i test2.asf -y -f image2 -ss 08.010 -t 0.001 -s 352x240 b.jpg
ffmpeg -r 0.5 -i d:/tmpImg/image%04d.jpg -i d:/time.mp3 -vcodec mpeg4 d:/video5.avi

5. FFmpegのよく使うコマンド

以下は、ffmpeg 形式の変換、ビデオ圧縮、ビデオの結合と切り取りに使用される一般的なコマンドです。

# 去掉视频中的音频
ffmpeg -i input.mp4 -vcodec copy -an output.mp4
// -an: 去掉音频;-vcodec:视频选项,一般后面加copy表示拷贝

# 提取视频中的音频
ffmpeg -i input.mp4 -acodec copy -vn output.mp3
// -vn: 去掉视频;-acodec: 音频选项, 一般后面加copy表示拷贝

# 音视频合成
ffmpeg -y –i input.mp4 –i input.mp3 –vcodec copy –acodec copy output.mp4
// -y 覆盖输出文件

#剪切视频
ffmpeg -ss 0:1:30 -t 0:0:20 -i input.mp4 -vcodec copy -acodec copy output.mp4
// -ss 开始时间; -t 持续时间

#视频截图
ffmpeg –i test.mp4 –f image2 -t 0.001 -s 320x240 image-%3d.jpg
// -s 设置分辨率; -f 强迫采用格式fmt;

# 视频分解为图片
ffmpeg –i test.mp4 –r 1 –f image2 image-%3d.jpg
// -r 指定截屏频率

# 将图片合成视频
ffmpeg -f image2 -i image%d.jpg output.mp4

#视频拼接
ffmpeg -f concat -i filelist.txt -c copy output.mp4

#将视频转为gif
ffmpeg -i input.mp4 -ss 0:0:30 -t 10 -s 320x240 -pix_fmt rgb24 output.gif
// -pix_fmt 指定编码

#将视频前30帧转为gif
ffmpeg -i input.mp4 -vframes 30 -f gif output.gif

#旋转视频
ffmpeg -i input.mp4 -vf rotate=PI/2 output.mp4

#缩放视频
ffmpeg -i input.mp4 -vf scale=iw/2:-1 output.mp4
// iw 是输入的宽度, iw/2就是一半;-1 为保持宽高比

#视频变速
ffmpeg -i input.mp4 -filter:v setpts=0.5*PTS output.mp4

#音频变速
ffmpeg -i input.mp3 -filter:a atempo=2.0 output.mp3

#音视频同时变速,但是音视频为互倒关系
ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mp4


# 视频添加水印
ffmpeg -i input.mp4 -i logo.jpg -filter_complex [0:v][1:v]overlay=main_w-overlay_w-10:main_h-overlay_h-10[out] -map [out] -map 0:a -codec:a copy output.mp4
// main_w-overlay_w-10 视频的宽度-水印的宽度-水印边距;

# 截取视频局部
ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4

# 截取部分视频,从[80,60]的位置开始,截取宽200,高100的视频
ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4

# 截取右下角的四分之一
ffmpeg -i in.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4

# 截去底部40像素高度
ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4

6. FFmpeg ソフトウェアエフェクト

以下は、FFmpeg 圧縮ビデオ効果のデモンストレーションです (ビデオ サイズは 1.3 MB 未満です)。

以下は、FFmpeg によって WebP に変換されたアニメーション画像です (700 KB 未満、クリックしてアニメーションをご覧ください)。

7. まとめ

FFmpeg は、クライアントほど使いやすいわけではありませんが、いくつかの基本的なコマンドをマスターすれば、MP4、FLV、Gif、WebP などの形式の変換とボリューム圧縮を完了できます。 Windows および Linux プラットフォームでは一般的です。

同時に、FFmpeg はプロのユーザーにも適しています。ビデオ、オーディオ、その他の形式に特定の要件がある場合は、FFmpeg の公式パラメータを参照して、変換形式と圧縮にいくつかのパラメータを追加するだけです。ビデオの変換と圧縮の速度は非常に高速です。

返信を残す