自宅サーバを仮想化しよう4-I/O高速化編・RDM

Posted on 2013/12/03 (火) 0:52
Filed Under 技術, 日記 | Leave a Comment | TrackBack | ̃Gg͂ĂȃubN}[Nɒlj Share on Tumblr

引き続きストレージ編。

【失敗】RAIDカードを足す
LSI Logic MegaRAID SAS 8308ELPとゆーRAIDカードをヤフオクで買った。
2007年のカードで当時は10万円前後した。
まずLSI公式から最新ESXiドライバを取ってきてインストーラisoをリビルド。
結論から言うとインストーラがエラーを出して失敗する。


どうもSASドライブを接続しているときは動作するのだがSATAドライブだと互換性が無いよう。
VMware Compatibility Guide: I/O Device Search
VMware Compatibility Guide: I/O Device Search

【失敗】ASM1061 SATAカードをRDM(Raw Device Mapping)
前回買ったASM1061搭載SATAカードをRDMしようとしたら、ESXiにASM1061ドライバがないようでそもそも認識してなかった。

【失敗】オンボードSATAのport1を起動ディスクに、port2,3をRDMでVM(FreeNAS)へ
ナゾなことにFreeNASだと、RDM先のドライブがまともに操作できない。
vmkfstools -zで作ったドライブだと2台とも全く操作可能。
vmkfstools -rで作ると片一方のポートの操作ができるがもう片一方がnot permitted的エラーになってしまいやはり操作ができない。
かなりナゾ。
そのままの構成で次項のようにVMだけ変更する。

【成功】オンボードSATAのport1を起動ディスクに、port2,3をRDMでVM(openindiana)へ
困ったときのSolaris。すべて期待通り動作したので、vmkfstools -zでドライブ作り直し、ミラーリング構成でZFSボリュームを作りCOMSTARでiSCSI Targetを作成し、ESXiに登録し、データストアとしてマウント。
そこにWindows8.1 64bit Enterprise評価版のVMを作り再びベンチマーク。
ZFS iSCSI ZIL

ちょっと期待よりもWriteが遅い。

試験的にZIL(ZFS Intent LOG)をオフにして再測定。電源喪失時にファイルシステムをぶっ壊す可能性があるのでSunはZILを止めるなと言っているからあくまで試験的に。zfs set sync=disabled [volume]で即時停止できる。

ZFS iSCSI noZIL

こんくらい常時出てればまあまあですなー。

【改良】ZILドライブとしてSSDを足す
というわけで、さらなる高速化を目指してZFSストレージプールにZIL用SSDを足してハイブリッドストレージプール化して高速化を図る。
とりあえず容量は少なくていいんでこれを買った。
ZILとして必要な容量はメインメモリの半分が目安。データ保持期間は短くていいが高い信頼性と高速な速度が要求される。mirror構成も取れるがまあ今回はそこまではしない。
L2ARCドライブは速ければ信頼性はどうでもいいが容量は多い方がいい。

シリコンパワー 【SSD】SATA3準拠6Gb/s 2.5インチ 7mm 60GB MLCチップ使用 SP060GBSS3S55S25
シリコンパワー 【SSD】SATA3準拠6Gb/s 2.5インチ 7mm 60GB MLCチップ使用 SP060GBSS3S55S25

発売:シリコンパワー
発売日:
定価:オープンプライス
ASIN:B00CBNZRMA


参考にSSD単体の速度を計る。
SP060GBSS3S55S25

というわけで、待望のハイブリッドストレージプールの速度。
ZFS iSCSI ZIL HybridStragePool

だいぶよくはなったけど、まだ遅え…
ZILをミラー構成にすればもう少し速度稼げようかね?

参考値としてハイブリッドストレージプールでZILを停止するとこんな結果。
ZFS iSCSI noZIL HybridStragePool

理屈通りZILを止めるとハイブリッドストレージプールでも速度差ありませんな。

【結論】
とゆーわけで、結果的にこのような構成になった。
2TB HDD : RAID計画で起動ディスク(ミラーリング)
2TB HDD : RAID計画で起動ディスク(ミラーリング)
3TB WD RED : openindianaにRDMしてストレージプール(ミラーリング)
3TB WD RED : openindianaにRDMしてストレージプール(ミラーリング)
60GB SSD : openindianaにRDMしてZIL

問題は、電源喪失などで異常終了したときに、起動がめんどくさいこと。
マシンを起動してESXiがRAID計画ボリュームに作られたデータストアを見つけたら、openindianaを起動して、iSCSIボリュームをESXiに認識させて、その他のVMを起動しなければならない。
(あとNASは素のopenindianaを使うのではなくラクチンにFreeNASとか使いたかったなー、的なことも)

今後の展開的にさらに速度を出す場合には、やはりストレージプールの構成ドライブを増やすことと、ZILドライブをミラー化すること、L2ARCドライブをSSDで足すこと、あたりかなー、と思える。

ウチの今後の構成としては、NAS領域ディスクとしてhp MicroServer (旧機種)でFreeNASをUSB起動でiSCSI TargerにしてVMのopenindianaでマウントする、構成で容量拡張をしていきたいと思う所存。
容量が足んなくなったらhp MicroServer (旧機種)を在庫がある限り増やし続ける方針で。Gen8も早く値段下がらんか。

あと、そもそも論として、現代だと一般公開用サーバなんかはVPSサービス使ったほうが総合的にメリット多そうですよ!
自宅サーバはあくまで、LAN内の速度がほしいところで大容量なディスクが欲しかったりとかそういう用途に使う感じで。

参考リンク
ジグソー | 家庭内zfsストレージ兼VDIサーバを構築してみる。 - ウエスタンデジタルジャパン WD Red
ESXi5におけるRaw Device Mappingのやりかたについて - k32ru’s blog
0.はじめに - OpenIndianaでZFSなiSCSIを構築するまでの道のり

短期連載一覧
自宅サーバを仮想化しよう1-立志篇
自宅サーバを仮想化しよう2-ディスク編
自宅サーバを仮想化しよう3-I/O高速化編・パススルー失敗

自宅サーバを仮想化しよう3-I/O高速化編・パススルー失敗

Posted on 2013/11/25 (月) 1:47
Filed Under 技術, 日記 | Leave a Comment | TrackBack | ̃Gg͂ĂȃubN}[Nɒlj Share on Tumblr

前回「ディスク編」の続き。
高いRAIDカードを買うという解決方法はひとまず考えずにIOを高速化する方法を考える。
ESXiの上のVMにSATAをパススルーしてZFSでミラーしてiSCSIでESXiのデータストアにする、というアイデアを思いついた。
めんどくさいので絵とかはない。

というわけでさっそく実験。なかなかうまく行かない。

【失敗】Sil3132 SATAカードを挿してそこを起動ディスクに、オンボードSATAをパススルー
起動ディスクはなんでもいいので余ってたSil3132のPCIeカードを挿してテスト。
まずSil3132カードが認識されない。
原因はPCIe Gen1をAutoだと認識に失敗していたため。
参考リンク:「NEC Express S70/タイプhfで認識しないSiI3132チップ搭載eSATAカードの問題(解決) - tuedaの日記
ようやくSil3132が認識されてESXiインストールして起動してきたので、オンボードのLynx Point AHCI Controllerをパススルーしようとしたらパススルー選択肢に出てこない。
さっと調べてみると全世界的にHaswell SATAはパススルーできてないようなので諦めて次へ。

【失敗】Sil3132 SATAカードを挿してそこをパススルー、オンボードSATAを起動ディスクに、逆にSATAカードの方をパススルーに。
なぜかパススルー設定して再起動しても設定を忘れる現象と、SATAポートが起動タイミングによって見えたり見えなかったり、ESXiメンテナンス用NICの設定がしょっちゅう変わってしまうというナゾの現象に遭遇、まったく安定しなかったんでこれもまた諦めて次へ。

【失敗】ASM1061 SATAカードをパススルー
ESXi5.1でeSATAカード(ASM1061)をパスするーしてFreeNASから使ってみる - tuedaの日記」という記事を見つけたので早速ASM1061カードを買ってみた。

エアリア TWIN TURBO HYBRID TYPEB PCI Express x1 接続 Asmediaチップ搭載 SATA3 eSATA2ポート 内部SATA2ポート ジャンパー切替 最大同時使用可能2ポート SD-PESA3ES2L



パススルー設定してカードはPCIデバイスとして見えているのだけど初期化に失敗した系ログで接続したディスクが見えずVM側から利用ではない。ドライバのあるopenindiana,FreeNAS(FreeBSD),CentOSのいずれのVMからも同じ症状。
物理マシンとして起動するとドライブ見えるのでもうESXi5.5のバグということにして諦め。

次回RDM(Raw Device Mapping)編に続く!

自宅サーバを仮想化しよう2-ディスク編

Posted on 2013/11/12 (火) 12:52
Filed Under 技術, 日記 | 1 Comment | TrackBack | ̃Gg͂ĂȃubN}[Nɒlj Share on Tumblr

前回の続き。
ハードウェアを組み上げて、仮想化ハイパーバイザはVMWare ESXi 5.5(無料)を選定してダウンロードした。

まず、ダウンロードしたてのESXiインストーラisoで起動すると、SuperMicro X10SLM+-LN4F オンボードNIC intel 210ATを認識しない。これが第1のつまづき。
VMWare公式ドライバ、「ESXi 5.x driver package includes version 4.2.16.3 of the Intel igb driver」を「VMware Front Experience: ESXi-Customizer」で入れて、isoをビルドし直す。

ESXiインストーラを起動して、起動ディスクはオンボードのintel RST RAID1でミラーリングでもしておけばいいかな、と気楽に考えていたらこれが第2のつまづき。VMWare ESXi 5.5はRSTのRAIDを認識しない。

仕方ないので安いハードウェアミラーリングカードRAID計画壱号機改を買い足した。 台湾IOI Technology の「RAID Controller | eSATA & USB 3.0 to Quad SATA II RAID Bridge Board | ESU3-QS201-R5」のOEMっぽい。

RAID計画壱号機改
RAID計画壱号機改

発売:CMインダストリー
発売日:
定価:オープンプライス
ASIN:B0067G1Y92


このカードが非常に使い方が難解なのでざっくり使い方を書いておくと、モードを切り替える(ディスクは初期化される)ときには
1.ロータリースイッチをPMに合わせて通電しながらCHANGE MODEボタンを数秒押す
2.ロータリースイッチを目的のモードに合わせて通電しながらCHANGE MODEボタンを数秒押す
を1から実行する必要がある。

そして、よく見ると、Faultしたときに、どのドライブを交換すればいいのかわからない。
そこで秋葉原の千石電商で50円のコネクタ付きケーブル4本と15円のLED4つを書い足し。

試しにこんなかんじに接続してテスト。動いたらショートしないように足を切って短くするか、熱収縮チューブあたりで絶縁すると良いかもしれない。

これで起動ディスクが冗長化されたんで、ESXiを入れて、VMを作ってWindows8 Enterprise 64bit評価版を入れて、まずディスクのベンチマークをしてみた。

これはちょっと実用にならないくらい遅い。

念のためRAID計画壱号機改を外してHDDを直結してみてもやっぱり遅い。

しかも、RAID計画壱号機改は起動時に認識しないことが度々あって解決方法が全くわからない。
起動できない時には何度か再起動してればいつかESXiが起動してくるのだけど、なぜか同じディスク内に作ったデータストアが見えなかったりする。そんな時も何度か再起動しているとたまに見えるようになる。なんなのだ。

というわけで、I/Oを高速化するための長い戦いが始まったのである。

次回に続く!

自宅サーバを仮想化しよう1-立志篇

Posted on 2013/11/10 (日) 22:59
Filed Under 技術, 日記 | Leave a Comment | TrackBack | ̃Gg͂ĂȃubN}[Nɒlj Share on Tumblr

(CV:田口トモロヲ)
自宅サーバ。
生活とともに台数は増え、増える傍から老朽化が進み、誰もが管理に頭を悩ませてきた。古いサーバは性能も出ずに電力効率は悪く場所を取る。
仮想化しての集約が求められた。
高いパフォーマンス、堅牢な信頼性、低廉なコスト、相反する厳しい水準が要求された。
これは仮想化を目指しながら一筋縄では行かなかった苦難の記録である。
-BGM:中島みゆき:「地上の星」(YouTubeで地上の星 / 中島みゆき [公式] を視聴)

とおもったけど文が続かなかったんで、まず設計方針として、こんな感じにした。
・録画機以外のNASを含めた主要サーバ類を集約化する。
・新NASはストレージをhp microserver的なものでiSCSI TargetとしてNAS本体でまとめてストレージプールとする。
・家庭用なのでコストが大事。
・信頼性とパフォーマンスも大事。→メンテで止めてもいいがデータは失われないように。

ということで予算を考慮して主要パーツの選定から始める。

マザーボードはリモートからの管理のためIPMIが欲しかったので選択肢が割と少なく、定番のSuperMicroからHaswell Xeon シングルソケット(UP LGA1150)、4NICのX10SLM+-LN4Fを選択。

SuperMicro MBD-X10SLM+-LN4F-O Xeon E3-1200 v3対応 UPサーバーボード X10 日本正規代理店品 MB2026 MBD-X10SLM+-LN4F-O


CPUはHaswell世代の4C/8T Intel Xeon E3-1230v3 3.3GHzあたり。
(Amazonになかった)→価格.com Xeon E3-1230 v3 BOX

CPUクーラーは空冷に比べて静かかなー?と思ってメンテナンスフリーの水冷キットCoolerMaster Seidon 120M

Cooler Master 【HASWELL対応】 CPUクーラー RL-S12M-24PK-J1
Cooler Master 【HASWELL対応】 CPUクーラー RL-S12M-24PK-J1

発売:CoolerMaster
発売日:
定価:オープンプライス
ASIN:B00AOEWCWG


ケースは静音そうだったCoolerMaster Silencio 550

CoolerMaster Silencio 550 ATX /MicroATX ミドルタワー静音タイプ 型番:RC-550-KKN1-JP
CoolerMaster Silencio 550 ATX /MicroATX ミドルタワー静音タイプ 型番:RC-550-KKN1-JP

発売:Coolermaster
発売日:2011-07-15
定価:¥ 11,979
ASIN:B004WPBD96


ハードディスクはNAS用で24時間通電でも寿命が長いという触れ込みのWestern Digital WD RED 3TBを2台。

WD Red 3.5inch IntelliPower 3.0TB 64MBキャッシュ SATA3.0 WD30EFRX
WD Red 3.5inch IntelliPower 3.0TB 64MBキャッシュ SATA3.0 WD30EFRX

発売:WESTERNDIGITAL
発売日:
定価:オープンプライス
ASIN:B008P56QEQ


ディスク交換をラクチンにするためにホットスワップ対応ケースをなんでもいいんだけど今回はSilver Stone FP57を選択した。

Silverstone 5インチベイ用 ホットスワップユニット SST-FP57B
Silverstone 5インチベイ用 ホットスワップユニット SST-FP57B

発売:Silver Stone
発売日:2011-09-02
定価:¥ 2,480
ASIN:B005J2WQ3I


メモリはECCで32GBでマザボに載るならなんでもいい。

SanMax サーバー/ワークステーション用メモリ Micron DRAM/サーマルセンサ搭載 DDR3-1600(PC3-12800) U-DIMM ECC対応 CL11 32GB(8GB x 4枚)セット 1.5volt JEDEC準拠 SMD-32G28ECP-16K-Q


電源も500W位でなんでもいいんだけど今回はENERMAX PLATIMAX500Wを選択した。

ENERMAX【HASWELL対応】PC電源 PLATIMAX500W EPM500AWT
ENERMAX【HASWELL対応】PC電源 PLATIMAX500W EPM500AWT

発売:ENERMAX
発売日:2011-12-03
定価:オープンプライス
ASIN:B005ZXUARU


次回へ続く!

foltiaで全自動CMカットを実現しよう

Posted on 2013/10/15 (火) 3:46
Filed Under foltia | 1 Comment | TrackBack | ̃Gg͂ĂȃubN}[Nɒlj Share on Tumblr

民生機ではわりと一般的になってるCMカットを実装したくて色々調べていたら、2ちゃんねるのCMカットスレで良さそうな情報を見つけた。

536 :名無しさん@編集中:2013/10/05(土) 22:23:02.74 ID:iNl1yeOz
comskip81_056を一日弄っていたけど、CMスキップ楽勝だね、アニメじゃなくても。
先人に感謝。
detect_method=255、min_show_segment_length=125、punish=28
.vdr(output_vdr=1)で出力すると加工は楽です。
自分はバッチでchapters.txtにしてから、空橋さんの「gen_.chapters.txt_to_.chapter(チャプタースキップ用)b.bat」を通してTVTplayで見ている。
Avisynth要りません。まあcomskipはtrimコマンド出力できるので入用な人は大丈夫ですね。

http://toro.2ch.net/test/read.cgi/avi/1140501201/536n

ほほうと思って試してみたところとりあえず動いたのでメモ代わりにここに書いておく。

試した環境:CentOS6.4/64bit,ffmpeg1.2.5,comsip81_0.56(comskip.org)、comskip.iniに536さんの設定を書いた。

手順1:TSからCM検出する。

wine /home/foltia/comskip81_056/comskip.exe -t -d 255 -v 2 --zpcut --zpchapter --videoredo --csvout --quality --plist --ini=comskip.ini ./3027-12-20130924-0135.m2t

#必要ない形式のカットファイルも吐いてるんで、そのうち見直す。

手順2:検出された本編部分を切り出す。

ffmpeg -y -i ./3027-12-20130924-0135.m2t -c copy -ss 00:01:02.56 -t 00:00:36.72 -sn ./3027-12-20130924-0135_0001.ts
ffmpeg -y -i ./3027-12-20130924-0135.m2t -c copy -ss 00:02:39.46 -t 00:11:02.63 -sn ./3027-12-20130924-0135_0002.ts
ffmpeg -y -i ./3027-12-20130924-0135.m2t -c copy -ss 00:15:12.88 -t 00:12:46.87 -sn ./3027-12-20130924-0135_0003.ts

ffmpegが理解できるタイムスタンプの形式がcomskipで吐いてくるのとは若干異なるのでいまんところちょっとした計算が必要になる。

手順3:切り出した本編をくっつける。

ffmpeg -i "concat:3027-12-20130924-0135_0001.ts|3027-12-20130924-0135_0002.ts|3027-12-20130924-0135_0003.ts" -c copy 3027-12-20130924-0135-CUT.ts

concatオプションが使えるようになったのがffmpeg1.1以降らしいのでそれ以降のもので。

上のサンプルで作ったのをDLNA経由でPS3で再生したのがこの画面。30分アニメの尺が24:26に短くなってるのがわかる。
foltia CMカット

ffmpegはGOP関係なく指定したタイムスタンプでぶった切っているようなんで、そのへんは今後の課題の予定。mencoderはスマートなんとかで切れる説も。

TSをCMカットせずに、MP4にチャプタを入れたい場合は、ググればMP4Boxでチャプタを追加するようなやり方が見つかりそうなんでその辺を参考に。

おまけ
当初、mencoderにedl読ませてカットしようとしたらなぜか途中までしか処理されなかった。avidemuxでカット編集しようとしたらクラッシュして正常動作しなかった。mplexもSegmentation Faltを起こして期待通り動作しなかった、mkvmergeは複数のmkvを連結するような機能はなかった、などいろいろ試して上の結果となった。

CentOS5からCentOS6へLVMを持って行ったら認識しなくなった時の解決方法

Posted on 2013/10/11 (金) 17:27
Filed Under 技術 | Leave a Comment | TrackBack | ̃Gg͂ĂȃubN}[Nɒlj Share on Tumblr

CentOS5で使っていたマシンのOSをCentOS6に入れ替えようとして、CentOS6で起動したらいままで動作していたLVMが認識されなくなった。
構成は次の6台
2TB(起動ディスク)
3TB
2TB
2TB
2TB
3TB

CentOS6で起動するとこんな状態になっていて、PVが2本見つからないと言い出し3TBドライブがunknown deviceになっていた。

#内容のコピペがなくスクショしかなかったのでこれで。

結論から言うと、CentOS5上では動いていた、3TBディスクの上にGPTパーティションテーブルで1パーテーションをつくり作成したPV(作成例:pvcreate /dev/sdf1)がCentOS6では認識されていなかった。
ので、CentOS5上でpvmoveを駆使して、3TBドライブをドライブ全体をPV作成例:pvcreate /dev/sdf)にする構成に作り直したところ、無事にCentOS6上でも全PVが認識され、VG,LVもそのまま認識された。めでたしめでたし。

