Dies Aliquanti

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

しかたないので、AACを別録音する(5) - 映像と音声のマージ

加藤和彦を悼む、という口実で同僚とカラオケへ。「あの素晴らしい~」とか「帰ってきた酔っ払い」は当然ですが、ベッツィ&クリスあたりになるとだんだん怪しくなってきて、サディスティック・ミカ・バンド(桐島かれんの)あたりで撃沈。「タイムマシンに~」とかはそういえば、木村カエラでリバイバル版があったのを忘れてました。
それはともかく、.AACファイルもちゃんとできるようになったので、映像と音声のマージをします。以前、カノープスのHD RECSを使っていた頃は、.WAV化したあと、TMPGEncで張り合わせとかして、WMV(VC-1)とかやってたのですが、これが死ぬほど遅い。C2D E6600とかでは1Pass CBRでも1920x1090iでは実尺の20倍くらいかかりました。半年くらいの間、E6600,Q6300,E6300をほ24時間使いっぱなしでエンコードしていたものです。

Hauppauge HD PVRでせっかく、リアルタイムにエンコードしているのでサラウンドの番組のみとはいえ、さすがにこれは避けたいです。ネットで探すと、MP4Boxというツールがあるらしいので、試してみましたが、使い方が悪いのか、そもそもH264に対応していないのかよくわかりませんがうまく使えません。 orz

映像と音声と別ファイルのまま保存して、vlcで再生時に張り合わせでもいいか…と弱気になったりしますが、これも上手くいきません。 orz

 あきらめかけたところで、tsMuxeRというのを見つけました。カット編集もできるみたいですけど、プレビュー機能はないので精密編集は手間がかかりそう。また再エンコードは基本的にはしないみたい。ということは、GOP単位なのかな?だとすると録画のお尻のほうを切り落とすくらいしか、編集機能の使い方はないかな?

ともかく、H264の映像ファイルとaacの音声ファイルをマージするだけなら非常に速い。2時間近いHDの映画を4分くらいで処理してくれる! VC-1への再変換に比べれば300倍近い速さ♪。これなら、仮想化環境上でも十分実用になります。

あとは、映像と音声のマージの際のずれをいかに正確に(かつ手間をかけずに)指定するか、です。



スポンサーサイト

しかたないので、AACを別録音する-その4 ext_bsではまる (2)

昨日の日経新聞の文化面に、レコード針のナガオカの社長さんが書いていたのを見て思い出しました。
実家にあったターンテーブルを持ってきたら、ちゃんと回らない
orz
修理しなくては、、、と思いながら早
4年。なんと意思の弱いことよ。

 


それはともかく、ハマッていたのは、STBからS/P DIFから録音したwavファイルから、ext_bsaacァイルを作成するところ。短いファイル(数分)ならば問題なく変換できているのですが、映画1本分ぐらい(2時間弱)の長さになると、「」と表示されて変換できません。頭キテ、「IEC61937(-1,-2,-6あたり)を買って自分でつくっちゃおうか?」と無謀な思いをはせたりしてました。

 

物は試しで、Waveファイルの編集をするツールで長いファイル(long.wav)50分くらいに分割(long1.wav,long2.wav)にして、ext_bsに食わせるとちゃんと、変換できます(long1.aac,long2.aac)。で、これを、

copy /B long1.aac+long2.aac long.aac

とかやって強引につなぎ合わせると全編分のaacが問題なくできました。まあ、継ぎ目のところは1ブロック分デコードできてない可能性はありますが、今回の実験ではちょうどstuffing dataのところで分割したようで問題なかったようです。

で、バイナリエディタBz (Vzを作った人なのね,懐かしい)で中身をみてみると、オリジナルのwavデータのDataチャンク(RIFFチャンク)の長さが変。dataチャンクの大きさが8000_0000(h) とかになってます。Linuxarecordコマンドで録音して、録画終了時にkill で止めてるいるためでしょう。
もともと
Wavファイル(RIFFフォーマット)4GBを越えられないのは知っていたけど、2時間でも、4800×4×60×60×2= 138240000 だから大丈夫と思っていたのですが、こんな値とは…本来uint32_tで扱わなければならないところを、int32_tで扱っているとすると、負の値になってしまいます。これが原因かな?んー、ext_bsのバグですかね。

