優れたソフトウェアと実用的なチュートリアル
CentOS 8にRHEL 8をインストールする方法 リナックスシステムにインストールFFmpegFFmpeg は、MPEG1 オーディオおよびビデオ、MPEG4、h263、ac3、asf、avi、real、mjpeg、Flash などのさまざまな形式のマルチメディア ファイルを再生、エンコード、デコード、ストリーミング、トランスコード、多重化、逆多重化、フィルタリングするための無料のオープン ソース マルチメディア フレームワークです。
FFmpegは、Linux、macOS、Windows、BSD、Solarisなど、様々なビルド環境、構成、マシンアーキテクチャで動作するクロスプラットフォームアプリケーションです。Linuxで利用可能なほとんどのメディアプレーヤー、およびオーディオ/ビデオダウンローダーやコンバーター(youtube-dlなど)は、FFmpegの動作を必要とします。
FFmpegツール
これらは FFmpeg の主な構成要素です:
ffmpeg – マルチメディアファイルの形式を変換するためのコマンドラインツール
ffplay – SDLとFFmpegライブラリをベースにしたシンプルなメディアプレーヤー
ffprobe – シンプルなマルチメディアストリームアナライザー
FFmpeg には、libavutil、libavcodec、libavformat、libavdevice、libavfilter、libswscale、libswresample などの開発者ライブラリも含まれています。
次の ffmpeg の図は、各出力のトランスコーディング プロセスを示しています。
CentOS 8 / RHEL 8にFFmpegをインストールする方法
CentOS 8 / RHEL 8 Linux に FFmpeg をインストールする前に、システム環境が完全に構成されていることを確認してください。
RPMfusion Yumリポジトリをインストールする
RPM Fusionデータソースは、FedoraおよびRed Hatベースのディストリビューションでは利用できないソフトウェアを提供するために作成されました。このデータソースで利用可能なソフトウェアアプリケーションは、プリコンパイルされたRPMファイルの形式で提供されます。この記事では、RPMfusionデータソースを使用して、CentOS 8 / RHEL 8にFFmpegをインストールします。
RPM Fusion リポジトリをインストールする前に、システムに EPEL リポジトリをインストールする必要があります。
sudo dnf -y インストール https://download.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo dnf localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm sudo dnf インストール --nogpgcheck https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm
CentOS 8 / RHEL 8 LinuxにFFmpegをインストールする
EPEL および RPM Fusion リポジトリを追加した後、ターミナルで次のコマンドを実行して、CentOS 8 / RHEL 8 Linux システムに FFmpeg をインストールします。
sudo dnf インストール http://rpmfind.net/linux/epel/7/x86_64/Packages/s/SDL2-2.0.10-1.el7.x86_64.rpm sudo dnf インストール ffmpeg sudo dnf -y インストール ffmpeg-devel
次のコマンドを使用して、RHEL/CentOS システムにインストールされている FFmpeg のバージョンを確認します。
rpm -qi ffmpeg ffmpeg -バージョン
注文
1: ビデオ録画:
-f: mac を使用して avfoundation からデータを収集することを指定します。
-i: 入力、入力ストリームを表し、続く 1 はデバイス番号で、画面(録画)を示します。
i は入力ストリームを処理します。-r: フレームレートを指定します。一般的に、25フレームの方がよりスムーズになり、15フレームでもギリギリです。
out.yuv: 収集されたデータは、生のデータの形式であり、比較的大きい yuv 形式で保存されます。
ffmpeg -f avfoundation -i 1 -r 30 out.yuv
ビデオを再生:
-sは解像度を指定する
-pix_fmtは元のビデオ形式を指定します
ffplay -s 2560*1600 -pix_fmt uyvy422
オーディオをキャプチャする
コロンの前のデバイスはビデオデバイスを表し、コロンの後のデバイスはオーディオデバイスを表します。
ffmpeg -f avfoundation -i :1 out.wav
音声を再生
フォーマットされたオーディオデータなのでそのまま再生できます。
ffplay out.wav
2:分解と再利用
マルチメディアデータのフォーマット(パッケージフォーマット)を変更するために使用される
デマルチプレクシング - 基本的にはオーディオ データとビデオ データを分離します。
多重化 - オーディオおよびビデオ データの再パッケージ化。
オーディオとビデオのフォーマットを変換する
-vcodec ビデオ多重分離
-acodec オーディオ多重化
コピーとは、多重化解除後にエンコード形式を変更せず、完全にコピーすることを意味します。
ffmpeg -i test.mp4 -vcodec コピー -acodec コピー out.flv
ビデオストリームの抽出
-anはオーディオストリームがないことを意味します
ffmpeg -i test.mp4 -an -vcodec でコピー out.h264
オーディオストリームの抽出
ffmpeg -i test.mp4 -acodec コピー -vn out.h264
3: 生データの処理
ビデオの生データを抽出する
-c:v はビデオをデコードします。使用されるコーデックは rawvideo です。
-pix_fmtは画像の各フレームをyuv 4:2:0としてエンコードします。
ffmpeg -i input.mp4 -an -c:v rawvideo -pix_fmt yuv420p out.yuv
ビデオの生データを再生
オーディオ生データの抽出
-arはオーディオの読み取りを意味し、オーディオのサンプリングレートは44100です。
-acはオーディオチャンネル、ac2はデュアルチャンネルを意味します
-f 抽出されたオーディオ PCM データの形式。s16le s は符号付き 16 ビット、le-little end はリトル エンドを意味します。
ffmpeg -i out.mp4 -vn -ar 44100 ac 2 -f s16le out.pcm
オーディオの生データを再生する
ffplay -ar 44100 -ac 2 -f s16le out.pcm
4: フィルターコマンド
-vfはフィルタを指定する
crop はフィルタの名前、= の後にパラメータが続きます。in_w は幅が 200 縮小されることを意味し、in_h は高さが 200 縮小されることを意味します。
-c:vは前述のように使用するコーデックを指定します。
-c:コピーはオーディオを処理しません
ffmpeg -i test.mov -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a コピー out.mp4
5: ffmpegの切り取りと結合コマンド
作物:
-ss 作物の時点
-t 切り取りの継続時間(秒)
ffmpeg -i in.mp4 -ss 00:00:00 -t 10 out.ts
マージ:
-f concat は次のファイルを連結することを意味します
-i は入力ファイルを指定します。inputs.txt は結合するビデオを指定するファイル リストです。
out.flv出力
ffmpeg -f concat -i inputs.txt out.flv
その中で、inputs.txtのファイルの形式は
ファイル '1.mp4' ファイル '2.mp4'
コピーを追加すると、現在のエンコード方式が使用され、デコード処理は実行されないため、より高速になります。
ffmpeg -f concat -i files.txt -c copy output.mp4
6: 画像とビデオの変換コマンド
ビデオから画像へ
-r 1は1秒あたり1枚の画像を転送することを意味します
-fは出力ファイル形式を指定します。ここではimage2です。
image-%3d.jpeg 表示图片名,%3d表示图片编号由3个数字组成。
ffmpeg -i in.flv -r 1 -f image2 image-%3.jpeg
画像を動画に変換する
ffmpeg -i image-%3d.jpeg out.mp4
7: ライブプッシュ/プルストリーミング
ライブストリーミング
#-c オーディオおよびビデオコーデック、-a はオーディオコーデック、-v はビデオコーデック、#-f はフォーマットを指定します
#-re はフレームレートが実際のフレームレートと同期していることを意味します ffmpeg -re -i out.mp4 -c copy -f flv rtmp://server/live/streamName
ライブストリーミング
ffmpeg -i rtmp://server/live.streamName -c copy dump.flv
詳しい操作方法についてはヘルプを参照してください。またはFFmpeg 公式ドキュメント
ffmpeg --help
さて、FFmpeg は正常にインストールされました!