参考:「4.2. 物理ボリュームの管理 - Red Hat Customer Portal

ところで、CentOS6.3/RHEL6.3からLVMが冗長構成を取れるようになっていたのを初めて知った。そのうち検証する予定。
4.4.15. RAID 論理ボリューム - Red Hat Customer Portal

foltiaでのしょぼカルスケジュールをEPGデータを利用して検証しよう(1)

Posted on 2013/08/06 (火) 2:32
Filed Under foltia | Leave a Comment | TrackBack | ̃Gg͂ĂȃubN}[Nɒlj Share on Tumblr

foltiaはしょぼいカレンダーからアニメのスケジュールを取得している。
すごい便利なしょぼカルだけどデータの更新が人力なため、いつ終わるのかわからないスポーツ延長の時などにたまーにスケジュールの更新が追いつかないことがある。
とゆーわけで、EPGデータをもとにしょぼカルスケジュールを確認してみる方法を考えてみた。

1.録画予定のチャンネルで開始時刻と終了時刻がしょぼカルスケジュールとEPGデータとで等しい
2.番組名が等しい
→放送スケジュールは正しい。

しかし、EPG番組表の表記はかなりゆらぎがあるんで、しょぼカルに登録されているタイトルと同一番組でも一致することは少ない。

例えばこんなかんじに。(上:しょぼカル 下:EPGタイトル)

超次元ゲイム ネプテューヌ THE ANIMATION
超次元ゲイム ネプテューヌ #5

すすめ!キッチン戦隊クックルン
すすめ!キッチン戦隊クックルン「うどん怪人にあったか〜いプレゼント」

黒魔女さんが通る!!
大!天才てれびくん ▽難関ダンスで真剣勝負 ▽魔女 ▽ワル

なので、String::Trigramを利用して類似度のスコアを判定することにする。
十分スコアが高ければ番組名が正しいとする。

1.2.どちらかが偽であったら、しばらく先のEPGデータを調べて、しょぼカルスケジュールのタイトルと比較して最も類似度の高い番組名を探って、そこに移動したと判定する。

という方針でテストプログラムを実装してみた。

条件1.2が完全に一致した例。

1:3021:きんいろモザイク:きんいろモザイク:201308060030:19
chk_pid_broadcast_schedule() EPG Frame mutch.きんいろモザイク,きんいろモザイク
chk_pid_broadcast_schedule() EPG Frame mutch.1
chk_pid_broadcast_schedule() 1 is hight ,may be not moved

条件1が満たされ、条件2でのスコアが高かった例。

1:2976:すすめ!キッチン戦隊クックルン:すすめ!キッチン戦隊クックルン「うどん怪人にあったか〜いプレゼント」:201308060645:2
chk_pid_broadcast_schedule() EPG Frame mutch.すすめ!キッチン戦隊クックルン,すすめ!キッチン戦隊クックルン「うどん怪人にあったか〜いプレゼント」
chk_pid_broadcast_schedule() EPG Frame mutch.0.36697247706422
chk_pid_broadcast_schedule() 0.36697247706422 is hight ,may be not moved

条件1は満たしたけど、条件2で類似度スコアが低かったんで他に移動してないか調べに行った例。

1:2479:黒魔女さんが通る!!:大!天才てれびくん ▽納涼&爆笑!お化け屋敷でQ ▽魔女:201308071820:2
chk_pid_broadcast_schedule() EPG Frame mutch.黒魔女さんが通る!!,大!天才てれびくん ▽納涼&爆笑!お化け屋敷でQ ▽魔女
chk_pid_broadcast_schedule() EPG Frame mutch.0.0625
chk_pid_broadcast_schedule() Score : 0.0625.
大!天才てれびくん ▽納涼&爆笑!お化け屋敷でQ ▽魔女:201308071820
テクネ 映像の教室「スペシャルⅡ」:201308071855
ビクトリアス(43)「おかしな1日」:201308071925
リトル・チャロ4(日本語版)「Ep18 ふたつのソーセージ」:201308071950
まいにちスクスク ジュニア“ゲームとのつきあい方”(3)▽暴力的にならない?:201308071955
ハートネットTV リハビリ・介護を生きる「リハビリを楽しく」(2):201308072000
きょうの健康 正しく向き合う 認知症「周囲と一緒に 生活を維持」:201308072030
NHK手話ニュース845:201308072045
きょうの料理 旬を味わう「簡単下ごしらえ かぼちゃのスピードレシピ」:201308072100
きょうの料理ビギナーズ「使ってみよう!ビーフン大活躍」:201308072125
Max score:0.0625
Return value:201308071820
chk_pid_broadcast_schedule() May be NOT moves.

手元だと、延長等で移動してる例が見つかんなかったんでその場合の判定がまだまともに動くかわからないところ。

foltiaで録音したradikoのAACとMP4の音質が違う?

Posted on 2013/06/27 (木) 0:37
Filed Under foltia | Leave a Comment | TrackBack | ̃Gg͂ĂȃubN}[Nɒlj Share on Tumblr

foltiaで録音したradiko.jpの番組をiPhoneで聞いていたら、AACとMP4版の音質が違うように聞こえたんで検証してみた。
結論から言うとiOSとQuickTimeではAACとそこから作成したMP4ではMP4版は音質が劣化して再生されている。しかしQuickTimeとMP4Boxの表示は一致しているので原因はffmpegがMP4コンテナのヘッダ情報とかなのか設定間違っている感も。現象はわかるが原因不明。

以下簡単な検証。
環境はiOS6.1.4,MacOSX 10.8.1,QuickTime Player 10.2,VLC2.0.7,CentOS6.4,ffmpeg 0.8.6世代など。

まずradiko.jpを録音してflv→aac→mp4と変換していったファイル。
録音はいつもの「簡易Radiko録音ツール。要swftools/rtmpdump/libxml/wget/ffmpeg/lame」。

まずaacファイルのQuickTimePlayerでの認識。

次にaacファイルから作成したmp4のQuickTimePlayerでの認識。

ffmpegの-acodec copyでmp4コンテナに入れてるだけなのに表示も聴感上も異なっていてフシギですね?

同じファイルをVLCで開いてみたところ。


差はないようだし、聞き分けも出来ないレベル。

MP4Boxの表示はこんな感じ。QuickTimePlayerと同じ表示。

[foltia@foltia mp4]$ MP4Box -info MAQ-1930–20130623-0030.MP4
* Movie Info *
Timescale 600 - Duration 00:30:45.076
Fragmented File no - 1 track(s)
File suitable for progressive download (moov before mdat)
File Brand M4A - version 1
Created: GMT Sat Jun 22 16:37:28 2013

File has root IOD (9 bytes)
Scene PL 0xff - Graphics PL 0xff - OD PL 0xff
Visual PL: No visual capability required (0xff)
Audio PL: AAC Profile @ Level 1 (0×28)
No streams included in root OD

Track # 1 Info - TrackID 1 - TimeScale 24000 - Duration 00:30:45.077
Media Info: Language “Undetermined” - Type “soun:mp4a” - 43244 samples
MPEG-4 Config: Audio Stream - ObjectTypeIndication 0×40
MPEG-4 Audio MPEG-4 Audio AAC LC - 2 Channel(s) - SampleRate 24000
Self-synchronized

[foltia@foltia mp4]$

次に、超!A&G+を記録したサンブル。
aacをQuickTimeで開いた場合。

mp4をQuickTimeで開いた場合。

flvをvlcで開いた場合。

aacをvlcで開いた場合。

mp4をvlcで開いた場合。

MP4Boxの表示。やっぱりQuickTimeと同じ表示。

[foltia@foltia radio]$ MP4Box -info ./1–20130625-0930-AGQR-audio.MP4
* Movie Info *
Timescale 1000 - Duration 00:30:47.808
Fragmented File no - 1 track(s)
File Brand isom - version 512
Created: GMT Thu Jan 1 00:00:00 1970

File has no MPEG4 IOD/OD

iTunes Info:
Encoder Software: Lavf52.64.2

Track # 1 Info - TrackID 1 - TimeScale 24000 - Duration 00:30:47.808
Media Info: Language “Undetermined” - Type “soun:mp4a” - 21654 samples
MPEG-4 Config: Audio Stream - ObjectTypeIndication 0×40
MPEG-4 Audio MPEG-4 Audio AAC LC - 1 Channel(s) - SampleRate 12000
Self-synchronized

[foltia@foltia radio]$

Recently


Categories


Archives


Wish list

宗子さんのほしい物リスト2015/5-
Pages (152): « 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 ... Last »