普通はWavファイルの作成にでarecord + killなんか使わないのでしょうから、ちゃんとしたwavファイルができていて、この場合数時間でもdataチャンク長は正の値ですから問題が顕在化していないのでしょう。。。
実ファイル長と
dataチャンクの長さなんて、どうせ厳密には調べてないと思い、bzdataチャンクの長さを適当に正の値に変えてやったら、ext_bsでちゃんと最後まaacに変換できました(らっきー)

というか、linuxでarecordを動かしているスクリプトの中で、arecordを止めるのに、SIGKILLを送っているのがマズイ。ちゃんとSIGTERMにしたらdataチャンクの長さが正しいwavファイルができました。スクリプトは直しておきます。(ああハズカシイ)



しかたないので、AACを別録音する-その3

 いや~、朝晩だんだん寒くなってきて、布団からなかなか出られなくなってきました。にゃんこ達はあさごはんが遅くなってしまい、死にそうな声でせがんだりしてます(笑)。

 


 

(2009/10/29 追記) スクリプトはちょっとバグってたので修正しました。

それはともかく、arecord直では自動運転するのにすこし不便なので、一枚皮をかぶせるためにrubyでスクリプトをさくっと書いてみました。

 

ruby arecord_suga.rb [-D デバイス名] [-F 保存フォルダ] [-s] ファイル名
-s は録音ストップの指定

みたいに使います。
ソースはこんな感じ


#!/usr/bin/ruby -wKu
# (c) 2009 BO
# usage
#   arecord-sugar [-D device] [-F FolderToSave] [filename]
#   arecord-sugar -s
# History
#  2009/10/29
#    fix
#      (1) way to identify PID of the running arecord
#      (2) snding kill SIGTERM to arecord correctly
#
#tested on
#   ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
require 'optparse'
opt = OptionParser.new

Config = Hash.new
#default config
Config[:folder] = '.'
Config[:stop] = false
Config[:device] = 'hw:1,0'

opt.on('-F FOLDER', '--folder=FOLDER') {|v| Config[:folder] = v.to_s  }
opt.on('-D DEVICE', '--device=DEVICE') {|v| Config[:device] = v.to_s  }
opt.on('-s', '--stop') {|v| Config[:stop] = true }
opt.parse!(ARGV)

previous_run = `ps -C arecord h`
reg = / *(\d*).*arecord .*-D +#{Config[:device]}/m

# if previus one exists, kill it
if reg =~ previous_run
    p $1
    `kill #{$1}`
end

#check if STOP mode
if Config[:stop]
    exit( 0 )
end

if ARGV[0]
    basename = ARGV[0]
else
    basename = Time.now.strftime('%Y_%m_%d__%H_%M_%S')
end

filename= "#{Config[:folder]}/#{basename}.wav"
num=0
while( File.exist?( filename ) )
    num = num +1
    filename= "#{Config[:folder]}/#{basename}_#{num}.wav"
end

cmd = "arecord -t wav -f dat -D #{Config[:device]} #{filename} & "
system( cmd )



しかたないので、AACを別録音する-その2

家内が横浜で、「マラサダ」というお菓子を買ってきました。ハワイで有名なお菓子らしい。
さっそく家内のを一口もらいますが「…『あげぱん』だよね…?」
家内「…『あげぱん』だよね…?」


それはともかく、音声のAAC録りです。linux(Ubuntu)ではどうすればいいのかじぇんじぇんわからないので、ょっとしらべてみました。ALSAの名前くらいは聞いたことがありますけど…

使ったオーディオインターフェースは、部屋にころがってたSoundBlaster PX(以下SB-PX)。すでになんのために買ったのかも忘れてます(笑)が、一応Optical入力がついてます。AACの録音はディジタルoptical(または同軸)入力つきであるだけでは不十分で、AACをパススルーで入力入力できないとだめなのですが、なかなかそこまでスペックで書いてあるものは少ないです。ネット上でもなかなか情報を見つけることは難しいのですが、出力がパススルー対応になっているもので特攻して、確認するくらいしかないのでしょうか?

