google tag

My Soundcloud Channel --- Testing :D

Thursday, April 26, 2007

今日のYouTube ダウンロードスクリプトの変造メモ

メモ----

以前こちらに書いたYouTubeデータダウンロードスクリプトはずーっと愛用しているのだが、最近ちょっと動作が変わった事に気がついた。

具体的には、旧スクリプトだとYouTube側のヘンテコなファイル名を引っ張った上にさらに指定したファイルを再度落としてしまう様になってしまった...

つまり同じファイルを二度、一つはYouTube側のファイル名、一つは同じものを指定したファイル名で....というムダな動き...なぜかしらないけど...

で探ってみると 中間のURL2 で ビデオデータそのものを引っ張ってしまうみたい、なのでスクリプトを変造して対処...

-----
youtube-custom.sh


#!/bin/sh
# $Id: youtube.sh 496 2006-06-05 23:37:35Z berto $
#if [ "$#" != "1" ]; then
# echo "YouTube Video Downloader"
# echo "Written by Alberto Garcia "
# echo "Homepage: http://people.igalia.com/berto/"
# echo
# echo "Usage:"
# echo " youtube.sh http://www.youtube.com/watch?v="
# echo " or"
# echo " youtube.sh "
# echo
# exit 64
#fi
VID=$(echo "$1"|sed "s/.*v=\([^&]*\).*/\1/")
URL1="http://www.youtube.com/watch?v=$VID"
echo -n "Getting $URL1 ..."
PARAM="$(wget -q -O - "$URL1"|grep watch_fullscreen|cut -d '&' -f 3)"
echo " done."
URL2="http://www.youtube.com/get_video?video_id=$VID&$PARAM"
echo -n "Getting $URL2 ..."
#URL3="$(wget -S "$URL2" 2>&1|sed -n /Location:/s/.*http:/http:/p)" #<---- old scheme echo " done." #echo "Video address is $URL3" #exec wget -O "$2.flv" "$URL3" #<---old scheme exec wget -O "$2.flv" "$URL2" #<---current scheme echo "done"



youtube.sh オリジナルからの変造箇所は
入力チェックを無視させて
URL2で直接ダウンロードさせる <---今回の変造点
youtube-custom URL filename
とURLと保存したい任意のファイル名を指定する
---
あいかわらずへっぽこ、だけど自分的に便利なスクリプト... これがないと TP600でYouTubeが見られない。TP600ではCPU的にFlashでの動画再生は無理なのだ....

---
追補

その後 YouTube の仕様変更があった様で、このスクリプトはもはや使えません....

Sunday, April 22, 2007

今日の mplayerの音ずれ解消のナゾ

ご注意:古い記事なのでもう当てはまらないかもです
---
オープンソースのメディアプレーヤーの王様 mplayerであるが, Debian Etch にも正式パッケージとして含まれる事となった。 それまではこちらの非公式なパッケージなどを使っていたりしたのだが、この mplayer、いつからか ファイルによっては強烈に音ずれを起こす事に気がついた。 以前自分でエンコしたmpg1ファイルや、そして特に最近YouTubeの爆発的人気によって身近になった、flvファイルで、とにかく酷い音ずれが起きる様になったのである。

あれこれやっているうちに MPlayer-1.0pre7 というバージョンを自分でコンパイルして出来上がるバイナリが 音ずれするmpgやflvにとって一番よい結果が得られた。 pre8ではダメ、なぜか pre7が良かった。
---
さて、 Debian Etch の mplayerは 1.0rc1 と比較的新しいのではあるが、試してみると残念ながら上記の音ずれについては同様に起こってしまう。 なので Etch環境で MPlayer-1.0pre7 をコンパイルして...と言う事になったのだが、TP600ではコンパイルがエラーで止まってしまった。 ああもうこのマシンで音ずれなしにYouTubeを見られなくなるのか...というのではちと残念なので googleさんに聞いてみる事にする。
だいたい、こんな大人気のソフトで、これまた大人気のYouTubeのflvが強烈に音ずれするなんて事が放置されているはずはない...きっと何かあるはずだ...と思ったのだが、こういう情報が得られた...

