FFmpeg Ubuntu 14.04

Ubuntu 14.04 で FFmpeg 2.2.1 と FFmpeg 0.11.5 と Git リポジトリの FFmpeg を共存させて使用する.

投稿日:

いろいろと理由がありまして 3 種類のバージョンの FFmpeg を使い分けています.FFmpeg 2.2.1, FFmpeg 0.11.5, FFmpeg 開発版 (Git リポジトリで管理されてるもの) の 3 つを使用しています.

Ubuntu 14.04 (64bit) です.

基本,各種ライブラリは apt-get でインストールできますが,敢えてソースからビルドしています.また,lame と faac を apt-get からインストールしない場合,tar.gz を予めダウンロードしておきます.

# ++++++++++++++++++++++++++++++
# apt-get update and upgrade
# ++++++++++++++++++++++++++++++
sudo apt-get update
sudo apt-get upgrade

# ++++++++++++++++++++++++++++++
# For development
# ++++++++++++++++++++++++++++++
sudo apt-get install build-essential

# ++++++++++++++++++++++++++++++
# Git
# ++++++++++++++++++++++++++++++
sudo apt-get install git
git --version
#git version 1.9.1

# ++++++++++++++++++++++++++++++
# FFmpeg
# ++++++++++++++++++++++++++++++
sudo touch /etc/ld.so.conf.d/local.conf
sudo sh -c "echo '/usr/local/lib' >> /etc/ld.so.conf.d/local.conf"
sudo sh -c "echo '/usr/local/ffmpeg-dev/lib' >> /etc/ld.so.conf.d/local.conf"
sudo sh -c "echo '/usr/local/ffmpeg-0.11.5/lib' >> /etc/ld.so.conf.d/local.conf"

sudo apt-get install autoconf libtool

# Unknown input format: 'alsa'
sudo apt-get install libasound2-dev

#sudo apt-get install libmp3lame-dev libfaac-dev yasm x264 libvpx-dev

# https://trac.ffmpeg.org/wiki/UbuntuCompilationGuide
#sudo apt-get install autoconf automake build-essential libass-dev libfreetype6-dev libgpac-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libx11-dev libxext-dev libxfixes-dev pkg-config texi2html zlib1g-dev

# yasm
cd ~/Downloads
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
tar zxvf yasm-1.2.0.tar.gz
cd yasm-1.2.0
./configure
make -j8
sudo make install
sudo ldconfig

# lame
# http://lame.sourceforge.net/download.php
cd ~/Downloads
tar zxvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure
make -j8
sudo make install
sudo ldconfig

# faac
# http://www.audiocoding.com/downloads.html
cd ~/Downloads
tar zxvf faac-1.28.tar.gz
cd faac-1.28
./configure
vi common/mp4v2/mpeg4ip.h
make -j8
sudo make install
sudo ldconfig

# x264
cd ~/Downloads
git clone git://git.videolan.org/x264
cd x264
./configure --enable-shared
make -j8
sudo make install
sudo ldconfig

# libvpx
cd ~/Downloads
git clone http://git.chromium.org/webm/libvpx.git
cd libvpx
./configure --enable-pic
#/usr/bin/ld: /usr/local/lib/libvpx.a(vpx_codec.c.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
make -j8
sudo make install
sudo ldconfig

# fdk-aac
cd ~/Downloads
git clone https://github.com/mstorsjo/fdk-aac
cd fdk-aac
autoreconf -fiv
./configure
make -j8
sudo make install
sudo ldconfig

# FreeType
cd ~/Downloads
wget http://download.savannah.gnu.org/releases/freetype/freetype-2.5.3.tar.gz
tar zxvf freetype-2.5.3.tar.gz
cd freetype-2.5.3
./configure
make -j8
sudo make install
sudo ldconfig

# FFmpeg latest
cd ~/Downloads
wget http://www.ffmpeg.org/releases/ffmpeg-2.2.1.tar.gz
tar zxvf ffmpeg-2.2.1.tar.gz
cd ffmpeg-2.2.1
./configure --enable-gpl --enable-libfaac --enable-libfdk-aac --enable-libmp3lame --enable-libx264 --enable-libvpx --enable-libfreetype --enable-nonfree --enable-shared
make -j8
sudo make install
sudo ldconfig

# FFmpeg Git repository
cd ~/Downloads
git clone git://source.ffmpeg.org/ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-libfaac --enable-libfdk-aac --enable-libmp3lame --enable-libx264 --enable-libvpx --enable-libfreetype --enable-nonfree --prefix=/usr/local/ffmpeg-dev
make -j8
sudo make install
sudo ldconfig

# FFmpeg 0.11.x
cd ~/Downloads
wget http://www.ffmpeg.org/releases/ffmpeg-0.11.5.tar.gz
tar zxvf ffmpeg-0.11.5.tar.gz
cd ffmpeg-0.11.5
./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libx264 --enable-libvpx --enable-nonfree --prefix=/usr/local/ffmpeg-0.11.5
make -j8
sudo make install
sudo ldconfig

捕捉として,自分の環境で USB カメラのマイクデバイスのデバイス番号を 0,マザーボードのオーディオデバイスの番号を 1 に固定化する場合,

# For fixed audio device name (USB camera is 0)
# sudo touch /etc/modprobe.d/sound.conf
# sudo sh -c “echo ‘options snd_usb_audio index=0′ >> /etc/modprobe.d/sound.conf”
# sudo sh -c “echo ‘options snd_hda_intel index=1′ >> /etc/modprobe.d/sound.conf”
# sudo vi /etc/group
# audio:x:29:pulse,username

[Ubuntu] オーディオデバイス番号を固定化する

それから,FFmpeg 0.11.x 系を使用している理由.

[FFmpeg] Video4Linux2 が遅い?件

faac でビルドでエラーになる場合は,common/mp4v2/mpeg4ip.h の 123 行目付近をコメントします.

/*
#ifdef __cplusplus
extern "C" {
#endif
char *strcasestr(const char *haystack, const char *needle);
#ifdef __cplusplus
}
#endif
*/

少しはまったのは,libvpx で --enable-pic としないと FFmpeg のビルド時にエラーとなるなど.

-FFmpeg, Ubuntu 14.04

Copyright© hirooka.pro , 2013-2018 All Rights Reserved.