とりあえず、Ubuntu9.04(Desktop 32ビット)のPCにつないでみます。ここあたりを参考に、
arecord -l
**** ハードウェアデバイス CAPTURE のリスト ****
カード 0: Intel [HDA Intel], デバイス 0: AD198x Analog [AD198x Analog]
  サブデバイス: 2/3
  サブデバイス #0: subdevice #0
  サブデバイス #1: subdevice #1
  サブデバイス #2: subdevice #2
カード 1: MP3 [Sound Blaster MP3+], デバイス 0: USB Audio [USB Audio]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0

ちゃんと認識しているみたい。SB-PXの切り替えSWをカード1のサブデバイス0から録音してみる。テレビ放送は普通48kHz/16ビットなので

arecord -t wav -d 30 -f dat -D hw:1,0 test.wav

ちゃんと録音されますね。STBの設定を、AACにしてもう一度録音。雑音みたいな音(AACの生音)が録音されてます。これをAACのストリームに変換するには、ここにあるext_bsをつかいます。

ext_bs test.wav test.aac
1つ目のヘッダが1832バイト目に見つかりました。
データタイプ: MPEG-2 AAC
ビットストリーム: 1406フレーム, 1199718バイト

うまく変換されたみたい。作成された.aacファイルはVLC(今回は1.0.2を使いました)
で再生してみるとうまく再生できました。

よし、ここまでOKっと。



しかたないので、AACを別録音する

「窓辺ななみ、って誰よ?」な私ですが、皆様は無事win7買われましたでしょうか?


それはともかく、一向にHauppaugeがAAC5.1chの音声に対応してくれないので、AACを別に録音することを考えます。カノープスのHD RECSを使っていた頃は、実験的に5.1とかもやっていたのでまあ、なんとかなるでしょう。

 (2009/10/25訂正)
AACでもちゃんとされてます。

とりあえず、CATVのSTBの音声出力の設定をAACにしてみました。Hauppauge HD PVRでは当然音が録音されません。HD PVRの光I/Fはパススルーの出力がついているのですが、こちらにも出力されなくなってます。  orz

んー、これじゃパススルーじゃない…STBの光出力を分岐するしかなさそう…パッシブタイプの分岐装置が昔はあったのだけどいまもあるかな...
 富士パーツのAC-OP6とかが使えそう。これって、普通の家電量販店とかでうっているんだろうか?

どうでもいいけど「富士パーツ」は「FUJIPATU」なのね。 orz



Bose901をサラウンドのフロントに使う (3)

blogのメッセージで問い合わせを受けたので…

901のイコライザは、従来の2chステレオではプリとメインの間にはさむか、テープデッキ用の端子につけることになりますが、サラウンドアンプではテープデッキ用の端子は普通はないと思います。プリアンプとメインアンプが分離したタイプは高級機にはありますね。たとえば、デノンAVP-A1HDhttp://denon.jp/products2/avpa1hd.htmlプリ・メイン一体型でも、プリアウトがあれば別に2chのメインアンプを用意して、AVアンプ(プリアウト)→901イコライザ→2chメイン→901本体と接続できます。

最近のAVアンプはマイクロフォンがついていて、自動で音場調整するものがあります。このタイプでは、901の周波数特性を保障してくれる可能性があります。この場合はイコライザーは不要ということになります。(試してないのでなんともいえませんが)


901をサラウンドシステムのフロントに使う場合、サブ・ウーファーに気をつける必要があると思います。901をすでに使われているならお分かりと思いますが、かなり低音がでます。したがって、中途半端なサブウーファーでは意味がなくなってしまいます。私はヤマハのYST-SW1500を使ってます。中途半端なものをつけるぐらいだったら、サブウーファー無しの5.0でとりあえず試してみて、物足りなければ30cm超のサブウーファーを導入するというのもありと思います。