http://lists.mplayerhq.hu/pipermail/mplayer-users/2007-February/065635.html


むむ -correct-pts というオプションがあるのか...これは比較的新しいオプションらしく (1.0RC1から) 、Etchとそれ以前の manには未収録... 気がつかないはずだ...

早速

mplayer -correct-pts hoge.flv

とやってみると、音ずれが気にならない位に収まる!

---
さて、デスクトップ機で同じファイルを同じオプションで再生してみると... こちらでは音ずれが直らない...オプションが効かない。

同じバイナリパッケージ、同じ動画ファイル、同じ再生オプションでなんで差がでるのだろうか...
しばらく解らなかった、のだが、 mplayer起動のメッセージの音声コーデックの部分を見てみると、

音ずれするデスクトップ機の方は--

==========================================================================
Trying to force audio codec driver family libmad...
Opening audio decoder: [libmad] libmad mpeg audio decoder
AUDIO: 22050 Hz, 1 ch, s16le, 8.0 kbit/2.27% (ratio: 1000->44100)
Selected audio codec: [mad] afm: libmad (libMAD MPEG layer 1-2-3)
==========================================================================

音ずれしないTP600の方は --

==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
AUDIO: 22050 Hz, 2 ch, s16le, 8.0 kbit/1.13% (ratio: 1000->88200)
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================


と言う事で、再生時に自動でセレクトされる音声コーデックがなぜか異なっている...事に気がついた。
どうも libmadが使われてしまうと -correct-pts オプションが効かず音ずれが直らない様だ。
libmadではなく mp3libの方を選べば良さそうである。なので、試しに

mplayer -ac mp3 -correct-pts hoge.flv

と起動してやると mp3libが使われ -correct-pts オプションが効いて音ずれが直った!

---
どうしてデスクトップ機とTP600で違うのか...というと、デスクトップ機の方はsargeからupgradeして古い設定をそのま引き継いでいたのである。 古い configファイルにゃ、わざわざ afm=libmad って書かれてるよ、これか...

という事で 長らく使い込んで来た 設定ファイル /etc/mplayer と ~/.mplayer を消して dpkg-reconfigure mplayer して Debian Etch の デフォルトな設定に戻してやると libmad ではなく mp3libがセレクトされる様になった...
---
さて、 これまで 1.0pre7 自家コンパイルバイナリを /usr/local/bin/mplayer-custom とリネームして、音ずれするファイルやflv再生の時に使っていた。今回Etchの公式バイナリで -correct-pts オプションを使えばよい、と言う事になるわけだけれど、いちいちオプション付けるのも鬱陶しいというか、 manにも乗ってないオプションなんてすぐに忘れちゃう...から、これまでと同様の使い方...別コマンドで対策することにする。 .bashrcに

alias mplayer-custom='mplayer -correct-pts'

つまり mplayer-custom というエイリアスにしておく。これで自分的には、ずれの生じるファイルにはこれまでと全く同じ別コマンドで対応という事になる...

---
と言うことで、 mplayerの音ずれに困ったら -correct-pts を試してみると良いかも....

Wednesday, April 18, 2007

今日の Debian Etch on TP600 問題解決編

TP600に Debian Etch をインストールしたら USB動かず音もでずボロボロ
だったのだが、その後もしつこく調査... なにかが USB や音で使う IRQを勝手に占拠しちまってる...ので USBが使えずサウンドドライバーも読み込めないのではないか...?? という雰囲気が ... /proc/interrupts だの /proc/irq/以下 だのを見て感じられた.... acpi がらみ が目立つ!

なのでカーネルの起動オプションに acpi=off apm=on と acpiを使わず apm を使う設定にしてみた。apm はカーネルモジュールなので 起動時に確実の読む様 /etc/modules に apm と記述してみた。 さらに acpiがらみのパッケージを remove, /etc/rc2.d の acpi がらみのスクリプトを消去。 このカーネルオプションで起動すると....ビンゴ! USBの動作不良が解消した。 やれやれ。

