最新のFFmpegをソースからインストールする

2014-11-28
このエントリーをはてなブックマークに追加

スマフォで撮った動画をアップしてブラウザで表示させたい!っていう要望があったとしたら今どきならmpeg4とoggに変換しておいてvideoタグで表示させてやるのが手っ取り早いかと。「YouTubeAPI叩いてアップすりゃいいじゃん」とか聞こえない。

動画を変換するならFFmpegが便利なんですけど、yumでインストールしようとすると0.6という非常に古いバージョンをインストールしようとします(’14.11.27現在)ので、ここはソースからインストールしようと。

sudo rpm -Uhv http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

sudo yum install yasm-devel yasm
sudo yum install libogg libogg-devel
sudo yum install faac faac-devel
sudo yum install xvidcore xvidcore-devel zlib-devel zlib
sudo yum install libvorbis libvorbis-devel
sudo yum install libtheora libtheora-devel

git clone git://git.videolan.org/x264.git

cd x264
sudo ./configure –enable-shared
sudo make
sudo make install

sudo git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
sudo ./configure –enable-gpl –enable-version3 –enable-nonfree –enable-shared –enable-libfaac –enable-libx264 –enable-libtheora –enable-libvorbis
sudo make
sudo make install

vi /etc/ld.so.conf
/usr/local/lib

sudo ldconfig

$ ffmpeg -version
ffmpeg version N-67254-g0c42f47 Copyright (c) 2000-2014 the FFmpeg developers
built on Oct 30 2014 06:36:01 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)

ライブラリ、コーデックの類は依存関係がめんどくさいのでyumで。x264だけyumで入るバージョンが古かったのでgitから落としてきました。

スマートフォンから動画をアップしてブラウザで閲覧、っていうのであればmp4とoggがあれば足りるだろうということで最低限しかいれてません。これで足りてる、はず。IE8以下は知らない。

WebMってどうなったんだろ。

12/04追記、configureに–enable-libtheora –enable-libvorbis が足りなかったので追加。

Tags:

CentOSにMeCabをインストールする方法

2013-12-12
このエントリーをはてなブックマークに追加

正直今更な感じもするのですが、なんだかんだで毎回調べなおしちゃうのでメモ。

sudo wget https://mecab.googlecode.com/files/mecab-0.996.tar.gz
sudo tar zxfv mecab-0.996.tar.gz
cd mecab-0.996
sudo ./configure --with-charset=utf8 --enable-utf8-only
sudo make
sudo make install

本体のインストールはこれだけ。あとは辞書のインストール。IPA辞書じゃなくてUniDicを使ってみます。こちらのページでバイナリが公開されてるので落としてきて解凍したあとMeCabに「辞書はここだよー」って教えてあげるだけです。

場所に特にこだわりはないんですけど、ipadicが/usr/local/lib/mecab/dic/ipadicに置かれるので今回は同じ場所(/usr/local/lib/mecab/dic/unidic)に置いてみました。

で、mecabrcを編集。

sudo vi /usr/local/etc/mecabrc
dicdir = /usr/local/lib/mecab/dic/unidic #辞書の場所を指定

これで完了。

$ mecab
わたしまけましたわ
わたし     ワタシ     ワタシ     私     代名詞               0
まけ     マケ     マケル     負ける     動詞-一般     下一段-カ行     連用形-一般     0
まし     マシ     マス     ます     助動詞     助動詞-マス     連用形-一般
た     タ     タ     た     助動詞     助動詞-タ     終止形-一般
わ     ワ     ワ     わ     助詞-終助詞
EOS

MeCabいじってると楽しすぎてあっという間に時間が溶けます。

CentOS6.2にredisをインストールする

2012-04-18
このエントリーをはてなブックマークに追加


InstagramPinterestでも利用されているredisをCentOSにインストールしてみました。

現時点での最新版(2.4.10)をダウンロードして解凍、コンパイルしてインストールします。

wget http://redis.googlecode.com/files/redis-2.4.10.tar.gz
tar zxfv redis-2.4.10.tar.gz
cd redis-2.4.10
make
make install

