今回は、AAC関係のものをビルドに含めているので再配布不可なビルドです。
ffmpegを2.1系にした事で、VP9, H265/HEVC が使えるようになっています。
]]> まず最初に
Minimal環境だとコンパイラ含めて何もインストールされていないので、必要なものをyumで入れる。
$ yum update -y $ reboot $ uname -r 2.6.32-358.14.1.el6.x86_64
yum install -y glibc-devel glibc-headers glibc-static yum install -y wget yum install -y patch yum install -y xz unzip yum install -y bzip2-devel yum install -y gcc gcc-c++ make automake libtool yum install -y fontconfig fontconfig-devel yum install -y libxml2-devel yum install -y java-1.6.0-openjdk-devel.x86_64 yum install -y ncurses-devel ncurses-static ncurses-term yum install -y libpng libpng-devel libpng-static yum install -y libtiff libtiff-devel libtiff-static yum install -y lcms lcms-devel lcms-libs yum install -y git yum install -y openssl-devel yum install -y libsndfile libsndfile-devel yum install -y opencv-devel cairo-devel yum install -y gnutls-devel yum install -y fftw fftw-devel fftw-static
openjpeg
のビルドにはcmake
が必要だが、CentOS6.3のrpmではバージョンが低くて怒られてしまうため、別途新しいものをインストールしている。
$ vi /etc/ld.so.conf.d/ffmpeg.conf /usr/local/ffmpeg-libs/lib $ ldconfig # キャッシュの更新
都度設定しても良いが、面倒なのでbashrc
にでも書いておく。
export PATH=/usr/local/ffmpeg-libs/bin:$PATH export PKG_CONFIG_PATH=/usr/local/ffmpeg-libs/lib/pkgconfig
RPMと干渉しないように/usr/localではない場所にインストールする。
wget http://www.cmake.org/files/v2.8/cmake-2.8.11.2.tar.gz tar zxvf cmake-2.8.11.2.tar.gz cd cmake-2.8.11.2 ./bootstrap --parallel=4 --prefix=/usr/local/ffmpeg-libs make make install
環境変数の設定をする。
export CMAKE_ROOT=/usr/local/ffmpeg-libs/share/cmake-2.8
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 --prefix=/usr/local/ffmpeg-libs make make install
lameで必要なため。
wget http://www.nasm.us/pub/nasm/releasebuilds/2.10.09/nasm-2.10.09.tar.xz tar Jxvf nasm-2.10.09.tar.xz cd nasm-2.10.09 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://modplug-xmms.sourceforge.net/
CentOSにRPMが存在するが、.aファイルが存在しないのでstaticリンクができない。そのため、自分でビルドして入れる。が、今回はdynamic linkのままにするので今回はビルドしない。
libassのビルドで必要なため。
wget http://fribidi.org/download/fribidi-0.19.5.tar.bz2 tar jxvf fribidi-0.19.5.tar.bz2 cd fribidi-0.19.5 ./configure --prefix=/usr/local/ffmpeg-libs make make install
wget https://libass.googlecode.com/files/libass-0.10.1.tar.xz tar Jxvf libass-0.10.1.tar.xz cd libass-0.10.1 FRIBIDI_CFLAGS=-I/usr/local/ffmpeg-libs/include PKG_CONFIG_PATH=/usr/local/ffmpeg-libs/lib/pkgconfig ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) https://code.google.com/p/libass/
wget ftp://ftp.videolan.org/pub/videolan/libbluray/0.3.0/libbluray-0.3.0.tar.bz2 tar -jxvf libbluray-0.3.0.tar.bz2 cd libbluray-0.3.0 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://www.videolan.org/developers/libbluray.html
動画のピクセルを文字に変換して出力するライブラリ。(ターミナルでアスキー表現を用いて画像っぽく見せるためのもの)
jdkを入れちゃったのでjavaが入っていると認識しちゃっているが、java用のライブラリを作るときにエラーになる(インクルードパスを設定してあげれば良いだけだが)
pythonは make install 時にエラーになるので無効化した。
wget http://caca.zoy.org/files/libcaca/libcaca-0.99.beta18.tar.gz tar zxvf libcaca-0.99.beta18.tar.gz cd libcaca-0.99.beta18 ./configure --prefix=/usr/local/ffmpeg-libs --disable-java --disable-python make make install
公式) http://caca.zoy.org/wiki/libcaca
エラーがぼろぼろ出るが、基本的にrmに失敗しているだけなのでビルド自体は通っている。
wget http://www.quut.com/gsm/gsm-1.0.13.tar.gz tar zxvf gsm-1.0.13.tar.gz cd gsm-1.0-pl13
vi Makefile # 以下の部分を修正する INSTALL_ROOT = /usr/local/ffmpeg-libs GSM_INSTALL_INC = $(GSM_INSTALL_ROOT)/include
make make install
wget "http://downloads.sourceforge.net/project/modplug-xmms/libmodplug/0.8.8.4/libmodplug-0.8.8.4.tar.gz?r=http%3A%2F%2Fmodplug-xmms.sourceforge.net%2F&ts=1377681153&use_mirror=jaist" tar zxvf libmodplug-0.8.8.4.tar.gz cd libmodplug-0.8.8.4 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://modplug-xmms.sourceforge.net/
wget "http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Flame%2Ffiles%2Flame%2F3.99%2F&ts=1377682004&use_mirror=jaist" tar zxvf lame-3.99.5.tar.gz cd lame-3.99.5 CPPFLAGS="-mfpmath=sse -msse -msse2 -msse3" ./configure --prefix=/usr/local/ffmpeg-libs --enable-nasm make make install
公式) http://lame.sourceforge.net/index.php
wget "http://downloads.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.3.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fopencore-amr%2Ffiles%2Fopencore-amr%2F&ts=1377682715&use_mirror=jaist" tar zxvf opencore-amr-0.1.3.tar.gz cd opencore-amr-0.1.3 ./configure --prefix=/usr/local/ffmpeg-libs make -j 3 make install
公式) http://opencore-amr.sourceforge.net/
wget https://openjpeg.googlecode.com/files/openjpeg-1.5.1.tar.gz tar zxvf openjpeg-1.5.1.tar.gz cd openjpeg-1.5.1 ./configure --prefix=/usr/local/ffmpeg-libs make make install
wget http://downloads.xiph.org/releases/opus/opus-1.0.3.tar.gz tar zxvf opus-1.0.3.tar.gz cd opus-1.0.3 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://www.opus-codec.org/
アーカイブは2.3までのものしかなった。2.4はgitから取るしかない。
git clone git://git.ffmpeg.org/rtmpdump cd rtmpdump
vi Makefile vi librtmp/Makefile prefix=/usr/local/ffmpeg-libs
make make install
公式) http://rtmpdump.mplayerhq.hu/
wget "http://downloads.sourceforge.net/project/soxr/soxr-0.1.1-Source.tar.xz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fsoxr%2Ffiles%2F&ts=1377753028&use_mirror=jaist" tar Jxvf soxr-0.1.1-Source.tar.xz cd soxr-0.1.1-Source mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr/local/ffmpeg-libs .. make make install
公式) http://sourceforge.net/p/soxr/wiki/Home/
2.0じゃなくて1.x系のものが必要。
wget http://www.libsdl.org/release/SDL-1.2.15.tar.gz tar zxvf SDL-1.2.15.tar.gz cd SDL-1.2.15 ./configure --prefix=/usr/local/ffmpeg-libs make make install
wget http://downloads.xiph.org/releases/ogg/libogg-1.3.1.tar.gz tar zxvf libogg-1.3.1.tar.gz cd libogg-1.3.1 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://xiph.org/
liboggを先にビルドしておくこと。
wget http://downloads.xiph.org/releases/speex/speex-1.2rc1.tar.gz tar zxvf speex-1.2rc1.tar.gz cd speex-1.2rc1 ./configure --prefix=/usr/local/ffmpeg-libs --enable-sse make make install
公式) http://xiph.org/
liboggを先にビルドしておくこと。
wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.3.tar.xz tar Jxvf libvorbis-1.3.3.tar.xz cd libvorbis-1.3.3 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://xiph.org/
事前にlibogg, libvorbis, SDLを入れること。
wget http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.bz2 tar jxvf libtheora-1.1.1.tar.bz2 cd libtheora-1.1.1 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://xiph.org/
事前にlibsndfile
が必要。今回はyumで入れている。
wget http://downloads.sourceforge.net/twolame/twolame-0.3.13.tar.gz tar zxvf twolame-0.3.13.tar.gz cd twolame-0.3.13 ./configure --prefix=/usr/local/ffmpeg-libs make make install
git clone https://github.com/georgmartius/vid.stab.git cd vid.stab cd src cmake -DCMAKE_INSTALL_PREFIX=/usr/local/ffmpeg-libs . make make install
公式) http://public.hronopik.de/vid.stab/
wget "http://downloads.sourceforge.net/project/opencore-amr/vo-aacenc/vo-aacenc-0.1.3.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fopencore-amr%2Ffiles%2Fvo-aacenc%2F&ts=1377763066&use_mirror=jaist" tar zxvf vo-aacenc-0.1.3.tar.gz cd vo-aacenc-0.1.3 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://opencore-amr.sourceforge.net/
wget "http://downloads.sourceforge.net/project/opencore-amr/vo-amrwbenc/vo-amrwbenc-0.1.3.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fopencore-amr%2Ffiles%2Fvo-amrwbenc%2F&ts=1377763362&use_mirror=jaist" tar zxvf vo-amrwbenc-0.1.3.tar.gz cd vo-amrwbenc-0.1.3 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://opencore-amr.sourceforge.net/
git clone http://git.chromium.org/webm/libvpx.git cd libvpx git checkout v1.3.0 ./configure --prefix=/usr/local/ffmpeg-libs --target=x86_64-linux-gcc make make install
公式) http://www.webmproject.org/
wget http://www.wavpack.com/wavpack-4.60.1.tar.bz2 tar jxvf wavpack-4.60.1.tar.bz2 cd wavpack-4.60.1 ./configure --prefix=/usr/local/ffmpeg-libs make make install
単純にmakeをしても良い。fprofiled でVIDSを指定すると、最適化してくれるらしい。とりあえずサッカー動画を使って最適化するようにしてみた。
git clone git://git.videolan.org/x264.git cd x264 git checkout stable ./configure --prefix=/usr/local/ffmpeg-libs wget http://media.xiph.org/video/derf/y4m/soccer_4cif.y4m make fprofiled VIDS="soccer_4cif.y4m" make install install-lib-static
公式) http://www.videolan.org/developers/x264.html
libtoolが事前に必要だが、yumでインストールしてある。
wget http://downloads.xvid.org/downloads/xvidcore-1.3.2.tar.gz tar zxvf xvidcore-1.3.2.tar.gz cd xvidcore cd build/generic/ ./bootstrap.sh ./configure --prefix=/usr/local/ffmpeg-libs make make install
wget http://ftp.gnu.org/gnu/libcdio/libcdio-0.90.tar.gz tar zxvf libcdio-0.90.tar.gz cd libcdio-0.90 LDFLAGS=-R/usr/local/ffmpeg-libs/lib \ ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://www.gnu.org/software/libcdio/
libcdio
が必要。yumにも存在するが、yumのものは認識しなかったので自分で入れることにした。
wget "http://ftp.gnu.org/gnu/libcdio/libcdio-paranoia-10.2+0.90+1.tar.bz2" tar jxvf libcdio-paranoia-10.2+0.90+1.tar.bz2 cd libcdio-paranoia-10.2+0.90+1 LD_RUN_PATH=/usr/local/ffmpeg-libs/lib \ CFLAGS=-I/usr/local/ffmpeg-libs/include \ LDFLAGS=-R/usr/local/ffmpeg-libs/lib \ ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://www.gnu.org/software/libcdio/
frei0rの依存LIBとして追加。ただし、必須ではなくオプショナルである。
wget http://ftp.jaist.ac.jp/pub/sourceforge/g/project/gm/gmerlin/gavl/1.4.0/gavl-1.4.0.tar.gz tar zxvf gavl-1.4.0.tar.gz cd gavl-1.4.0 ./configure \ --prefix=/usr/local/ffmpeg-libs \ --enable-static \ --with-cpuflags \ --without-doxygen make make install
公式 http://gmerlin.sourceforge.net/
opencvとgavlとcairoがあるとリンクしてくれる。無くてもエラーにはならない。 アーカイブはダウンロードできなかったのでGITから。 v1.3じゃないとcairoまわりでエラーがでたので1.3のものを。
git clone git://git.dyne.org/frei0r.git cd frei0r git checkout v1.3 ./autogen.sh ./configure \ --prefix=/usr/local/ffmpeg-libs/ \ --enable-static make make install
公式) http://www.piksel.org/frei0r
yumでfftw fftw-devel, fftw-staticを入れた。
wget http://217.20.164.161/~tipok/aacplus/libaacplus-2.0.2.tar.gz tar zxvf libaacplus-2.0.2.tar.gz cd libaacplus-2.0.2 ./autogen.sh --prefix=/usr/local/ffmpeg-libs make make install
公式) http://tipok.org.ua/node/17
wget http://mp4v2.googlecode.com/files/mp4v2-2.0.0.tar.bz2 tar jxvf mp4v2-2.0.0.tar.bz2 cd mp4v2-2.0.0 ./configure --prefix=/usr/local/ffmpeg-libs make -j 3 make install
公式) https://code.google.com/p/mp4v2/
パッチも当てます
wget http://downloads.sourceforge.net/faac/faac-1.28.tar.gz tar zxvf faac-1.28.tar.gz cd faac-1.28 wget http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-libs/faac/files/faac-1.28-external-libmp4v2.patch wget http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-libs/faac/files/faac-1.28-libmp4v2_r479_compat.patch wget http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-libs/faac/files/faac-1.28-inttypes.patch wget http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-libs/faac/files/faac-1.28-altivec.patch patch -p1 < faac-1.28-external-libmp4v2.patch patch -p0 < faac-1.28-libmp4v2_r479_compat.patch patch -p0 < faac-1.28-inttypes.patch patch -p0 < faac-1.28-altivec.patch ./bootstrap ./configure \ CFLAGS="-I/usr/local/ffmpeg-libs/include -Wno-write-strings" \ CXXFLAGS="-I/usr/local/ffmpeg-libs/include -Wno-write-strings" \ --prefix=/usr/local/ffmpeg-libs \ --enable-drm \ --with-mp4v2 make make install
公式) http://www.audiocoding.com/faac.html
エラー参考) http://sourceforge.net/p/faac/bugs/162/
パッチ当て参考) http://repository.slacky.eu/slackware64-14.0/multimedia/faac/1.28/src/faac.SlackBuild
wget http://ftp.jaist.ac.jp/pub//sourceforge/o/op/opencore-amr/fdk-aac/fdk-aac-0.1.3.tar.gz tar zxvf fdk-aac-0.1.3.tar.gz cd fdk-aac-0.1.3 ./configure --prefix=/usr/local/ffmpeg-libs make -j 3 make install
公式) http://sourceforge.net/projects/opencore-amr/
wget http://www.ffmpeg.org/releases/ffmpeg-2.1.1.tar.gz tar zxvf ffmpeg-2.1.1.tar.gz cd ffmpeg-2.1.1
FF_HUFFMAN_BITS
を10
から12
に増やす。
sed -i -e "s@^\(#define FF_HUFFMAN_BITS \).*[0-9]*@\112@" libavcodec/huffman.h
./configure \ --enable-gpl \ --enable-version3 \ --enable-nonfree \ --enable-avisynth \ --enable-fontconfig \ --enable-frei0r \ --enable-gnutls \ --enable-libaacplus \ --enable-libass \ --enable-libbluray \ --enable-libcaca \ --enable-libcdio \ --enable-libfaac \ --enable-libfdk-aac \ --enable-libfreetype \ --enable-libgsm \ --enable-libmodplug \ --enable-libmp3lame \ --enable-libopencore-amrnb \ --enable-libopencore-amrwb \ --enable-libopenjpeg \ --enable-libopus \ --enable-librtmp \ --enable-libsoxr \ --enable-libspeex \ --enable-libtheora \ --enable-libtwolame \ --enable-libvidstab \ --enable-libvo-aacenc \ --enable-libvo-amrwbenc \ --enable-libvorbis \ --enable-libvpx \ --enable-libwavpack \ --enable-libx264 \ --enable-libxvid \ --disable-outdev=sdl \ --disable-ffprobe \ --disable-ffserver \ --extra-cflags='-I/usr/local/ffmpeg-libs/include' \ --extra-ldflags='-L/usr/local/ffmpeg-libs/lib -R/usr/local/ffmpeg-libs/lib' \ --optflags='-O2 -finline-functions'
make make install
今回はstaticリンクをしていないので、大量のsoを見ています。これは後ほどstaticリンクに変えていきたいと思います。
# ldd `which ffmpeg` linux-vdso.so.1 => (0x00007fff2eff5000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f900c3bd000) libcdio_paranoia.so.1 => /usr/local/ffmpeg-libs/lib/libcdio_paranoia.so.1 (0x00007f900c1b3000) libcdio_cdda.so.1 => /usr/local/ffmpeg-libs/lib/libcdio_cdda.so.1 (0x00007f900bfaa000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f900bd8d000) libgcrypt.so.11 => /lib64/libgcrypt.so.11 (0x00007f900bb17000) libwavpack.so.1 => /usr/local/ffmpeg-libs/lib/libwavpack.so.1 (0x00007f900b8ef000) libvorbisenc.so.2 => /usr/local/ffmpeg-libs/lib/libvorbisenc.so.2 (0x00007f900b420000) libvorbis.so.0 => /usr/local/ffmpeg-libs/lib/libvorbis.so.0 (0x00007f900b1f0000) libvo-amrwbenc.so.0 => /usr/local/ffmpeg-libs/lib/libvo-amrwbenc.so.0 (0x00007f900afd6000) libvo-aacenc.so.0 => /usr/local/ffmpeg-libs/lib/libvo-aacenc.so.0 (0x00007f900adba000) libvidstab.so.0.9 => /usr/local/ffmpeg-libs/lib/libvidstab.so.0.9 (0x00007f900aba7000) libtwolame.so.0 => /usr/local/ffmpeg-libs/lib/libtwolame.so.0 (0x00007f900a984000) libtheoraenc.so.1 => /usr/local/ffmpeg-libs/lib/libtheoraenc.so.1 (0x00007f900a740000) libtheoradec.so.1 => /usr/local/ffmpeg-libs/lib/libtheoradec.so.1 (0x00007f900a524000) libspeex.so.1 => /usr/local/ffmpeg-libs/lib/libspeex.so.1 (0x00007f900a305000) libsoxr.so.0 => /usr/local/ffmpeg-libs/lib/libsoxr.so.0 (0x00007f900a0c0000) librtmp.so.1 => /usr/local/ffmpeg-libs/lib/librtmp.so.1 (0x00007f9009ea3000) libz.so.1 => /lib64/libz.so.1 (0x00007f9009c8d000) libopus.so.0 => /usr/local/ffmpeg-libs/lib/libopus.so.0 (0x00007f9009a4d000) libopenjpeg.so.1 => /usr/local/ffmpeg-libs/lib/libopenjpeg.so.1 (0x00007f9009825000) libopencore-amrwb.so.0 => /usr/local/ffmpeg-libs/lib/libopencore-amrwb.so.0 (0x00007f9009612000) libopencore-amrnb.so.0 => /usr/local/ffmpeg-libs/lib/libopencore-amrnb.so.0 (0x00007f90093e9000) libmp3lame.so.0 => /usr/local/ffmpeg-libs/lib/libmp3lame.so.0 (0x00007f9009160000) libmodplug.so.1 => /usr/local/ffmpeg-libs/lib/libmodplug.so.1 (0x00007f9008e90000) libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007f9008bf3000) libfdk-aac.so.0 => /usr/local/ffmpeg-libs/lib/libfdk-aac.so.0 (0x00007f9008945000) libfaac.so.0 => /usr/local/ffmpeg-libs/lib/libfaac.so.0 (0x00007f9008729000) libcaca.so.0 => /usr/local/ffmpeg-libs/lib/libcaca.so.0 (0x00007f900845c000) libbluray.so.1 => /usr/local/ffmpeg-libs/lib/libbluray.so.1 (0x00007f900822c000) libass.so.4 => /usr/local/ffmpeg-libs/lib/libass.so.4 (0x00007f9008012000) libaacplus.so.2 => /usr/local/ffmpeg-libs/lib/libaacplus.so.2 (0x00007f9007de4000) libgnutls.so.26 => /usr/lib64/libgnutls.so.26 (0x00007f9007b40000) libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007f900790a000) libm.so.6 => /lib64/libm.so.6 (0x00007f9007686000) libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f9007474000) librt.so.1 => /lib64/librt.so.1 (0x00007f900726c000) libc.so.6 => /lib64/libc.so.6 (0x00007f9006ed9000) /lib64/ld-linux-x86-64.so.2 (0x00007f900c5cc000) libcdio.so.14 => /usr/local/ffmpeg-libs/lib/libcdio.so.14 (0x00007f9006cb0000) libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00007f9006aac000) libogg.so.0 => /usr/local/ffmpeg-libs/lib/libogg.so.0 (0x00007f90068a6000) libgomp.so.1 => /usr/lib64/libgomp.so.1 (0x00007f9006698000) libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007f900643b000) libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007f90060a0000) libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f9005d9a000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f9005b84000) libncursesw.so.5 => /lib64/libncursesw.so.5 (0x00007f9005954000) libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f9005617000) libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007f90052c5000) libfribidi.so.0 => /usr/local/ffmpeg-libs/lib/libfribidi.so.0 (0x00007f90050ac000) libfftw3f.so.3 => /usr/lib64/libfftw3f.so.3 (0x00007f9004db6000) libtasn1.so.3 => /usr/lib64/libtasn1.so.3 (0x00007f9004ba6000) libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f900497d000) libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f9004739000) libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f9004452000) libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f900424e000) libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f9004022000) libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f9003e00000) libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f9003be2000) libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f90039d7000) libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f90037d3000) libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f90035b9000) libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007f90033b5000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f9003196000)
ffmpeg -version ffmpeg version 2.1.1 built on Jan 7 2014 15:09:13 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-3) configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-avisynth --enable-fontconfig --enable-frei0r --enable-gnutls --enable-libaacplus --enable-libass --enable-libbluray --enable-libcaca --enable-libcdio --enable-libfaac --enable-libfdk-aac --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libxvid --disable-outdev=sdl --disable-ffprobe --disable-ffserver --extra-cflags=-I/usr/local/ffmpeg-libs/include --extra-ldflags='-L/usr/local/ffmpeg-libs/lib -R/usr/local/ffmpeg-libs/lib' --optflags='-O2 -finline-functions' libavutil 52. 48.101 / 52. 48.101 libavcodec 55. 39.101 / 55. 39.101 libavformat 55. 19.104 / 55. 19.104 libavdevice 55. 5.100 / 55. 5.100 libavfilter 3. 90.100 / 3. 90.100 libswscale 2. 5.101 / 2. 5.101 libswresample 0. 17.104 / 0. 17.104 libpostproc 52. 3.100 / 52. 3.100
ffmpeg -codecs
を叩くことで、ffmpeg2.1で追加されたCodecを確認できました。
DEV.L. vp9 Google VP9 (decoders: vp9 libvpx-vp9 ) (encoders: libvpx-vp9 ) D.V.LS hevc H.265 / HEVC
libfaacで音が出なかったのでリンクから外す。libfdk_aacの方が良いと言われており、またこちらでは問題は特に無かった。
VP9, H265共にサポートしているのはデコーダーである。とりあえず、libvpx1.3を入れてVP9のエンコード対応をしてみる。 libvpxを1.3にしてvp9サポートもした。
各発表の内容は資料を見るなり、誰かがまとめていたりするので、そちらを見れば良いと思います。今回参加した理由は、Windows版のFluentdについての発表があったからです。というわけで、発表者の方と休憩時間に話した内容をまとめます。
このあたりを話した気がします。
1つ忘れた事として以下があります。何か意図があるならごめんなさい、スルーしてください。
※読み返したら、なんか書き方がDisっぽいけど、箇条書きの関係でそんな風に見えるだけです(;´x`) そんなつもりは全然ないですよ!
あと、以下の事も話しました。
パスワードの先頭4,5文字を公開してしまった某社CTO様から。
世の中は厳しい。
それはそれとして、TDにMonitorに機能が追加されるそうです(無料は嬉しいね!)。でもでも最終的にアラートがあげられないと厳しそう。(後々アラートも対応するそうです)。
Cloudera Managerって何かおかしな事があるとヒントをくれるんですが、TDもそういうの出してくれると嬉しいかもですね。例えば、あるログを検知したら「バッファが溢れておるぞ! このあたりの設定を見直すのじゃ!」みたいな。
というわけで、楽しかったでざる。
主催者、および発表者、会場提供のDeNAさんに感謝!
用事があったので参加できなかったけど、飲み会行きたかった(´・ω・)
]]>2. GetFileInformationByHandleで取得するBY_HANDLE_FILE_INFORMATIONのnFileIndexHigh, nFileINdexLowを参照する。こちらは再起動、ボリュームのマウントしなおしで値が変わります。
Windows2008R2で再起動、再マウントでファイルシステムがNTFSの場合、変わらないことを確認しました。ではどういう時に変わるのかというと、ファイルシステムがFAT系(FAT, FAT32)の時にRenameをし、そのRenameによって名前が長くなったり、ディレクトリ内の順番が変わったりするような場合に変わりました。
(NTFSでも別ボリュームへ移動した場合は変わります(※1))
また、同一性の判定については、nFileIndexHighとnFileINdexLowだけでは不十分で、dwVolumeSerialNumber も合わせて比較する必要があります。まぁ別ボリュームでnFileIndexHighとnFileINdexLowが一致するって事はレアケースだとは思いますが、完全ではないので。
MSDNのRemarkのところに記述があります。
なので、ローテーションされているログをTAILで追跡するような場合、以下の前提が必要になります。
※1について
NTFSで別ボリュームに移動した場合でも追跡したい場合はDeviceIOCtrlを使う必要があります。
確認したOSはWindows2008R2です。
2008R2はNTカーネル6.1なのでWindows7と同等のカーネルです。一応主要OSのNTバージョンを表にしておきます。
NT Version | OS |
---|---|
NT 5.1 | Windows XP |
NT 5.2 | Windows Server 2003 |
NT 5.2 | Windows XP (64bit) |
NT 6.0 | Windows Vista |
NT 6.0 | Windows Server 2008 |
NT 6.1 | Windows 7 |
NT 6.1 | Windows Server 2008 R2 |
NT 6.2 | Windows 8 |
NT 6.2 | Windows Server 2012 |
NT 6.3 | Windows 8.1 |
NT 6.3 | Windows Server 2012 R2 |
手元で確認できるのは、XPとVistaとWin7、EC2上でWindowsServer2008, 2012があるのでもうちょっと別のOSで確認してみます。(-_- )ウーン・・
2003はEC2に無いので無理です。
※追記(2013/12/19 11:00) EC2にWindows Server 2003ありました。QuickStartに出てこないだけで普通にありました。ごめんなさい。
また何かわかったら書きます。
いや、全然違うよ!正しくはこうだよって指摘がありましたらツッコミよろしくお願いします。
]]>まず、1行1JSON形式のファイルを用意して、bulk_importをしました。 手順としては以下のような感じです。
td table:create db1 video td import:create s1 db1 video td import:prepare video.json --format json --time-value 1385028000 -o ./v/ td import:upload s1 ./v/* td import:show s1 td import:freeze s1 td import:perform s1 -w td import:list td import:error_records s1 td import:commit s1 # wait commiting -> commited td import:delete s1
これで 3590406 行のデータを投入しました。
次に、Webの画面からSchemaの設定を明示的に行いました。
ちゃんと設定されているか、コマンドラインからも確認。
td table:show db1 video
Name : db1.video Type : log Count : 3590406 Schema : ( video_url:string video_id:string title:string duration:long thumb_url:string embed_code:string tags:array<string> )
durationがきちんと整数型になっているかを確認するために、以下のコマンドで確認。(実行結果は省略します)
td table:tail db1 video
そんでもってWebからクエリを発行。
select * from video order by v['duration'] desc limit 10000
すると、結果が以下のようになり、「あれ!?」っと思ったわけです。文字列としてソートされている・・。
999 999 999 ... 9981 ...
というわけでサポートに問い合わせてみたところ、以下のことがわかりました。
v という変数は map<string, string> 型である。つまり、v['duration'] という式はstring型を返します。なので order by v['duration'] とやっても文字列としてソートされるわけです。
解決策として2つ教えて貰いました。
1. 明示的にスキーマの設定をしているため、v['duration']ではなく、 duration で参照可能。つまり、以下の用に記述すれば整数型として扱われます。
select * from video order by duration desc limit 10000
2. HiveのUDFにCastがあるので、以下のようにINT型にCastする。
select * from video order by cast(v['duration'] as INT) desc limit 10000
v は map<string, string>であるという事を忘れると、こういう事態を招きます。
普段TD使っている人にとってはなんてこと無いのかもしれませんが、しばらく悩みました。
夜中の1時(JST)にTDのサポートにメール出したら3時間で返信が来た。(アリガトウ Jeffさん)
本当はDB名がlibidoでテーブル名がxvideosだったので、問い合わせるのがすげー恥ずかしかった(´・ω・`)
td table:partial_delete でデータを消す場合、 from, toを3600秒単位じゃないとエラーが出るのは、S3上では1時間単位でディレクトリ(と言って良いのかわからないけど)を切っているからなんですね。 こんな感じのログが出ているので。
13/11/20 11:48:04 INFO c3p0.C3P0Registry: Initializing c3p0-0.9.1.2 [built 21-May-2007 15:04:56; debug? true; trace: 10] 13/11/20 11:48:04 INFO partialdelete.PartialDeleteWorker: Delete records that have 'time' value between '0' to '1385046000' 13/11/20 11:48:04 INFO storage.S3StorageBackend: listing s3 files from ***/db1/video_20131120_095234_6ee49185/1970/01/01/00/ to ***/db1/video_20131120_095234_6ee49185/2013/11/21/15/
ただ、partial_deleteしても表示上のテーブルの合計レコード数は減らないので、齟齬がでる事になり注意が必要です。一度データを削除して、もう1回インポートしてたら、以下のように倍になります。
まぁHiveで普通にcount(*)すれば正常な結果が帰ってくるのでクエリで集計する分には問題はないのですが。
+----------+------------+------+-----------+--------+ | Database | Table | Type | Count | Size | +----------+------------+------+-----------+--------+ | db1 | video | log | 7,180,812 | 0.3 GB | +----------+------------+------+-----------+--------+]]>
細かい使い方はQiitaにいくつか記事があるのでそちらを参照するとして、今回はMySQLで以下のような列にcharacter setが指定してあるDDLを発行させる方法のメモ書きです。
確認したバージョンは sequel 4.2.0
, adapterにmysql2 0.3.13
です。
create table example1( id bigint not null, url varchar(255) character set ascii not null, constraint pk primary key (id) ) engine=InnoDB, default character set='utf8mb4';
先にMySQLにテーブルを作ってdumpをしても、認識してくれません(´・ω・`)
bundle exec sequel -e development ./config/database.yml -d
Sequel.migration do change do create_table(:example1) do primary_key :id, :type=>Bignum String :url, :size=>255, :null=>false end end end
bundle exec sequel -e development ./config/database.yml -D
Sequel.migration do change do create_table(:example1) do primary_key :id, :type=>"bigint(20)" column :url, "varchar(255)", :null=>false end end end
これを実行しても、列に指定してあるcharacter setがおちてしまいます。あと create table のオプションに InnoDB, utf8が出ています。utf8mb4 を指定したのに・・。このへんは Sequel::MySQL.default_engine
Sequel::MySQL.default_charset
Sequel::MySQL.default_collate
あたりで設定するみたいです。今回はcreate_tableの時に指定してみます。
mysql> show create table example1 \G; *************************** 1. row *************************** Table: example1 Create Table: CREATE TABLE `example1` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `url` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 1 row in set (0.00 sec) ERROR: No query specified
というわけで、以下のように修正してみました。まず、create_table する時に明示的に engine と charset を指定しました。 また列定義で明示的に character set asciiを追加しました。オマケでchangeからup/downに変更しています。
Sequel.migration do up do create_table(:example1, :engine => 'InnoDB', :charset=>'utf8mb4') do primary_key :id, :type=>"bigint(20)" column :url, "varchar(255) character set ascii", :null=>false end end down do drop_table(:example1) end end
↑を実行すると、↓のような結果にできました。
mysql> show create table example1 \G; *************************** 1. row *************************** Table: example1 Create Table: CREATE TABLE `example1` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `url` varchar(255) CHARACTER SET ascii NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 1 row in set (0.00 sec) ERROR: No query specified
ただし、この方法だとRDB間の差異は吸収できません。String :url, :size=>255, :charset=>'ascii'
と書けると嬉しいんですけどね・・。知ってる人いたら教えてください。
]]>
対象商品の一覧はこちらから参照できます。
私もいくつか本を購入しましたが、半額セールになっている本から個人的に面白かったものを紹介します。シリーズものは1巻のみの紹介です。あくまでも私が面白かったと思ったものなので、そこのところはご了承ください。書籍レビューではないので紹介は結構適当です。
あと、アフィリエイトリンクになっているので、アフィが嫌いな人はタイトルでググってページを探してください。
5年付き合った彼氏と別れたばかりの女子が、自分の部屋に帰るまでトイレを我慢できずに、下の方の階の人にトイレを借りるというところから始まる恋愛ものの話です。なんか、子供の頃の居心地の良い秘密基地的な部屋とか、そこにほのぼのとした恋愛要素が入って面白かったです。全3巻です。
ヤクザな人が超能力少女を拾って一緒に生活するギャグ漫画です。
日本のとある電気街(まぁ秋葉ですよね)にある本屋さんを舞台に、店員さんたちの日常を描いた青春ラブコメ系の漫画です。趣味が同じような人たちで和気藹々と働く職場って楽しそう&幸せそう。
スプラッターな表現が苦手な人は読まない方が良いです。
主人公の中学生は普通の平凡な生活を送っていましたが、ある日中学校に赤い男が現れ、クラスメイトを目の前で虐殺されます。唯一生き残った主人公は何故かその殺人犯に仕立て上げられ、無実の罪で死刑判決を受けます。
収容先の刑務所は民間運営されているデッドマンワンダーランドという場所で、そこで罪の枝と呼ばれる特殊能力を持つ人たち(デッドマン)と会い、自分もデッドマンになっていた事を知り、色んな陰謀に巻き込まれていく話です。
私は紙媒体で購入していましたが、最終巻が出て完結しています。全13巻です。
デッドマン・ワンダーランド(1) (角川コミックス・エース)
一応言っておくとBL系ではないです。コメディ系の漫画です。
主人公は母を亡くして天涯孤独の身となった家事全般を完璧にこなす小学生。まぁメイド服着てますが、内容としては普通に良い話が多いです。
人が死なないミステリー小説です。コミックも出ています。久しぶりに活字を読んで面白いなと思った作品です。(たぶん最後に読んだ活字ってシドニィシェルダンの作品かもしれない・・)
1巻と2巻で1つの話になっているので、同時に購入する事をオススメします。1巻が前座で2巻が本番みたいなものです。
難癖を付けるなら、1巻ではヒロインがいかに現在に至るかの過去描画のために過去の話がぽんぽんと挟まるのでそこだけテンポが悪い感じに思えるくらいです。それ以外はテンポが良いのでサクサク読めました。
万能鑑定士シリーズは大量に出ているので、とりあえずまずは2巻まで試しに読んでみるのが良いと思います。
万能鑑定士Qの事件簿 I: 1 (角川文庫)
万能鑑定士Qの事件簿 II: 2 (角川文庫)
せっかくなので、今回のセール以外のものも2冊紹介しておきます。SonyのTablet(Xperia Z)を購入してからというもの、電子書籍のセールもちょくちょくやってるのでクッキーほどではないですが、ポチポチとしてしまうわけです。
世界観としては、人間世界に人を喰らう怪人グールが蔓延る東京を舞台にしています。主人公の青年(人間)はグールに襲われ瀕死のケガを追い病院に搬送、そこでグールの臓器を移植されたことで半グールとなってしまう。
トーカちゃん(2巻の表紙の女の子)が可愛いです。グールだけど。
Kindleで購入していったのですが、最新刊はKindleでは読めません。今月の18日に紙媒体の9巻が発売され、同日に8巻がKindle配信されます。
東京喰種トーキョーグール リマスター版 1 (ヤングジャンプコミックスDIGITAL)
SF・・なのかな・・。ファンタジーなのかな・・。
NASAの研究員を目指す高校生が主人公で、子供の頃に事故で死なせてしまった幼なじみの少女の事が忘れられない。ある日、主人公の目の前に死んだはずの幼なじみとそっくりな子が転校生として現れる。彼女はとある研究所から逃げてきた魔法使いであったという話。魔法使い=人体改造をされた上での特殊能力です。
6巻まで出てて、全部Kindleで読めます。
もしかしてWindowsUpdateが原因なのかと思いましたが、WindowsUpdateをしていない他のPCでも発生したので関係ないようです。
どうもその頃ChromeのUpdateがあったようなので、それが引き金かなと思います。検索すると、同様の症状の人がそれなりにいるようです。
(追記:ChromeのUpdateは関係なく、下記のEvernote Web ClipperがUpdateされていたようで、それが原因だと思います。)
解決策として、拡張機能の「Evernote Web Clipper」を停止したら発生しなくなりました。これを有効にするとまた再現します。
他にFlashを無効にするとか、色々と試しましたが、このアドオンが原因のようです。
少なくとも私の環境ではこれで直りました。
他の人の環境でも直るかはわかりませんが、参考になれば。
Web Clipperのバージョンが6.0.2になっていました。
こちらのバージョンでは有効にしてもフリーズする事はなくなりました。
一度無効にしている人は、 Chrome -> 設定 -> 拡張機能 のページから、いきなり有効にするのでは無く「拡張機能を今すぐ更新」を押して6.0.2のバージョンにしてから有効にすると良いです。
]]>
libaacplus
をビルドしていて気がつきました。
親ディレクトリか親の親ディレクトリにinstall.sh
が存在すると、libtoolize -c
で ltmain.sh
がコピーされません。
以下確認した履歴です。
なお、環境はCentOS6.4でlibtoolizeのバージョンはlibtoolize (GNU libtool) 2.2.6b
です。
libaacplusの場合、./autogen.shを実行するだけで良いのですが、今回はlibtoolizeに原因があることを確認するために手順を変更しています。
mkdir -p /a/b/c/d/e cd /a/b/c/d/e wget http://217.20.164.161/~tipok/aacplus/libaacplus-2.0.2.tar.gz tar zxvf libaacplus-2.0.2.tar.gz cd libaacplus-2.0.2 libtoolize -c
libtoolize: putting auxiliary files in `.'. libtoolize: copying file `./ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'. libtoolize: copying file `m4/libtool.m4' libtoolize: copying file `m4/ltoptions.m4' libtoolize: copying file `m4/ltsugar.m4' libtoolize: copying file `m4/ltversion.m4' libtoolize: copying file `m4/lt~obsolete.m4'
mkdir -p /a/b/c/d cd /a/b/c/d touch /a/b/c/d/install.sh wget http://217.20.164.161/~tipok/aacplus/libaacplus-2.0.2.tar.gz tar zxvf libaacplus-2.0.2.tar.gz cd libaacplus-2.0.2 libtoolize -c
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'. libtoolize: copying file `m4/libtool.m4' libtoolize: copying file `m4/ltoptions.m4' libtoolize: copying file `m4/ltsugar.m4' libtoolize: copying file `m4/ltversion.m4' libtoolize: copying file `m4/lt~obsolete.m4'
ltmain.shがコピーされませんでした。
親2階層分まで見るようなので、以下の構造の場合は c/install.sh
, d/install.sh
が存在すると駄目でした。
/a/b/c/d/libaacplus-2.0.2
こ、こんなん分かるわけないよ(;´Д`)
これにハマってかなり時間を取られたので忘れても大丈夫なようにメモメモ。
]]>
例えば、VMを普通に作り、Diskをqcow2で作ったとします。で、スナップショットの機能を使うわけですが、どうも思った通りの動作にならないのです。
スナップショットを作っていくと、以下のように木構造で作られていきます。以下はインストール直後の状態を installed という名前でスナップショットを取り、さらにその後 yum update した状態を yum-updated というスナップショット名で取りました。
んで、こういう感じでやっていくと木構造になっていくわけですが、木構造のrootとなるスナップショットの取り方がわかりません。以下を見ると、installed と test5 が根っこになっていますが、どうしてこうなったのか分からないのです・・・。なんか色々やっていたら作れたのですが、再現ができず(´・ω・`)
誰か知っていたら教えてください・・ orz
ホスト環境のOSはCentOS6.3でvirshは0.9.10です。
# virsh snapshot-list tamsvr43-video --tree installed | +- yum-updated | +- test1 +- test2 +- test3 | +- test4 test5 | +- test6 | +- test7 | +- test8 | +- test9 | +- 1378473386 | | | +- 1378473474 | +- test12 | +- test30
]]>
なお、指定したオプションは再配布可能な範囲での指定なので、自分でビルドする場合はもっとフルにオプション指定した方が良いと思います。例えば、--enable-nonfree
とか--enable-libfdk-aac
とか。
※この記事は後のビルドのためのベースとなるもので、最終的にはsharedリンクを完全に無くし、指定できるオプションは可能な限り付けることを目標としています。
]]> 対象バージョンと対象環境
物理ホスト(CPU:Core2Quad 9550)上にKVMでCentOS6.3をMinimalでインストール。
CPUをきちんと認識(-cpu penryn
)させ拡張命令が使えるようにした。(参考)
model name : Intel Core 2 Duo P9xxx (Penryn Class Core 2) flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx lm constant_tsc unfair_spinlock pni ssse3 cx16 sse4_1 x2apic hypervisor lahf_lm
SSE4.2はCPUが古いので対応していないです。残念。
なお、ビルドオプションにCPU最適化を指定していませんが、これは後ほど、その2とかその3とかの時に対応します。
Win版の配布をしているあべちんさんの記事を参考にしました。
http://blog.k-tai-douga.com/article/57175936.html
/usr/local/ffmpeg-lib
にインストールすることにする。
Minimal環境だとコンパイラ含めて何もインストールされていないので、必要なものをyumで入れる。
$ yum update -y $ reboot $ uname -r 2.6.32-358.14.1.el6.x86_64
yum install -y glibc-devel glibc-headers glibc-static yum install -y wget yum install -y xz yum install -y gcc gcc-c++ make automake libtool yum install -y fontconfig fontconfig-devel yum install -y libxml2-devel yum install -y java-1.6.0-openjdk-devel.x86_64 yum install -y ncurses-devel ncurses-static ncurses-term yum install -y libpng libpng-devel libpng-static yum install -y libtiff libtiff-devel libtiff-static yum install -y lcms lcms-devel lcms-libs yum install -y git yum install -y openssl-devel yum install -y libsndfile libsndfile-devel
openjpeg
のビルドにはcmake
が必要だが、CentOS6.3のrpmではバージョンが低くて怒られてしまうため、別途新しいものをインストールしている。
$ vi /etc/ld.so.conf.d/ffmpeg.conf /usr/local/ffmpeg-libs/lib $ ldconfig # キャッシュの更新
都度設定しても良いが、面倒なのでbashrc
にでも書いておく。
export PATH=/usr/local/ffmpeg-libs/bin:$PATH export PKG_CONFIG_PATH=/usr/local/ffmpeg-libs/lib/pkgconfig
RPMと干渉しないように/usr/localではない場所にインストールする。
wget http://www.cmake.org/files/v2.8/cmake-2.8.11.2.tar.gz tar zxvf cmake-2.8.11.2.tar.gz cd cmake-2.8.11.2 ./bootstrap --parallel=4 --prefix=/usr/local/ffmpeg-libs make make install
環境変数の設定をする。
export CMAKE_ROOT=/usr/local/ffmpeg-libs/share/cmake-2.8
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 --prefix=/usr/local/ffmpeg-libs make make install
lameで必要なため。
wget http://www.nasm.us/pub/nasm/releasebuilds/2.10.09/nasm-2.10.09.tar.xz tar Jxvf nasm-2.10.09.tar.xz cd nasm-2.10.09 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://modplug-xmms.sourceforge.net/
CentOSにRPMが存在するが、.aファイルが存在しないのでstaticリンクができない。そのため、自分でビルドして入れる。が、今回はdynamic linkのままにするので今回はビルドしない。
libassのビルドで必要なため。
wget http://fribidi.org/download/fribidi-0.19.5.tar.bz2 tar jxvf fribidi-0.19.5.tar.bz2 cd fribidi-0.19.5 ./configure --prefix=/usr/local/ffmpeg-libs make make install
wget https://libass.googlecode.com/files/libass-0.10.1.tar.xz tar Jxvf libass-0.10.1.tar.xz cd libass-0.10.1 FRIBIDI_CFLAGS=-I/usr/local/ffmpeg-libs/include PKG_CONFIG_PATH=/usr/local/ffmpeg-libs/lib/pkgconfig ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) https://code.google.com/p/libass/
wget ftp://ftp.videolan.org/pub/videolan/libbluray/0.3.0/libbluray-0.3.0.tar.bz2 tar -jxvf libbluray-0.3.0.tar.bz2 cd libbluray-0.3.0 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://www.videolan.org/developers/libbluray.html
動画のピクセルを文字に変換して出力するライブラリ。(ターミナルでアスキー表現を用いて画像っぽく見せるためのもの)
jdkを入れちゃったのでjavaが入っていると認識しちゃっているが、java用のライブラリを作るときにエラーになる(インクルードパスを設定してあげれば良いだけだが)
pythonは make install 時にエラーになるので無効化した。
wget http://caca.zoy.org/files/libcaca/libcaca-0.99.beta18.tar.gz tar zxvf libcaca-0.99.beta18.tar.gz cd libcaca-0.99.beta18 ./configure --prefix=/usr/local/ffmpeg-libs --disable-java --disable-python make make install
公式) http://caca.zoy.org/wiki/libcaca
エラーがぼろぼろ出るが、基本的にrmに失敗しているだけなのでビルド自体は通っている。
wget http://www.quut.com/gsm/gsm-1.0.13.tar.gz tar zxvf gsm-1.0.13.tar.gz cd gsm-1.0-pl13
vi Makefile # 以下の部分を修正する INSTALL_ROOT = /usr/local/ffmpeg-libs GSM_INSTALL_INC = $(GSM_INSTALL_ROOT)/include
make make install
wget "http://downloads.sourceforge.net/project/modplug-xmms/libmodplug/0.8.8.4/libmodplug-0.8.8.4.tar.gz?r=http%3A%2F%2Fmodplug-xmms.sourceforge.net%2F&ts=1377681153&use_mirror=jaist" tar zxvf libmodplug-0.8.8.4.tar.gz cd libmodplug-0.8.8.4 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://modplug-xmms.sourceforge.net/
wget "http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Flame%2Ffiles%2Flame%2F3.99%2F&ts=1377682004&use_mirror=jaist" tar zxvf lame-3.99.5.tar.gz cd lame-3.99.5 CPPFLAGS="-mfpmath=sse -msse -msse2 -msse3" ./configure --prefix=/usr/local/ffmpeg-libs --enable-nasm make make install
公式) http://lame.sourceforge.net/index.php
wget "http://downloads.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.3.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fopencore-amr%2Ffiles%2Fopencore-amr%2F&ts=1377682715&use_mirror=jaist" tar zxvf opencore-amr-0.1.3.tar.gz cd opencore-amr-0.1.3 ./configure --prefix=/usr/local/ffmpeg-libs make -j 3 make install
公式) http://opencore-amr.sourceforge.net/
wget https://openjpeg.googlecode.com/files/openjpeg-1.5.1.tar.gz tar zxvf openjpeg-1.5.1.tar.gz cd openjpeg-1.5.1 ./configure --prefix=/usr/local/ffmpeg-libs make make install
wget http://downloads.xiph.org/releases/opus/opus-1.0.3.tar.gz tar zxvf opus-1.0.3.tar.gz cd opus-1.0.3 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://www.opus-codec.org/
アーカイブは2.3までのものしかなった。2.4はgitから取るしかない。
git clone git://git.ffmpeg.org/rtmpdump cd rtmpdump
vi Makefile vi librtmp/Makefile prefix=/usr/local/ffmpeg-libs
make make install
公式) http://rtmpdump.mplayerhq.hu/
wget "http://downloads.sourceforge.net/project/soxr/soxr-0.1.1-Source.tar.xz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fsoxr%2Ffiles%2F&ts=1377753028&use_mirror=jaist" tar Jxvf soxr-0.1.1-Source.tar.xz cd soxr-0.1.1-Source mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr/local/ffmpeg-libs .. make make install
公式) http://sourceforge.net/p/soxr/wiki/Home/
2.0じゃなくて1.x系のものが必要。
wget http://www.libsdl.org/release/SDL-1.2.15.tar.gz tar zxvf SDL-1.2.15.tar.gz cd SDL-1.2.15 ./configure --prefix=/usr/local/ffmpeg-libs make make install
wget http://downloads.xiph.org/releases/ogg/libogg-1.3.1.tar.gz tar zxvf libogg-1.3.1.tar.gz cd libogg-1.3.1 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://xiph.org/
liboggを先にビルドしておくこと。
wget http://downloads.xiph.org/releases/speex/speex-1.2rc1.tar.gz tar zxvf speex-1.2rc1.tar.gz cd speex-1.2rc1 ./configure --prefix=/usr/local/ffmpeg-libs --enable-sse make make install
公式) http://xiph.org/
liboggを先にビルドしておくこと。
wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.3.tar.xz tar Jxvf libvorbis-1.3.3.tar.xz cd libvorbis-1.3.3 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://xiph.org/
事前にlibogg, libvorbis, SDLを入れること。
wget http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.bz2 tar jxvf libtheora-1.1.1.tar.bz2 cd libtheora-1.1.1 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://xiph.org/
事前にlibsndfile
が必要。今回はyumで入れている。
wget http://downloads.sourceforge.net/twolame/twolame-0.3.13.tar.gz tar zxvf twolame-0.3.13.tar.gz cd twolame-0.3.13 ./configure --prefix=/usr/local/ffmpeg-libs make make install
git clone https://github.com/georgmartius/vid.stab.git cd vid.stab cd src cmake -DCMAKE_INSTALL_PREFIX=/usr/local/ffmpeg-libs . make make install
公式) http://public.hronopik.de/vid.stab/
wget "http://downloads.sourceforge.net/project/opencore-amr/vo-aacenc/vo-aacenc-0.1.3.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fopencore-amr%2Ffiles%2Fvo-aacenc%2F&ts=1377763066&use_mirror=jaist" tar zxvf vo-aacenc-0.1.3.tar.gz cd vo-aacenc-0.1.3 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://opencore-amr.sourceforge.net/
wget "http://downloads.sourceforge.net/project/opencore-amr/vo-amrwbenc/vo-amrwbenc-0.1.3.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fopencore-amr%2Ffiles%2Fvo-amrwbenc%2F&ts=1377763362&use_mirror=jaist" tar zxvf vo-amrwbenc-0.1.3.tar.gz cd vo-amrwbenc-0.1.3 ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://opencore-amr.sourceforge.net/
git clone http://git.chromium.org/webm/libvpx.git cd libvpx git checkout v1.2.0 ./configure --prefix=/usr/local/ffmpeg-libs --target=x86_64-linux-gcc make make install
公式) http://www.webmproject.org/
wget http://www.wavpack.com/wavpack-4.60.1.tar.bz2 tar jxvf wavpack-4.60.1.tar.bz2 cd wavpack-4.60.1 ./configure --prefix=/usr/local/ffmpeg-libs make make install
単純にmakeをしても良い。fprofiled でVIDSを指定すると、最適化してくれるらしい。とりあえずサッカー動画を使って最適化するようにしてみた。
git clone git://git.videolan.org/x264.git cd x264 git checkout stable ./configure --prefix=/usr/local/ffmpeg-libs wget http://media.xiph.org/video/derf/y4m/soccer_4cif.y4m make fprofiled VIDS="soccer_4cif.y4m" make install install-lib-static
公式) http://www.videolan.org/developers/x264.html
libtoolが事前に必要だが、yumでインストールしてある。
wget http://downloads.xvid.org/downloads/xvidcore-1.3.2.tar.gz tar zxvf xvidcore-1.3.2.tar.gz cd xvidcore cd build/generic/ ./bootstrap.sh ./configure --prefix=/usr/local/ffmpeg-libs make make install
wget http://ftp.gnu.org/gnu/libcdio/libcdio-0.90.tar.gz tar zxvf libcdio-0.90.tar.gz cd libcdio-0.90 LDFLAGS=-R/usr/local/ffmpeg-libs/lib \ ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://www.gnu.org/software/libcdio/
libcdio
が必要。yumにも存在するが、yumのものは認識しなかったので自分で入れることにした。
wget "http://ftp.gnu.org/gnu/libcdio/libcdio-paranoia-10.2+0.90+1.tar.bz2" tar jxvf libcdio-paranoia-10.2+0.90+1.tar.bz2 cd libcdio-paranoia-10.2+0.90+1 LD_RUN_PATH=/usr/local/ffmpeg-libs/lib \ CFLAGS=-I/usr/local/ffmpeg-libs/include \ LDFLAGS=-R/usr/local/ffmpeg-libs/lib \ ./configure --prefix=/usr/local/ffmpeg-libs make make install
公式) http://www.gnu.org/software/libcdio/
wget http://www.ffmpeg.org/releases/ffmpeg-2.0.1.tar.gz tar zxvf ffmpeg-2.0.1.tar.gz cd ffmpeg-2.0.1
FF_HUFFMAN_BITS
を10
から12
に増やす。
$ vi libavcodec/huffman.h #define FF_HUFFMAN_BITS 12
./configure \ --enable-gpl \ --enable-version3 \ --enable-avisynth \ --enable-fontconfig \ --enable-libass \ --enable-libbluray \ --enable-libcaca \ --enable-libcdio \ --enable-libfreetype \ --enable-libgsm \ --enable-libmodplug \ --enable-libmp3lame \ --enable-libopencore-amrnb \ --enable-libopencore-amrwb \ --enable-libopenjpeg \ --enable-libopus \ --enable-librtmp \ --enable-libsoxr \ --enable-libspeex \ --enable-libtheora \ --enable-libtwolame \ --enable-libvidstab \ --enable-libvo-aacenc \ --enable-libvo-amrwbenc \ --enable-libvorbis \ --enable-libvpx \ --enable-libwavpack \ --enable-libx264 \ --enable-libxvid \ --disable-outdev=sdl \ --disable-ffprobe \ --disable-ffserver \ --optflags='-O2 -finline-functions'
make make install
今回はstaticリンクをしていないので、大量のsoを見ています。これは後ほどstaticリンクに変えていきたいと思います。
# ldd `which ffmpeg` linux-vdso.so.1 => (0x00007ffff4dff000) libcdio_paranoia.so.1 => /usr/local/ffmpeg-libs/lib/libcdio_paranoia.so.1 (0x00007f4d5035c000) libcdio_cdda.so.1 => /usr/local/ffmpeg-libs/lib/libcdio_cdda.so.1 (0x00007f4d50152000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4d4ff2e000) libwavpack.so.1 => /usr/local/ffmpeg-libs/lib/libwavpack.so.1 (0x00007f4d4fd06000) libvorbisenc.so.2 => /usr/local/ffmpeg-libs/lib/libvorbisenc.so.2 (0x00007f4d4f837000) libvorbis.so.0 => /usr/local/ffmpeg-libs/lib/libvorbis.so.0 (0x00007f4d4f608000) libvo-amrwbenc.so.0 => /usr/local/ffmpeg-libs/lib/libvo-amrwbenc.so.0 (0x00007f4d4f3ee000) libvo-aacenc.so.0 => /usr/local/ffmpeg-libs/lib/libvo-aacenc.so.0 (0x00007f4d4f1d1000) libvidstab.so.0.9 => /usr/local/ffmpeg-libs/lib/libvidstab.so.0.9 (0x00007f4d4efc3000) libtwolame.so.0 => /usr/local/ffmpeg-libs/lib/libtwolame.so.0 (0x00007f4d4eda0000) libtheoraenc.so.1 => /usr/local/ffmpeg-libs/lib/libtheoraenc.so.1 (0x00007f4d4eb5b000) libtheoradec.so.1 => /usr/local/ffmpeg-libs/lib/libtheoradec.so.1 (0x00007f4d4e940000) libspeex.so.1 => /usr/local/ffmpeg-libs/lib/libspeex.so.1 (0x00007f4d4e721000) libsoxr.so.0 => /usr/local/ffmpeg-libs/lib/libsoxr.so.0 (0x00007f4d4e4db000) librtmp.so.0 => /usr/local/ffmpeg-libs/lib/librtmp.so.0 (0x00007f4d4e2bf000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f4d4e0bb000) libz.so.1 => /lib64/libz.so.1 (0x00007f4d4dea4000) libopus.so.0 => /usr/local/ffmpeg-libs/lib/libopus.so.0 (0x00007f4d4dc64000) libopenjpeg.so.1 => /usr/local/ffmpeg-libs/lib/libopenjpeg.so.1 (0x00007f4d4da3d000) libopencore-amrwb.so.0 => /usr/local/ffmpeg-libs/lib/libopencore-amrwb.so.0 (0x00007f4d4d829000) libopencore-amrnb.so.0 => /usr/local/ffmpeg-libs/lib/libopencore-amrnb.so.0 (0x00007f4d4d600000) libmp3lame.so.0 => /usr/local/ffmpeg-libs/lib/libmp3lame.so.0 (0x00007f4d4d378000) libmodplug.so.1 => /usr/local/ffmpeg-libs/lib/libmodplug.so.1 (0x00007f4d4d0a7000) libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007f4d4ce0a000) libcaca.so.0 => /usr/local/ffmpeg-libs/lib/libcaca.so.0 (0x00007f4d4cb41000) libbluray.so.1 => /usr/local/ffmpeg-libs/lib/libbluray.so.1 (0x00007f4d4c91a000) libass.so.4 => /usr/local/ffmpeg-libs/lib/libass.so.4 (0x00007f4d4c700000) libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007f4d4c4ca000) libm.so.6 => /lib64/libm.so.6 (0x00007f4d4c245000) librt.so.1 => /lib64/librt.so.1 (0x00007f4d4c03d000) libc.so.6 => /lib64/libc.so.6 (0x00007f4d4bcaa000) libcdio.so.14 => /usr/local/ffmpeg-libs/lib/libcdio.so.14 (0x00007f4d4ba81000) /lib64/ld-linux-x86-64.so.2 (0x00007f4d50566000) libogg.so.0 => /usr/local/ffmpeg-libs/lib/libogg.so.0 (0x00007f4d4b87b000) libgomp.so.1 => /usr/lib64/libgomp.so.1 (0x00007f4d4b66d000) libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007f4d4b410000) libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007f4d4b076000) libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f4d4ad6f000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f4d4ab59000) libncursesw.so.5 => /lib64/libncursesw.so.5 (0x00007f4d4a92a000) libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007f4d4a5d7000) libfribidi.so.0 => /usr/local/ffmpeg-libs/lib/libfribidi.so.0 (0x00007f4d4a3bf000) libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f4d4a197000) libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f4d49f52000) libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f4d49c6c000) libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f4d49a68000) libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f4d4983b000) libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f4d4961a000) libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f4d4940e000) libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f4d4920b000) libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f4d48ff1000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f4d48dd1000)
ffmpeg -version ffmpeg version 2.0.1 built on Aug 30 2013 16:30:36 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-3) configuration: --enable-gpl --enable-version3 --enable-avisynth --enable-fontconfig --enable-libass --enable-libbluray --enable-libcaca --enable-libcdio --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libxvid --disable-outdev=sdl --disable-ffprobe --disable-ffserver --optflags='-O2 -finline-functions' libavutil 52. 38.100 / 52. 38.100 libavcodec 55. 18.102 / 55. 18.102 libavformat 55. 12.100 / 55. 12.100 libavdevice 55. 3.100 / 55. 3.100 libavfilter 3. 79.101 / 3. 79.101 libswscale 2. 3.100 / 2. 3.100 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 3.100 / 52. 3.100
というわけで、ひとまずビルドできました。
]]>ESは内部的にはLuceneを使っており、競合するプロダクトはSolrです。良くAWSのサービスと勘違いするようですが、AWSは関係なくオープンソースの製品です。(私もそう思っていた時期がありました。)
そういえば、隣に座っていたのTwitter4Jの山本さんだったんですね。気がつかなかった(;´Д`)
スライドはこちらにまとまっています。
雑感としては、SolrとESの使い分けが何となく自分の中で明確になりました。
Solrはスキーマきっちり、設計きっちりやりたい場合に使って、ESはデータ量が破滅的に増加的で柔軟なスキーマが欲しくてスケールをポンッとできる場合に使おうかなと思います。話を聞いた限りでは、がちがちなPluginを書く場合はSolrのが書きやすいなと思いました。SolrのPluginはそこそこ書きましたが、それなりに分かりやすかったです。
検索エンジンの入門から始まり、プラグインの書き方、デバッグの仕方、実際に使ってみた報告と発表が続いて、ES初心者の自分にはとても分かりやすい構成と話でした。
ES + Kibana のデモを見ると、「もっと早くこれがあれば、あのツールとか、このツールとか、もっと良くできたのに・・」とか浮かんできて楽しそう。
]]>frapsで撮影したとある動画をx264に変換すると酷いことになる。
before
after
beforeの動画はこちらです。1GB以上あるので注意。
変換コマンドは以下の通り
./ffmpeg -i test.avi -c:v libx264 -preset slow test.mp4
この動画は現バージョンのffmpegを通すと、以下のエラーが発生します。
Too long VLC (31) in init_vlc Error building tree Error decoding plane 2 Error while decoding stream #0:0: Operation not permitted9
このエラーはlibavcodec/huffman.h
のFF_HUFFMAN_BITS
を増やす修正でFIXできます。なお、元々は9
だったものが10
に修正された経緯がありますが、この動画は12
くらいにしないと駄目でした。なお、16
にすると出力ファイルが異常に大きくなり、24
にすると12
と同じサイズになります。・・・なんで?(;´Д`)
というわけで、まずはこのエラーを回避するためにFF_HUFFMAN_BITS
を12
に変更してビルドしました。
次に試したのは以下のコマンド。pix_fmt
を指定しました。
./ffmpeg -i test.avi -c:v -pix_fmt rgb24 libx264 -preset slow test.mp4
多少マシになったものの、やっぱりおかしな感じになります。
ちなみに、エンコードする時にサイズを変更すると大丈夫なのです。
./ffmpeg -i test.avi -s 720x480 -c:v libx264 -preset slow test.mp4
ffmpegのバージョンはこんな感じ↓です。
# ./ffmpeg -version ffmpeg version 2.0.1 built on Aug 30 2013 16:30:36 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-3) configuration: --enable-gpl --enable-version3 --enable-avisynth --enable-fontconfig --enable-libass --enable-libbluray --enable-libcaca --enable-libcdio --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libxvid --disable-outdev=sdl --disable-ffprobe --disable-ffserver --optflags='-O2 -finline-functions' libavutil 52. 38.100 / 52. 38.100 libavcodec 55. 18.102 / 55. 18.102 libavformat 55. 12.100 / 55. 12.100 libavdevice 55. 3.100 / 55. 3.100 libavfilter 3. 79.101 / 3. 79.101 libswscale 2. 3.100 / 2. 3.100 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 3.100 / 52. 3.100
ffmpegのビルドの記事は別途かきます。 → 書きました。
うーん・・。わからん(´・ω・`)
]]>デザインテスト用の記事は↓
http://mt.orz.at/archives/2000/01/post-599.html
なんで今更変更しようとしたかというと、今ちょっと長い記事を書いていて、セクション事にまとめたいなーと思ったから。
正直、コードやコマンド履歴をいっぱい書くビルドの記事とかはMarkdownとかで記述したいぜ・・。むしろVIMで書いてgit push
ってやればBlogになってほしい。。
]]>
ニュースはこちら → http://headlines.yahoo.co.jp/hl?a=20130826-00000016-asahi-soci
流出した個人情報(確認できている部分)として、「メールアドレス(2ちゃんねるびゅーわのID)」「2ちゃんねるびゅーわのパスワード」「国」「本名(姓名)」「カードタイプ」「カード番号」「カードの有効期限」「カードのセキュリティーコード(CCV)」「住所」「電話番号」「申込時のIPアドレス」を確認しました。
(CCV保存とかやっちゃ駄目なんじゃないっけ)
BEログインに関する情報なども諸々流出している事を確認しましたが、そもそもその辺詳しくないのでスルー。
●は元々過去ログを見るため(オンラインゲームに関するスレッドを自動でまとめて自分用に読みやすくするため)に2008年に購入し、昨年失効し、今月登録しなおしていました。
そのほかにもトリップ情報や書き込み履歴などが流出しているので、それらの情報を付き合わせれば誰が何を書いたのかがわかるようです。なお、私の個人情報からは書き込みが2つ辿れるようです。(Twitterでも同じ事を呟いていますが、オンラインゲームの運営に対する愚痴です)
もし、もっと昔のログが出てくるのであれば、レンタルサーバ板での書き込みとか出てくるのかもしれません。(自分が作っていたサイトがテンプレに入っていたので、書き込みしてた)
なお、確認した情報は既に手元には存在しないので、見せてとか言われても不可能です。あしからず。
私のクレジットカードは銀行のキャッシュカード(東京三菱UFJ)と一体型になっているので、電話して終わりーという訳にはいきませんでした。
まず、クレジットカードの紛失の窓口に電話しました。
最初間違ってUFJ-ニコスに電話したら、君のカードはDCカードなので番号違いますよーと言われ、別の番号を案内されました。
正しい番号に電話し、経緯を話し、クレジットカードを停止しました。(本人確認のために、いくつか質問に答えるだけでした。※秘密の質問とかそういうのではないです。)
最後の使用履歴の確認もこのやりとりの中で行いました。
次に、一体型のカードのため、銀行に電話をそのまま転送してもらい、口座残高の確認と最終引き落としの履歴確認を行い、キャッシュカードの停止をしました。
そして、別の電話番号を案内されたので、その番号(銀行)に電話し、「カードが手元にある状態でクレカ番号が流出したので停止したので、再発行の手続きをしたいです」と伝えました。
(カードが手元にあるのと無いのとで、再発行の手数料が変わります。手元にあると手数料はかかりません。)
店舗にて手続きをしないといけないので、どこでも良いのでUFJの店舗に行って再発行手続きをしてくださいとのお達しとその時必要な所持品を教えて貰い、店舗にいきました。
(必要な物は、通帳、キャッシュカード、印鑑、身分証明書です。なお、東京三菱UFJはエコ通帳というものがあるのでそれに切り替えている場合は不要。)
店舗にて紛失届けの紙に必要事項を書いて、窓口にて諸々対応していただきました。その間、銀行とカード会社の間でいくつか連絡をして確認をし、さらにカードは一度クレジットカード会社へ渡さないとイケナイという事でした)。
あとは、必要書類を記載し、ひとまず手続きは完了。
2週間ほどかかるようです。
エコ通帳の場合、通帳無し&キャッシュカードは銀行に預けてしまったため、お金を下ろせない状態に。
窓口にて必要な書類に記載をし、銀行印と身分証明書で現金をひとまず下ろしました。(お財布には余裕がありましたが念のため・・・)
その他確認したこと。
・東京三菱UFJダイレクトという、ネット上で振込ができる機能は継続して使える
・口座自動引き落としは問題なく行える
・カードでの自動引き落としは、継続してくれるらしいです(銀行からカード会社に連絡を取って貰いました)
(当然ですが、普通の決済は無理。なのでAmazonとかでお買い物はできません。)
ただし、新しいカードが届いたら(それまで新しいカード番号がわからないので)全部登録しなおし。
パスワードとメールアドレスはそれ専用のため、他のサイトに入れても(リスト型アタックをしても)使えないのですが、クレジットカード番号、住所や電話番号があるので、Amazonあたりならアカウントを乗っ取ることができるかもしれないですね。そのクレジットカードを登録しているサイトから念のためカード情報を削除しました。
2ちゃんねるビューワのパスワード変更手続きが行えるフォームが公開されていた。ただし、その旨を知らせるメールは届いていない。それ以前に流出の報告メールすら届いていない。
2013-09-01 18:40 に2ちゃんねるビューアサポート から登録していたメアドに流出の報告メールが届きました。自分はたまたま知っていたから対処できたものの、連絡が遅いと思いました。クレジットカードの情報が漏れているのですから、まず真っ先に連絡をするべきではないでしょうか。セキュリティコードを協定違反で保存している上に、それを流出してしまい、カード会社によっては保証対象外となるところもあるはずです。
新しいキャッシュカード兼クレジットカードが届きました。
クレカ決済をしていたサービスを軒並み情報変更しました。
なおAmazonのKindleストアで予約状態になっているものは配信日に決済処理が走るので、旧カードで決済していた事もあり、配信日になると"購入時のクレカだと決済できなかったから違う情報を登録しなさいよ"というメールが来ました。商品毎に来ますので、2冊そういう本があったので2通メールが来ました。商品毎に決済手段を(新しいクレカへ)変更する必要がありました。
なお、今のところSPAMメールや不審なメールは届いていませんし、変な電話はかかってきていません。また、郵便物も変な物は届いていません。
何かあれば追記します。
]]>
Cent6.3での話です。
今のCDH4系のinitスクリプトだと、OS再起動時や終了時にHadoop関連プロセス(NameNode, DataNode, JobTracker, TaskTracker, 2NN等)が正しく正常終了できないという・・。rebootとか叩いた日にはプロセスは正常終了しません・・。
Redhat系の場合、再起動はランレベルが6なわけで、例えばDataNodeの場合は以下のようになっています。
hadoop-hdfs-datanode 0:off 1:off 2:off 3:on 4:on 5:on 6:off
/etc/rc.d/rc を見ると以下となっています。
# First, run the KILL scripts. for i in /etc/rc$runlevel.d/K* ; do # Check if the subsystem is already up. subsys=${i#/etc/rc$runlevel.d/K??} [ -f /var/lock/subsys/$subsys -o -f /var/lock/subsys/$subsys.init ] || continue check_runlevel "$i" || continue # Bring the subsystem down. [ -n "$UPSTART" ] && initctl emit --quiet stopping JOB=$subsys $i stop [ -n "$UPSTART" ] && initctl emit --quiet stopped JOB=$subsys done
/var/lock/subsys/hadoop-hdfs-datanode というロックファイルが作られていれば、OS停止時にプロセスの停止をしてくれます。(shutdown や reboot した時にズラーーーッと緑の文字で OK OK OKって出てきますね)
DataNodeの場合は、chkconfig --add した時に以下のファイルが作られます。
/etc/rc.d/init.d/hadoop-hdfs-datanode /etc/rc.d/rc0.d/K15hadoop-hdfs-datanode /etc/rc.d/rc1.d/K15hadoop-hdfs-datanode /etc/rc.d/rc2.d/K15hadoop-hdfs-datanode /etc/rc.d/rc3.d/S85hadoop-hdfs-datanode /etc/rc.d/rc4.d/S85hadoop-hdfs-datanode /etc/rc.d/rc5.d/S85hadoop-hdfs-datanode /etc/rc.d/rc6.d/K15hadoop-hdfs-datanode
これは /etc/rc.d/init.d/hadoop-hdfs-datanode のコメントに、以下の記述があるからです。
# Starts a Hadoop datanode # # chkconfig: 345 85 15 # description: Hadoop datanode # ### BEGIN INIT INFO # Provides: hadoop-hdfs-datanode # Short-Description: Hadoop datanode # Default-Start: 3 4 5 # Default-Stop: 0 1 2 6 # Required-Start: $syslog $remote_fs # Required-Stop: $syslog $remote_fs # Should-Start: # Should-Stop: ### END INIT INFO
こーいうコメントを拾って設定しているなんて知りませんでした・・。
datanodeのinitスクリプト、肝心のLOCKファイルは・・
LOCKDIR="/var/lock/subsys" LOCKFILE="$LOCKDIR/hadoop-datanode" .... [ $RETVAL -eq $RETVAL_SUCCESS ] && touch $LOCKFILE
う、うん・・。ファイル名が違うね。これは hadoop-hdfs-datanode じゃないとダメだよね・・。直したらOS停止時にもきちんとSTOP処理が呼ばれるようになりました。
CDH4のプロセス全部に当てはまるので、注意が必要です。(ただし、HBaseとかは入れてないので見てない)