オーディオとビデオを支える技術(9)- FFMPEGをArch linuxにインストールする。
LINUXでffmpegの開発を行う方法について始めます。ここでは、Archlinuxを使っていますが、他のlinux でも実行できると思います。
1. ffmpegのダウンロード
公式サイトから最新バージョンをダウンロードします。
2.ターミナルから必要なソフトをダウンロードします。
sudo pacman -S gcc g++ make sudo pacman -S nasm cmake sudo pacman -S ffmpeg
ここでのffmpegは,実行環境としてのインストールになります.
今回のffmpegのインストールの目的は,c++/Cでffmpegを使うことで,ffmpegをコマンドから使うことではありません.
3.ffmpegのインストール
これらのコマンドを実行するとインストールできます。
tar xvf ffmpeg-snapshot.tar.bz2 cd ffmpeg ./config --disable-yasm --enable-shared --disable-static make -j 8 sudo make install
よくこの./configure → make → make installの3セットを使うことがあるので覚えておいたほうがいいかも。
先程、ダウンロードしたファイルを開きます。
この中で./configureについて簡単に説明します。
--disable-yasmアセンブリを無効にすることを意味します。
make -j 88個のスレッドをmakeに使います。コンパイルの速度が大幅に向上します。自分のCPUは4コア/8スレッドなので自分のCPUに応じて使います。
--enable-shared --disable-staticつまり、静的ライブラリーではなく、動的ライブラリーを作ります。
locateコマンドを実際に実行するとffmpegがインストールされた場所がわかりますね。
locate libavutil |grep include /usr/include/libavutil /usr/include/libavutil/adler32.h /usr/include/libavutil/aes.h /usr/include/libavutil/aes_ctr.h /usr/include/libavutil/attributes.h /usr/include/libavutil/audio_fifo.h /usr/include/libavutil/avassert.h /usr/include/libavutil/avconfig.h /usr/include/libavutil/avstring.h /usr/include/libavutil/avutil.h /usr/include/libavutil/base64.h
実際に使います。
ffmpegのバージョンを参照するプログラムを作ってみます。
c言語のファイルを作ります。hello_ffmpeg.cと名前をつけます。
#include <stdio.h> #include "libavcodec/avcodec.h" #include "libavformat/avformat.h" #include "libswscale/swscale.h" #include "libavdevice/avdevice.h" int main() { printf("Hello FFmpeg!"); av_register_all(); unsigned int version = avcodec_version(); printf("version is: %d \n", version); return 0; }
実行します。
$ gcc -o hello_ffmpeg hello_ffmpeg.c -Iffmpeg -Lffmpeg -lavdevice -lavformat -lavfilter -lavcodec -lswscale -lavutil -lswresample $hello_ffmpeg Hello FFmpeg!version is: 3824484
Qtで動作するには、
proファイルに、下を一行追加する。
LIBS = -Iffmpeg -Lffmpeg -lavdevice -lavformat -lavfilter -lavcodec -lswscale -lavutil -lswresample
最後に
なにか問題がありましたら遠慮せずにコメントを残していってください。