FFmpeg のインストールと構成 (Windows および Mac)

FFmpegコマンドラインインストール

次のコマンドを使用して FFmpeg を実行します。

sudo apt-get ffmpeg をインストールする

FFmpeg ソースコードのインストール

FFmpegのソースコードを入手する

次のコマンドを使用して、ffmpeg のソース コードを取得します。

git clone  https://git.ffmpeg.org/ffmpeg.git  ffmpeg

ubuntuのスクリーンショット

マックのスクリーンショット

ffmpegコンパイル

次のコマンドを使用して、インストール ディレクトリを指定します。

./configure --prefix=/usr/local/ffmpeg --enable-debug=3 --enable-shared --disable-static --disable-x86asm

prefix パラメータを使用してインストール ディレクトリを指定します。通常、このディレクトリはローカルの /usr/local ディレクトリにインストールされます。

将来的にソース コードをデバッグする必要があるため、デバッグ モードをオンにして、-enable-debug を 3 に設定します。

このコマンドは、静的ライブラリの生成をオフにし、動的ライブラリの生成をオンにします。

最後に、x86asm が閉じられます。これは、Ubuntu と Mac の両方で必ず行わなければなりません。

マックのスクリーンショット:

最近 ffmpeg を Mac にインストールしたところ、このパラメータ –disable-x86asm も必要であることがわかり、上の図に示すように、インストール プロセス中に警告が表示されました。当面はこれを実行し、次のステップでコンパイルを続行できます。

この時点で新しい Makefile が生成されます。

構成ファイルを開いて表示します。基本的に、プレフィックス パラメータは、次の図に示すように、インストール ディレクトリに渡されます。

ここで丸で囲まれた 4 つのファイル パス、binsharelib、およびincludeは、インストール完了後に製品を生成するための主なパスであり、これについては後で再度説明します。

すべての ffmpeg コンパイル パラメータを表示するには、次のコマンドを使用します。

./configure --help

次のコマンドを使用して ffmpeg をコンパイルします。

make -j 4

このコマンドは並列コンパイルのために 4 つのコアを呼び出します。これにより、コンパイル速度が大幅に向上します。

次のコマンドを使用してインストールします。

インストールする

マックのスクリーンショット:

コンパイル後にffplayが存在しない問題を解決

SDL 依存関係をインストールする

私がインストールしたffmpegのバージョンは4.4なので、ネット上に出回っているsdl1.2は効果がないので、以下のコマンドでSDL2をインストールします。

sudo apt-get インストール libsdl2-dev

SDL をインストールした後でのみ ffplay をコンパイルできますが、SDL のインストール以外にも対処する必要があることがあります。

sdl2 を Mac 上の端末にインストールする場合は、ubuntu 上のパッケージ管理ツールである apt-get と、Mac 上のパッケージ管理ツールである brew を使用する必要があります。
私のものにはデフォルトで brew がないので、自分でインストールする必要があります。

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

中国科学技術大学からシリアル番号を選択してください。解決策はこのブログから引用しています:リンク

brew を使用して sdl2 情報を表示する

brew search sdl2

マックのスクリーンショット:

brew を使用して sdl をインストールします。

brew install sdl2

config.h ファイルを変更する

ffmpeg ルート ディレクトリにある config.h ファイルを開き、値が 1 になるように CONFIG_FFPLAY を検索し、次に値が 1 になるように CONFIG_ALSA を検索します。これは、コンパイル時に ffplay と alsa をオンにする機能です。

config.mak ファイルを変更する

ffmpeg ディレクトリの下の build ディレクトリにある config.mak ファイルで、CONFIG_FFPLAY を検索してその値を yes に設定し、CONFIG_ALSA を検索してその値を 1 に設定します。

Mac の ffbuild ディレクトリにある config.mak ファイルについては、CONFIG_FFPLAY を検索し、その値を yes に設定します。

ffmpegを再コンパイルする

上記の手順を変更した後、再コンパイルします。

マックのスクリーンショット:

FFmpeg の概要

導入

ffmpeg のインストールが完了したら、/usr/local/ffepeg に移動して以下を表示します。

ffmpegのインストールが完了すると、主に上記の4つのパスが生成されていることがわかります。

bin: すべての ffmpeg コマンド ツールを保存します

include: ffmpeg のすべてのヘッダー ファイルを格納します

lib: ffmpegによって生成されたダイナミックライブラリまたはスタティックライブラリを格納します

共有: ffmpeg 関連のドキュメントとサンプルを保存します。

bin ディレクトリ

bin ディレクトリには、ffmpeg、ffplay、ffprode という 3 つのコマンド ツールがあります。

ffmpeg: プッシュ ストリーミング、オーディオおよびビデオ処理を実行できます。

ffplay: ローカルのオーディオ ファイルとビデオ ファイルをストリーミングおよび再生できるプレーヤー

ffprobe: 一部の形式や基本情報などのマルチメディア ファイルを検出するために使用されます。

コンパイル時にツールがいくつか少ない可能性があります。たとえば、私のものでは最初に ffplay が欠落していました。

インクルードディレクトリ

すべての ffmpeg ヘッダ ファイルを保存するためのインクルード ファイルを入力します。後で ffmpeg の二次開発でヘッダ ファイルを使用するときに、このディレクトリを入力して検索します。各サブディレクトリはモジュールです。

libavcodec: コーデック

libavdevice: 管理デバイス

libavfilter: さまざまなフィルター効果と特殊効果

libavformat: マルチメディア形式の処理

libavutil: いくつかの基本ツール