さてサウンドの方は... snd-cs4232 だの snd-cs4236 をロードは失敗。と言う事で OSSの cs4232、これは sargeの時も使っていた奴なのだが、これをロードしてみた。

/etc/init.d/alsa unload
rmmod cs4232

で念の為サウンド関係をクリアしておいてから

modprobe cs4232

で...無事音が出た!

いちいち手動でロードはバカらしい、ので /init.d に cs4232load と言う適当な起動スクリプトをこんな風に

#!/bin/sh
/etc/init.d/alsa unload
rmmod cs4232
sleep 4
modprobe cs4232

適当に置いて、 rc2.d に S99cs4232load というリンクを貼って置く事にした...

これで mplayer で動画も見る事ができる。まだまだ現役だ...



と言う事で なんとか 元の 233MHz ビンテージなマルチメディアPCに戻れた...

---
alsaがなんでうまくロードできないのかよくわからない。 irqだのdmaだの明示的に示してみてもダメだった... alsaってやたらめったら自動でなんでもロードしよう、という節があってそれで余計なモノが入っちゃってダメ、なのかも? よくわからない。

あと、acpi =off の副作用なのか...よくわからんが、 apm=on にしてるのに shutdown 後 電源が自動で切れない....という問題が残ってしまった... ちょっとショボイが、音が出ないとかUSBが使えないよりはマシだという事で我慢.... ちなみにフレームバッファコンソール用のオプションを含めたカーネルオプションはこんな感じ...と言うことをメモしておく。

acpi=off apm=on vga=0x317 video=neofb:mtrr,ywrap

vga以下の オプションは sargeインストールの時の旧blogを自サイ検索で見つけて反映... vesafbを指定したら固まっちゃうので...調べたら TP600の場合は neofb だった... すっかり忘れていたよ....

Sunday, April 15, 2007

今日のDebian Etch on TP600 惨敗編

メインマシンをなんとか Debian etchにupgradeしてみたわけだが、年に数回帰省の時にしか使わなくなった、今年で9年になろうかとする ThinkPad600 もこの際 etchに upgradeしてみる事にした... upgradeはこれで3台目だから手慣れたもの...とはならず、やはり依存性でグルグル遠回りをしてしまった... upgradeって楽じゃないんだねやはり...

色々変な事が....gdmがマトモに走らないとか...入れ直したら走ったけど、なんか変...

USBマウスの動きが変。 PS/2マウスだとスムーズなのに。USBポートが変。マウス外して入れ直すと認識しない。USBメモリーも認識せず。なんだかおかしい。upgrade前のsargeではそんな事はなかったのに...

---
と言う事で思い切って再インストールをしてみた。upgradeは一見うまく行ったかに見えて実はsargeの残骸が悪さをしているのかも...なんて根拠のない理由で...

クリーンインストール、これはこれで時間がかかるが...Xの設定も簡略化され過ぎて xorg.conf手動編集せにゃ動かん始末。 TP600は 16bppなのにデフォルトが24bppになってるとか...

で、USBポートはやはり変だ。マウスは起動時に接続していると、それは認識はするけれど動作が変でまともに使えいない。 挿し直すとそこで終ってしまう... 再認識しない。USBメモリーも同じ。USB関係が動作してない模様...

音を出してみようと... sargeの時はalsaではダメだったので cs4232ってossドライバーで使ってたんだけど... etchではだめだ...と言う事で alsaの snd_cs4232...同様にロードせず。 alsaconfでデバイスの検出は出来てる、けれどもドライバーロードでコケる。 TP600のサウンドデバイスは起動してから一度 アンロードしてから再ロードする、という事が必要なはずなのでやってみた...けどなんか変だ...ロードしない.... ossの sndconfigは... これもあらへんがな...

