- [ステートメント]コース学習アドレス:https://ke.qq.com/course/468797
目次
Windows環境のセットアップ
- 公式のffmpegにアクセスして、コンパイルされたWindows共有ライブラリをダウンロードします。
- 公式サイト:https://ffmpeg.org/
- 実行可能ファイルffmpeg.exeffplay.exe ffprobe.exeをC:\ Windowsディレクトリにコピーします。
- 対応するダイナミックライブラリをC:\ Windows \ SysWOW64ディレクトリにコピーします。
- 適合:WOW64(Windows-on-Windows 64ビット)
- コマンドラインウィンドウにffmpeg-versionと入力してバージョンを確認しますが、環境が正常に構築されているかどうかを確認します
[構成環境ubuntuデスクトップ16.04+ ffmpeg 4.2.1]
Linux環境の構築
ディレクトリを作成する
- ホームディレクトリに作成
- ffmpeg_sources:ソースファイルのダウンロードに使用されます
- ffmpeg_build:コンパイルされたライブラリファイルを保存します
- bin:バイナリファイル(ffmpeg、ffplay、ffprobe、X264、X265など)を保存します
cd ~ mkdir ffmpeg_sources ffmpeg_build bin
インストールの依存関係
sudo apt-get update -qq && sudo apt-get -y install \ autoconf \ automake \ build-essential \ cmake \ git-core \ libass-dev \ libfreetype6-dev \ libsdl2-dev \ libtool \ libva-dev \ libvdpau-dev \ libvorbis-dev \ libxcb1-dev \ libxcb-shm0-dev \ libxcb-xfixes0-dev \ pkg-config \ texinfo \ wget \ zlib1g-dev
一般的なサードパーティライブラリをインストールする
NASM
- ソースコードを使用してインストールする
cd ~/ffmpeg_sources && \ wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2 && \ tar xjvf nasm-2.14.02.tar.bz2 && \ cd nasm-2.14.02 && \ ./autogen.sh && \ PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \ make && \ make install
Yasm
- ソースコードを使用してインストールする
cd ~/ffmpeg_sources && \ wget -O yasm-1.3.0.tar.gz https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz && \ tar xzvf yasm-1.3.0.tar.gz && \ cd yasm-1.3.0 && \ ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \ make && \ make install
libx264
- H.264ビデオエンコーダ。詳細および使用例については、H.264エンコーディングガイドを参照してください。
- ffmpegをコンパイルするときに設定します:-enable-gpl--enable-libx264。
- ソースコードを使用してコンパイルします。
cd ~/ffmpeg_sources && \ git -C x264 pull 2> /dev/null || git clone --depth 1 https://code.videolan.org/videolan/x264.git && \ cd x264 && \ PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --enable-pic && \ PATH="$HOME/bin:$PATH" make && \ make install
libx265
- H.265 / HEVCビデオエンコーダ。詳細および使用例については、H.265エンコーディングガイドを参照してください。
- ffmpegをコンパイルするときに設定します:-enable-gpl--enable-libx265。
sudo apt-get install mercurial libnuma-dev && \ cd ~/ffmpeg_sources && \ if cd x265 2> /dev/null; then hg pull && hg update && cd ..; else hg clone https://bitbucket.org/multicoreware/x265; fi && \ cd x265/build/linux && \ PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off ../../source && \ PATH="$HOME/bin:$PATH" make && \ make install
libvpx
- VP8 / VP9ビデオコーデック。詳細と使用例については、VP9ビデオエンコーディングガイドを 参照してください。
- ffmpegをコンパイルするときに設定します:-enable-libvpx。
cd ~/ffmpeg_sources && \ git -C libvpx pull 2> /dev/null || git clone --depth 1 https://github.com/webmproject/libvpx.git && \ cd libvpx && \ PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm && \ PATH="$HOME/bin:$PATH" make && \ make install
libfdk-aac
- AACオーディオエンコーディング。詳細と使用例については、AACオーディオエンコーディングガイドを参照してください。
- ffmpegをコンパイルするときに設定します:-enable-libfdk-aac(すでに--enable-gplを設定している場合は、-enable-nonfreeを追加する必要があります)。
cd ~/ffmpeg_sources && \ git -C fdk-aac pull 2> /dev/null || git clone --depth 1 https://github.com/mstorsjo/fdk-aac && \ cd fdk-aac && \ autoreconf -fiv && \ ./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \ make && \ make install
libmp3lame
- MP3オーディオエンコーダ。
- ffmpegをコンパイルするときに設定します:-enable-libmp3lame。
cd ~/ffmpeg_sources && \ git clone --depth 1 https://gitee.com/hqiu/lame.git && \ cd lame && \ PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm && \ PATH="$HOME/bin:$PATH" make && \ make install
libopus
- Opusオーディオコーデック。
- ffmpegをコンパイルするときに設定します:-enable-libopus。
cd ~/ffmpeg_sources && \ git -C opus pull 2> /dev/null || git clone --depth 1 https://github.com/xiph/opus.git && \ cd opus && \ ./autogen.sh && \ ./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \ make && \ make install
libaom
- AV1ビデオコーデック:
- ffmpegをコンパイルするときに設定します:-enable-libaom。
- AV1は最初はサポートされておらず、コンパイルに問題があります。
cd ~/ffmpeg_sources && \ git -C aom pull 2> /dev/null || git clone --depth 1 https://aomedia.googlesource.com/aom && \ mkdir -p aom_build && \ cd aom_build && \ PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off -DENABLE_NASM=on ../aom && \ PATH="$HOME/bin:$PATH" make && \ make install cd ~/ffmpeg_sources && \ git -C aom pull 2> /dev/null || git clone --depth 1 https://github.com/mozilla/aom.git && \ mkdir -p aom_build && \ cd aom_build && \ PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off -DENABLE_NASM=on ../aom && \ PATH="$HOME/bin:$PATH" make && \ make install
FFmpeg
cd ~/ffmpeg_sources && \ wget -O ffmpeg-4.2.1.tar.bz2 https://ffmpeg.org/releases/ffmpeg-4.2.1.tar.bz2 && \ tar xjvf ffmpeg-4.2.1.tar.bz2 && \ cd ffmpeg-4.2.1 && \ PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \ --prefix="$HOME/ffmpeg_build" \ --pkg-config-flags="--static" \ --extra-cflags="-I$HOME/ffmpeg_build/include" \ --extra-ldflags="-L$HOME/ffmpeg_build/lib" \ --extra-libs="-lpthread -lm" \ --bindir="$HOME/bin" \ --enable-gpl \ --enable-libass \ --enable-libfdk-aac \ --enable-libfreetype \ --enable-libmp3lame \ --enable-libopus \ --enable-libvorbis \ --enable-libvpx \ --enable-libx264 \ --enable-libx265 \ --enable-nonfree && \ PATH="$HOME/bin:$PATH" make && \ make install && \ hash -r
- 次に、システムに再度ログインするか、現在のシェルセッションで次のコマンドを実行して、新しくインストールされたffmpegの場所を特定します。
source ~/.profile
- コンパイル後、ffmpeg_build ffmpeg_sourcesbinディレクトリの一般的な状況
lqf@ubuntu:~/ffmpeg_build$ ls bin include lib share lqf@ubuntu:~/ffmpeg_sources$ ls fdk-aac lame-3.100.tar.gz opus yasm-1.3.0.tar.gz ffmpeg-4.2.1 libvpx x264 ffmpeg-4.2.1.tar.bz2 nasm-2.14.02 x265 lame nasm-2.14.02.tar.bz2 yasm-1.3.0 lqf@ubuntu:~/bin$ ls ffmpeg ffplay ffprobe lame nasm ndisasm vsyasm x264 yasm ytasm
使用する
- これで、ターミナルを開いてffmpegコマンドを入力すると、新しいffmpegが実行されます。
- 新しくコンパイルしたffmpegを同時に使用するために複数のユーザーが必要な場合は、ffmpegバイナリファイルを〜/ binから/ usr / local / binに移動またはコピーできます。
ドキュメンテーション
- man ffmpegを使用して、ローカルでドキュメントにアクセスできます。
- echo "MANPATH_MAP $ HOME / bin $ HOME / ffmpeg_build / share / man" >>〜/ .manpath
- 有効にするには、システムからログアウトしてから、manffmpegに再度ログインする必要がある場合があります。
- HTML形式のドキュメントは 〜/ ffmpeg_build / share / doc / ffmpegにあります。
- オンラインのFFmpegドキュメントを参照できます。