libswresample: オーディオのリサンプリング

libswscale: ビデオのスケーリングとその他の処理

libディレクトリ

lib ファイルを入力して、生成されたすべての ffmpeg ダイナミック ライブラリ/スタティック ライブラリを保存します。

libavcodec を例に挙げると、libavcodec.so.59.0.100 が実際のライブラリであり、他の 2 つの libavcodec.so.59 と libavcodec.so はコネクタです。

モバイル端末で使用する場合は、完全な静的ファイル(ファイル)を生成することもできます。

ディレクトリを共有する

共有ディレクトリに入ると、主に man ドキュメントなどの ffmpeg ドキュメントがいくつかあります。

Linux では、次のコマンドを使用してマニュアルを表示できます。

男は

FFmpeg環境を構成する

システムに ffmpeg パスがないため、インストール後は、bin パスに cd しない限り、コマンド ラインから ffmpeg を直接実行できません。

ubuntuの処理

このとき、システム環境にffmpegを追加する必要があります。

次のコマンドを使用してシステム PATH ファイルを開きます。

sudo gedit /etc/profile

ファイルを開いた後、ファイルの最後に次のステートメントを追加します。

エクスポート PATH=$PATH:/usr/local/ffmpeg/bin

保存して終了した後、次のコマンドを使用してすぐに有効にします。

ソース/etc/profile

この時点で、次のコマンドを使用して、ffmpeg が正常にインストールされているかどうかを確認します。

ffmpeg --ヘルプ

次のエラーが発生します。

このとき、コンパイルで生成されたダイナミックライブラリがシステムに組み込まれていないため表示が見つからないのですが、生成されたダイナミックライブラリは/usr/local/ffmpeg/libディレクトリにあるので、このディレクトリはシステムや環境に配置されます。

次のコマンドを使用して、関連するファイルを開きます。

gedit /etc/ld.so.conf

このファイルは Mac では空白です。真っ白なのか、それともそもそも存在せずコマンド実行後に作成されたのかわかりませんが、重要ではありません。

このファイルの新しい行に次のステートメントを追加します。

/usr/local/ffmpeg/lib

このうち、/usr/local/ffmpeg は先ほどインストールした場所です。

最後に次のコマンドを使用します。

sudo ldconfig

ターミナルに ffmpeg と入力して、該当するバージョン情報が取得できれば、設定は成功です。

マックの処理

Mac では、gedit はデフォルトではインストールされないため、次のコマンドを使用してインストールします。

brew install gedit

しかし、次のようなエラーが表示されます。

エラー: [email protected]: ボトルには Apple コマンド ライン ツールをインストールする必要があります。

必要に応じて、次のコマンドを使用してインストールできます。

xcode-select --install

次のようにしてソースからインストールを試みることができます。

brew install --build-from-source [email protected]

python環境が必要だと思っていたのですが、個人的には3.8の方が好みなのでよく調べずにpython3.8をインストールしましたが、やはり問題が発生し、環境不足だったことが分かりました。

ターミナルに次のコマンドを入力してインストールします。

xcode-select --install

Enter を押して、インストール用のアプリ ストアの小さなウィンドウをポップアップ表示します。インストールが完了したら、コマンドを入力して gedit をインストールします。

brew install gedit    

次のコマンドを使用して構成ファイルを開きます。

sudo gedit ~/.bash_profile

このステートメントを ffmpeg の bin ディレクトリの最後に追加します。

export PATH=$PATH:/usr/local/ffmpeg/bin

次に、保存して終了します。

次に、次のコマンドを実行して、新しく構成した環境変数を有効にします。

source ~/.bash_profile

次に、次のコマンドを入力して、ffmpeg がシステム環境に正常に追加されたかどうかをテストします。

ffmpeg

マックのスクリーンショット:

2021.6.26更新

Mac環境にffmpegをインストールしてわかった点を整理します。

1. 構成中に、コマンド パラメータ –disable-x86asm が必要です。

2. 構成コマンドを実行すると、警告が表示されます。

WARNING: pkg-config not found, library detection may fail.

ただし、当面は無視しても問題ありません。ffmpeg のコンパイルとインストールには影響しません。

3. インストール後、まだ ffplay が存在せず、システム環境に ffmpeg も存在しないことがわかります。つまり、ターミナルに直接入力しても ffmpeg が見つかりません。また、インストールされた bin パスをffplay についても同様です。

4. コンパイル済みの ffmpeg ツール (bin ディレクトリ) をシステム環境に追加する場合、Mac には gedit がなく、設定が若干異なるため、gedit のインストール方法と設定ファイルの更新方法を更新しましたが、使い慣れている場合は、 gedit をインストールせずに vim を使用することもできます。

5. 注: 記事内で特にマークされていない Mac 用のコマンドはすべてユニバーサルです。つまり、同じコマンドが ubuntu と Mac の両方のプラットフォームで使用されます。実際、Mac では brew を使用するため、一部のソフトウェアのインストール時に若干の違いがあります。 apt-get を使用する場合、残りは基本的に同じです。

元のリンク: FFmpeg のインストールと構成 (Windows および Mac)_Yiye Zhiqiu@qqy のブログ - CSDN ブログ

★記事末尾の名刺では、(FFmpeg、webRTC、rtmp、hls、rtsp、ffplay、srs)を含むオーディオおよびビデオ開発学習教材やオーディオおよびビデオ学習ロードマップなどを無料で受け取ることができます。

以下を参照してください! ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

 

おすすめ

転載: blog.csdn.net/yinshipin007/article/details/130567679