2016年08月19日

ApacheにHLS(HTTP Live Streaming)を設定する

<検証環境>
OS : CentOS7(64bit)
ソフトウェア : サーバー(GUI使用)+開発ツール
FFmpeg : 3.1.2
Apache : 2.4.20
備考 :
http://rpmfind.net/linux/rpm2html/ から cmake(cmake-2.8.11-5.el7.x86_64.rpm) を入手する。
http://rpmfind.net/linux/rpm2html/ から freetype-devel(freetype-devel-2.4.11-11.el7.x86_64.rpm) を入手する。
http://rpmfind.net/linux/rpm2html/ から mercurial(mercurial-2.6.2-4.el7.x86_64.rpm) を入手する。
http://rpmfind.net/linux/rpm2html/ から nasm(nasm-2.10.07-7.el7.x86_64.rpm) を入手する。
http://www.tortall.net/projects/yasm/releases/ から Yasm(yasm-1.3.0.tar.gz) を入手する。
ftp://ftp.videolan.org/pub/videolan/x264/snapshots/ から x264(x264-snapshot-20160816-2245-stable.tar.bz2) を入手する。
http://www.ffmpeg.org/releases/ から FFmpeg(ffmpeg-3.1.2.tar.gz) を入手する。
参考 : Compile FFmpeg on CentOS

# yum list installed | grep autoconf
# yum list installed | grep automake
# yum list installed | grep cmake
# yum list installed | grep freetype-devel
# yum list installed | grep gcc
# yum list installed | grep gcc-c++
# yum list installed | grep git
# yum list installed | grep libtool
# yum list installed | grep make
# yum list installed | grep mercurial
# yum list installed | grep nasm
# yum list installed | grep pkgconfig
# yum list installed | grep zlib-devel

# cd /download/
# rpm -ivh ./cmake-2.8.11-5.el7.x86_64.rpm
# rpm -ivh ./freetype-devel-2.4.11-11.el7.x86_64.rpm
# rpm -ivh ./mercurial-2.6.2-4.el7.x86_64.rpm
# rpm -ivh ./nasm-2.10.07-7.el7.x86_64.rpm

# cd /download/ffmpeg_sources
(# git clone --depth 1 git://github.com/yasm/yasm.git)
# gtar xvfz ./yasm-1.3.0.tar.gz
# cd yasm-1.3.0/
# autoreconf -fiv
(# ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin")
# ./configure
# make
# make install
( ⇒ /usr/local/bin/vsyasm, /usr/local/bin/yasm, /usr/local/bin/ytasm)
# make distclean

# cd /download/ffmpeg_sources
(# git clone --depth 1 git://git.videolan.org/x264)
# gtar xvfj ./x264-snapshot-20160816-2245-stable.tar.bz2
# cd x264-snapshot-20160816-2245-stable/
(# export PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig")
(# ./configure --prefix="/download/ffmpeg_build" --bindir="/opt/ffmpeg/bin" --enable-static)
# ./configure --enable-static --disable-opencl
(
"--disable-opencl"を付与しない場合、FFmpegのconfigure時に、エラーが発生する。
"ERROR: libx264 not found"
)
# make
# make install
( ⇒ /usr/local/bin/x264)
# make distclean

# cd /download/ffmpeg_sources
(# git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg)
# gtar xvfz ./ffmpeg-3.1.2.tar.gz
# cd ffmpeg-3.1.2/
(# PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig")
(# ./configure --prefix="/download/ffmpeg_build" --extra-cflags="-I/download/ffmpeg_build/include" --extra-ldflags="-L/download/ffmpeg_build/lib" --bindir="/opt/ffmpeg/bin" --pkg-config-flags="--static" --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265)
# ./configure --pkg-config-flags="--static" --enable-gpl --enable-libx264
(
"WARNING: using libx264 without pkg-config"
は無視する。
)
# make
# make install
( ⇒ /usr/local/bin/ffmpeg, /usr/local/bin/ffprobe, /usr/local/bin/ffserver)
# make distclean
# hash -r

# ldd /usr/local/bin/ffmpeg
(
sharedビルド ではなく staticビルド であるため libx264.so.x が含まれない。
)
# cd /download/data/
# ffmpeg -i ./sample.mp4 -b:v 200k -r 25 -s 1280x720 -vcodec libx264 -ab 128k -ar 44100 -ac 1 -acodec aac -f segment -segment_format mpegts -segment_time 10 -segment_list sample.m3u8 sample_%04d.ts

# cd /opt/httpd/conf/
# cp httpd.conf httpd.conf.backup
# echo -e "\nAddType application/x-mpegURL .m3u8" >> httpd.conf
# echo -e "AddType video/MP2T .ts\n" >> httpd.conf
# systemctl stop httpd
# systemctl start httpd

【関連する記事】
posted by red at 22:48| Comment(0) | TrackBack(0) | CentOS:ミドルウェア | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック