« 特定の環境で強制終了する不具合を修正した「Firefox」v8.0.1が公開 | Main | レノボから5型タブレット LePad S2005 »

›11 25, 2011

iPod touchでradikoを録音するのに試したこと色々

[ PC Tips ]

思ったより苦戦したので記録。結論としては録音ができ、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に変換できるところまで確認。


Posted by kroko 0 Comments: / 0 TrackBack
Comments
Post a comment












Remember personal info?