で、セットアップ。起動スクリプトまで用意してくれます。
セットアップ中にいろいろ聞かれますが、デフォルトのままでいいと思います。

cd utils/
./install_server.sh

起動スクリプトはoffになっているはずなので、onにします。

chkconfig –list redis_6379
chkconfig redis_6379 on

で、起動しましょう。

/etc/rc.d/init.d/redis_6379 start

起動したらクライアントツールを立ちあげて、

redis-cli

redis 127.0.0.1:6379> set hoge hogehoge
OK
redis 127.0.0.1:6379> get hoge
“hogehoge”

こんな感じです。

んー、さて、何に使おう。

CentOS6.0の64bit版をテキストモードでネットワークインストール

2011-12-07
このエントリーをはてなブックマークに追加

今頃やっとCentOS6.0の環境作り始めました。なんかすごいGUIなんですけど。

一番最初の画面で「install」を選択したあと、tabで移動して「 text」を追記してください。「initrd=initrd.img text 」ってなるようにですね。

これでテキストモードでインストールが開始されます。

で、ネットワークインストール時のiso置いてある場所を指定する部分、

ftp://ftp.riken.jp/Linux/centos/6.0/os/x86_64

を入れてください。上記は64bitの場合です。いつものとおり、理研さん使わせていただいてます。ありがとうございます。

で、キーボードの選択は上記の指定以降なので、最初は英字キーボード扱いされます。ので、「:」や「_」の入力に困るかと。

「:」は日本語キーボードだと「れ」+「Shift」です。「_」は「ほ」+「Shift」です。知らないでいると、最初はあれれってなりますよね。

Tags: ,

CentOS5.7にMySQL5.5とMySQL-pythonをインストールしたらエラーが出た

2011-11-07
このエントリーをはてなブックマークに追加

もうまんま表題の通りです。ちょっと遊べる環境作っておこうと思ってCentOS5.7のVM作って、そこにMySQL5.5をソースからビルドしてインストールした時の話です。

まぁエラーが出てプチハマりしたってだけの話ですが。

MySQLのインストールは問題なく終わり、コマンドラインでMySQLへのログインも問題なく終わりました。そこへPython2.7のインストールも無事に終わり、あとはモジュールを入れていくだけ、という状況でMySQL-pythonをインストールしたあとのことです。

Pythonを起動して「import MySQLdb」と叩くと、

ImportError: libmysqlclient.so.18: cannot open shared object file: No such file or directory

とのエラーメッセージ。先週CentOS5.6で環境作ったときには出なかったエラーメッセージです。

まぁただ単に共有ライブラリとして見える場所においていなかっただけの話だったのです。

ので、

/etc/ld.so.conf

/usr/local/mysql/lib

を追記して、

/sbin/ldconfig

要するに置いてある場所も共有ライブラリ置き場として追加してやって設定反映で終わり。すでに共有ライブラリ置き場になっているところにシンボリックリンクを置いてあげてもよかったのかもしれませんが、ライブラリからの相対パス云々があると悲しいことになりそうだったのでパス追加にしておきました。

ハセテツが無知なだけで、シンボリックリンク追加だけでよかったのかもしれません。お好きな方法をお試しいただければ。

CentOS5.6にPython2.7をインストールした

2011-10-31
このエントリーをはてなブックマークに追加

CentOS5.2にPython2.5をインストールする

上記エントリの手順のまんまインストールしたら以下のエラーが出ました。

python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

ので、ちょっと整理しなおし。

cd /usr/local/src/
wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz
tar zxfv Python-2.7.2.tgz
cd Python-2.7.2
./configure --enable-shared

make 
make install

ln -s /usr/local/lib/libpython2.7.so.1.0 /lib64/

python -V

シンボリックリンクを張ってるだけですね。あと前回のサンプルだと「–enable-shared」を付け忘れていたので、それを追加しています。

シンボリックリンクの張り先は環境によって変わると思います。今回はCentOS5.6(64bit)だったので上記になっただけです。

Tags: ,

xml署名の実装にハマった

2010-12-15
このエントリーをはてなブックマークに追加