根本的な問題としては、サラウンドのソースの作り方があります。映画とかは問題ないのですが、クラッシックとかだとホールトーンをフロント以外のスピーカーで再生することになります。ということは、基本的にリスニングルームは「デッド」な方が「正しく再生」できるのではないかと思いますが、901は壁の反射を使う(=ライブ)ので、「ライブな」リスニングルームの必要があるのです。


901のイコライザのデジタル化も画策しているのですが、なかなか暇がなくてできません。orz

 



Win7のDLNAサーバーを試す

 えー、プリンタを買いました。たぶん8年ぶりくらい。今回は、

【代引手数料無料】PIXUS MP990

これです。前回がCanonだったのでエプソンにしようかなーとも思ったのですが、エプソンは給紙が前からしかできません。それはそれで便利なのですが、シール台紙とかはうまくいかないような気がしてまたCanonです。しかし、6色インクなんてほんとにいるの?とも思いましたが、写真は本当にきれいです。とりあえず、満足。

 


それはともかく、Windows7(RC版)のDLNAサーバーを試してみました。VistaにもDLNAサーバーの機能はあったのですが、トランスコード機能がないので、私にとっては意味無し。市販ソフトも買ってみたりしましたが、SDのみ、5.1chには対応しないなど、orzな状態です。ちなみに、クライアントはRegza Z2000です。

 

C2D E6600でHD PVRで録画したH264のHDの動画を再生してみますが、なんかキタナイ。CPUパワーが足らないのかと思ってC2Q Q6300にも入れてみましたが、同じ。HDになりませんねー。だめだ、こりゃ(期待してなかったけどさ)。 

 



仮想化、VirtualBox再び の続き (3)

んでもって、予算規模が膨らんでりゃ世話ない、と思う私ですが、

 


それはともかく、UbuntuのPCをリブートしたら、VirtualBoxが使えなくなってしまった。こんなエラーがでます。

[VirtualBox can't operate in VMX root mode. Please disable the KVM kernel extension,
recompile your kernel and reboot (VERR_VMX_IN_VMX_ROOT_MODE).」


ただリブートしただけなのに… orz
ググッてみたら、こんなページがUbuntuのフォーラムにありました。さっそく、リンク先にあるように、

 

sudo modprobe -r kvm_intel

どうやらちゃんと動くようになりました。

 



仮想化、VirtualBox再び

なんとなく腰が痛くなってしまい、3連休は撮りためたビデオの消費以外何もできませんでした。orz

 


それは、ともかく、SunからVirtualBoxのバージョンアップ(3.0.8)のメールが届いていたので、ちょっと試してみました。以前試した3.0.6であった不具合が直っているのと、Windows XPをホストOSにした環境でも、レスポンスはやや改善しているのがわかります。ということで、試してなかったLinux(Ubuntu9.04)をホストOSするバージョンも試します。

 

おや、すんごくいいかも知れないです。kvmがうまく動作しなかった、Q6600+P5B-VM DOの組み合わせでも、Intel-VTがちゃんと使えているっぽい(未確認)。パフォーマンスも80%くらいでは動くみたい。

いままで、VMPlayerを使うことが多かったのですが、事実上開発が停止しているようにみえます(ESXi系に注力しているのでしょう)し、ホストOSへのCPUの割り当ても最大2までなので、VirtualBoxに期待大です。 しばらく、使ってみることにしたいと思います。、

 

 



1歳になりました

1yearold

にゃんこ達は今日が誕生日です。体重は約4.5Kg。右のブラウンの方は、間違いなく「ボケ」担当で日々笑わしてくれます。グルーミングが大好きで、自分だけでは飽き足らず、もう一匹の方もなめたりしてます。子猫のころ、右のブルーの方は、ウ○チを隠すのがあまり得意でなかったのですが、よくブラウンの方が代わりに砂掛けしてました。
右のブルーの方は、クールな感じですが、頭がよくて新しいイタズラを考え付きます。最近は、キッチンや洗面台のシンクで水びちょびちょになるのがブームです。

newcomer
10ヶ月前に我が家に来たときはこんなにちっちゃかったんです。



FC2Ad

まとめ

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。