PCMCIAはちゃんと動いてネットにも繋がる。抜きさしも大丈夫そう。


USBがダメ、音も出ない...
こりゃ使えんではないか.....orz

久々にはまってしまった... 徹夜まがいになって、一昼夜色々いじってみたけどわけわからん... 過去にTP600には色々入れていたのだがここまでダメなのは久しぶりの経験。 sargeのまま置いておけばよかった... うまく動いているものを弄っちゃだめって事なんだろうけど...

一昼夜弄ってなんにも解決できない タコ...
Linux弄ってそろそろ9年も経つんだけど、何にも成長してないって事なんだな...

Friday, April 13, 2007

今日の Debian Sarge => Etch アップグレード

4/8に Debian GNU/Linux 4.0 "Etch" がリリースされた、ので早速 upgradeしてみた。Sargeはたしか 2005年6月頃のリリース だったから Version up に約2年かかった事になる。Debian の安定版 のメジャーアップグレード期間はLinuxとしてはとても長い、のであるが、逆にマシンや使用目的が枯れていて特に最新を追い求める必要がない場合は居心地がよい、という事にもなる。新バージョンは待たされる、事になるのだが、その間公式パッケージについてはセキュリティーupdateはきちんと行われるので安心でもある。 リリースが遅い、と言っても、 NT3.5 => 4.0 とか 4.0 => W2K, XP => Vista なんかよりはよほど短い期間なのだから文句を言う程でもなかろう、と思う。文句のある人はstableではなく testingなり unstableなりの新しいものを使えばよいのだし。

さて upgradeだが、 Debianは aptと呼ばれる優秀なパッケージ管理システムがあり、メジャーアップグレードを行う場合でも再インストールは無用でパッケージ間の依存性が保たれ、かつマシンを止める必要がなく(あるとすればカーネルのバージョンアップ後のリブートだけ) .... という事が言われている。

言われているのだが、実は 2年前の Woody => Sarge の時に、事もあろうに会社の仕事用PCでその upgrade に失敗してしまってクリーンインストールせざるを得ない事になった。リリースノート通り慎重に作業したつもりだが、 backport を無闇に入れていた為か、依存性がこんがらがって 半端な状態になって、焦ってあれこれ removeなど しているうちに なにか大事なものを無理に removeしてしまったのか、aptそのものまでがうまく動かなくなってしまったのだ。それに懲りて自宅マシンはHDD入れ換えも兼ねてクリーンインストール。 さらにWoody => Sarge は色々変化が多くてあれこれ調整や工夫が必要だったり...と、結構大変だった、と言う経験がある。 なので今回はしばらく様子をみてようか、とも思ったがしかし、どうせいずれは upgradeしなければならないんだし、と今回も仕事用PCからえいやっ!と upgrade してみた。
---
Sargeからのupgradeは、ちゃんとリリースノートの説明通り行わないと酷い事になるらしい、ので慎重に... やったつもりだったが、やはり依存性がこんがらがって.... 危ない感じがした... backportなど非公式版はそれ程入れてなかったつもりなんだけれど...

だが今回はあれこれ抜き差ししてるうちになんとか upgradeが完了する事が出来た。 XFree86 が xorgというのに変更になる、のだけれどこれが、何かが引っかかって入らなくて焦った。 なんで Xが立ち上がらないのかな、と思ったら入ってないんだものなぁ...

あと リリースノートの通りaptitude を使ってたんだけど、ひっかかるパッケージを抜いたり入れ直したり、と言う時に apt-get を使うと... そこで入れたパッケージが次に aptitude実行すると無用だと判断されてごっそり抜かれちゃうとか...要するに aptitudeと apt-getは混用するのは良くない、要注意である、と言う事を知らずに随分はまった。 どうも apt-getの手癖が抜けない、ので、結局 upgrade後も apt-getを使ってしまうのだが、そういう場合は 逆にaptitudeは使わない方がよい(使っても良いけど、色々勝手にアンインストールされてしまったりする)。 手癖が付いていない人なら、ずーっと aptitudeだけ使えばよい、という事なのかな。