GoogleAppsで独自のログイン認証をしようとしたりすると、SAMLを使う必要があります。で、さらにぶんなげるxmlにはデジタル署名を加えてやら無いといけないのです。

これはxmlsec、xmlsec-opensslをrpmでインストール(yumだと入らなかった)してやれば済むだろうと簡単に考えていたのですが、そうはいきませんでした。

xmlsecに関しては問題なかったのですが、

Error: unable to load xmlsec-openssl library. Make sure that you have
this it installed, check shared libraries path (LD_LIBRARY_PATH)

と、「xmlsec-OpenSSLがみつかんねーYO!」と怒られてしまうわけです。インストールしたっちゅーねん!

現在の環境はCentOS5.5の64bit。/usr/lib64にパスを通しても変わらず、悶々としていたところ、


libxmlsec1-openssl.so.1

ん?rpmって普段使わないからわかんないんだけど、.soじゃないの?「libxmlsec1-openssl.so」ってシンボリックリンクつくってみるか。うぉぉぉぉ、うごいたぁぁぁぁ!

な感じでした。

結局、

  1. xmlsec、libxslt、xmlsec1-openssl、それぞれのdevelをrpmでインストール(ソースだとlibxml2のバージョンでうるさい)。
  2. /usr/lib64にパス通す。
  3. libxmlsec1-openssl.soっていうシンボリックリンクつくる。

だけでした。

半日悩んだ。。。

Tags:

WordPressのチューニングをしてみようかと思った

2009-12-30
このエントリーをはてなブックマークに追加

ApacheBenchでこのブログのパフォーマンスを計測したら、

Requests per second:    9.94[#/sec]

という、思っていたより残念な結果でした。うーん、思っていたより低いなぁ。。。

で、とりあえずmysql_connectをmysql_pconnectに変えてみたのですが。

Requests per second:    10.01 [#/sec]

と、大して変わらず。。。

めんどくさいけど、ApacheとMySQLの設定から見直そう。PHPをDSOで使ってるのも影響してるのかなぁ。。。

CentOS5.4の64bit版をネットワークインストールする

2009-12-20
このエントリーをはてなブックマークに追加

CentOSをネットワークインストールというエントリーでネットワークインストールする方法を書いておいたのですが、これは32bit版のやりかた。

といってもほとんど変わりません。FTPで見に行く先が変わるだけです。今回はCentOS5.4の64bit版をCore2Duoのマシンにインストールしました。

ディレクトリが「/Linux/centos/5.4/os/x86_64」に変わるだけでした。あとは32bit版とまったくおんなじ。

初の64bit環境ですが、ちといろいろと試して遊んでみたいと思います。

Tags:

LinuxでSSHの接続ホストを制限する

2008-10-03
このエントリーをはてなブックマークに追加

rootじゃ接続できないようにしてあるし、鍵方式での接続しか許可していないので不正ログインされる危険性はとても低いと思っているのですが、それでもせっせとログインしようとしてくる怪しげなプログラム君たちがいます。

ログがひたすら増えるだけでも若干気分が悪いので、SSHで接続できるホストをごりっと制限してしまいました。e-mobile等で外からメンテナンスすることができなくなってしまうので不便ではありますが、まぁレアケースだし、そもそもe-mobile持ってないので気にしないことにしましょう。

/etc/hosts.allow

に接続できるホストのIPアドレスを記載します。ここはホスト名でもいいみたいなんですが、IPにしておきました。

sshd:xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx

複数ある場合は半角スペースで区切るようです。これで、上記IPアドレスからの接続は許可されます。次は禁止ホストの設定です。

/etc/hosts.deny

sshd: ALL

と記述します。

「hosts.allow」→「hosts.deny」の順で解釈するそうです。「hosts.allow」に当該IPアドレスがあればそのまま接続を許可。「hosts.allow」にないIPは次に「hosts.deny」を参照し、そっちにあったら禁止。どっちにもなければ許可になります。

SCP使えばFTPもいらないし、MySQL等もローカル接続のみを許可にして、外部からつなぎたい場合はSSHでポートフォワードすればOK。無駄なポートは空けないことが重要かと。

Tags: ,