›11 25, 2011
iPod touchでradikoを録音するのに試したこと色々
思ったより苦戦したので記録。結論としては録音ができ、ffmpegでm3化まで自動でできそう。
■今回使ったもの
・初期化したiPod touch 第一世代 16G
・無線Lan環境
・Mac air 第一世代(touch用のffmpegを作成するのに利用)
■jailbreak
iPod touch第一世代は、OSが2.1くらいだとjailbreak.comが使えないようなので、600円出して3.1にする。なお、この時にwinでもmacでも同様のエラーが出来てうまくいかない症状が非常に出やすい。根本的解決策は不明なので頑張る。
OSを3.1にした後、safariでjailbreak.comにアクセスしてjailbreak。cydiaもインストール。
■cydia
cydiaの初期アップデートでdevelopper選択。featureの項目からaptbackup(これでapt系が利用できるようになる模様。その他、SBSettingとCyDeleteとopensshとをインストール。
SBSettingからSSHをONにし、一般設定から自動ロックがかからないようにしておく。
■アプリ領域移動
sshでログインしてやる。
# mkdir /private/var/Applications
# cp -Rp /Applications/* /private/var/Applications/
# ls -l /private/var/Applications/
# cd /
# rm -Rf /Applications
# ln -s /private/var/Applications/ /Applications
# reboot
NAO&WARA別館: iPod touchのアプリケーション領域を増やす
■コンパイル環境整備
このへんを参考に環境を整備する。リンク切れしていそうなファイルも、ファイル名で検索すればいつか見つかると思います。
Linuxをはじめよう!:iPhone/iPod touchでC言語プログラミング(改訂2)
pxsta's Memo ? iPodTouch/iPhone上でC言語プログラミング
Android タブレット「A81-E」 - iPhone本体だけ使用してアプリを開発する方法(OS 3.x.x) - @ウィキモバイル
■rtmpdump導入
radikoの録音には、現時点ではこれが必要らしいので導入を試みる。wgetはあると便利なので入れてます。
# apt-get install wget
# mkdir /usr/local/src
# cd /usr/local/src
# wget http://rtmpdump.mplayerhq.hu/download/rtmpdump-2.2e.tar.gz
# tar zxvf rtmpdump-2.2e.tar.gz
# cd rtmpdump-2.2e
# make
"Your OpenSSL is too old, need 0.9.8 or newer with SHA256"というエラーが出て怒られるので、自前でOpenSSLを導入する。
# openssl version
OpenSSL 0.9.8k 25 Mar 2009
今のバージョンは0.9.8kの模様。
■OpenSSL導入
# cd /usr/local/src
# wget http://www.openssl.org/source/openssl-0.9.8r.tar.gz
# tar zxvf openssl-0.9.8r.tar.gz
# cd openssl-0.9.8r
# CC=gcc ./config --prefix=/usr/local --openssldir=/usr/local/openssl
"You need Perl 5."というエラーが出るので下記サイトを参考にperlを導入する。
グチ多き日々の雑多なつぶやき | iphoneでperl インストール方法
CoreDev Cydia repository
# wget http://coredev.nl/cydia/coredev.pub
# apt-key add coredev.pub
# echo 'deb http://coredev.nl/cydia iphone main' > /etc/apt/sources.list.d/coredev.nl.list
# apt-get update
# apt-get install perl
この辺りになると容量不足で本体側でエラー通知が出始める。
# cd cd /usr/local/src/openssl-0.9.8r
# CC=gcc ./config --prefix=/usr/local --openssldir=/usr/local/openssl
# apt-get install vim
# vim Makefile
-arch i386 を削る
# make
"can't write to output file (No space left on device)"のエラーが出たので/usr/localを移動させてしまう。
# mkdir /private/var/ulocal
# cp -Rp /usr/local/* /private/var/ulocal/
# ls -l /private/var/ulocal/
# cd /
# rm -Rf /usr/local
# ln -s /private/var/ulocal/ /usr/local
# reboot
再起動後、先ほどの続き。
# make
# make test
エラーが出るけど気にしない
# make install
# openssl version
OpenSSL 0.9.8r 8 Feb 2011
バージョンが0.9.8rになった。
■rtmpdump導入再挑戦
# cd cd /usr/local/src/rtmpdump-2.2e/
# make
ld: library not found for -lz
ld: file not found: /usr/lib/libgcc_s_v6.1.dylib
ld: library not found for -lpthread
上記のようなエラーが出るので、コンパイル環境整備時に行ったのと同様の方法で、libにそれっぽいファイルを放り込みながらmakeを再実行。
最後にエラーが出ずに完了できたらインストールする。
# make install
■swftools導入
awkが必要なのでCydiaからGawkを導入。
どの他、幾つかのライブラリが足りないエラーが出るのでlib下に放り込むなどする。
古いバージョンなら導入できたのだが、swfextractでバイナリが扱える版になるとうまくいかなかった。
出回っているradika録音用スクリプトを利用し、認証用のpngをswftoolsを使わずにローカルに保存したものを利用する事で、swftoolsを利用しないでradikoが録音できる事は確認。
■ffmpeg導入
Cydiaから導入できるffmpegだと、バージョンが古いためHE-AACでvbrなファイルをデコードする際にエラーが出る。音質も悪いらしいので、ffmpegも自分で作ることにする。
が、touch単体ではどうやっても作成できなかったのでmacの力を借りた。
Xcodeやらmac portを導入してあれこれやって、gas-preprocessor.plを/usr/local/libとかに入れて、touchにlameを入れると生成されるファイルをいくつか引っ張ってくることで、touchで動作するffmpeg0.8.6ができました。rtmpdumpで保存したファイルをlame経由でmp3に変換できるところまで確認。