何れにしても、再インストール無用とは言え随分時間がかかってしまった。大量のパッケージをダウンロードして展開してシステムを入れ換えるという物理的な時間に加えて依存性トラブル解決の為の試行錯誤で... 4,5時間はかかってしまった... いっそ再インストールの方が早いのではないかな...と思ってしまう程...だけれども、再インストールの場合はあれこれ築いて来たアプリケーション毎の細かい設定など引き継げなかったりして、その後の調整にかなりの時間をさかれる事になるのは Woody => Sarge事に経験済みなので、 総合的に見て、マシンを使い込んでいればいる程 upgrade は結局楽なのだな、という事は言えると思う。

---
で入れ替わってしまえば、なんの事はない、見た目はSargeと何もかわらない...のは KDEもGnomeもつかわず Enlightenment を元の通り使ってるからである。 Etchは localeは日本語の場合 ja_JP.UTF-8 が標準? になるらしいが、 それも変えずに C のまま、日本語読み書きの必要性に応じて アプリ毎に適宜 LANG=ja_JP.eucJP などで起動して 。見た目、メニューをふくめて極力英語版のまま日本語読み書きOK と言う 変則的な使い方...を継承する事にした。Sargeの設定時には苦労したけど、それをそのまま引き継げた。

---
Firefoxはやーっと 2.0が入った、が Mozilla.org と Debianのポリシーが合わないので Firefoxを名乗るべからずというクレームが入ったそうで iceweasel と改名されている。mozillaにいたっては iceape という名前が付けられている。

これまで公式版のなかった mplayerが公式パッケージに入って来た。 これは嬉しい...が 非公式版同様 YouTubeの flv 、過去にエンコした 一部のmpg 再生 などで 思いっきり音がずれるという... ソースが悪いのかコンパイルが悪いのかエンコードが悪いのかはわからないが同じ症状は引き継いでいる。それ以外はよさそう...なのだが、結局 音ズレに関してこれまで一番良い結果が得られたの MPlayer-1.0pre7 を コンパイルして 公式パッケージとは別に /usr/local/bin/mplayer-custom などと別コマンドとして使える様にしておいた。( Sargeでコンパイルした mplayerは 動かなかった..)

totem, gxine, ogle, vlc など メディアプレーヤーは一通り揃っているので、 mplayerで具合の悪いファイルは他のソフトで再生するのも手、である。エンコの具合にもよるのだろうけど、 mplayerで乱れる、ずれる、止まるファイルが totemその他ではちゃんと動く、とか、その逆とか、いろんな場合があるから選択肢は多い方がよいのだ。 ( flvだけは今のところ MPlayer-1.0pre7 の自家コンパイル版が一番調子がよいけれど ... totemだとflvは音が出ないとか vlcだとflvのファイルによっては途中で止まるとか...)

そうそう、今年始めに買った SoundBlaster Audigy Value というサウンドカード、 Sargeの純正カーネル + ALSA ではドライバーなしで認識せず、だったけれど、 Etchに変わると alsaconfで一発認識でちゃんと音も出た。 gamix で見るとこんな感じで、ちゃんとコントロール出来る。




---
非公式パッケージだが Operaで配ってる Opera9.10 は起動せず、9.20のベータもだめ... 9.20の最新ベータを試したらバグが取れてた...と思ったら公式9.20 リリースで、これも問題なし。

Sargeの時拾った xephemの非公式 debパッケージはインストールできず... 最近星みないからいいけど、また探すか...

なんて非公式を入れると結局次回の upgradeで困る...けど、このマシンもうすぐ5年を越すから次回はないかもなぁ...

---
なんか何の参考にも、誰の為にもならない駄文になってしまったが、終ってみれば時間はかかったけど、細かい調整等は特記する程の事はなかった、と言う事ですな...
ま、 KDEもGNOMEも入れてはいるけど使っていない、質素な環境ではそんなものだろう。