1057019 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

緑のボタンを押せ! Press the green button

緑のボタンを押せ! Press the green button

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

Category

Keyword Search

▼キーワード検索

Archives

2024.04
2024.03
2024.02
2024.01
2023.12

Comments

 effelpist@ kilovermek.es effelpist &lt;a href=&quot; <small> <a href="http…
 Jun@ Re:「いっちゅう」さんのiEPG用ソフト入れてみた(09/15) TVdeIEPG Ver.1.2.1.0がリンク切れしてい…
 スター@ Re:hauppauge HD PVR 速報(08/25) スタービーチ <small> <a href="http://c…
 ASOBO@ Re:hauppauge HD PVR 速報 ASOBO攻略 <small> <a href="http:/…
 ハッピーメール@ Re:hauppauge HD PVR 速報 ハッピーメール <small> <a href="http:/…

Freepage List

Favorite Blog

まだ登録されていません
2009.11.10
XML
テーマ:私のPC生活(7398)
カテゴリ:Hauppauge HD PVR

昨日書いたように、再生環境のビミョウな悩みですが、PS-3を買う、というのもありかなー、なんて思ったのですが、最新版のPS3はYD linuxが動かないんですね。これじゃ、CodecSys ttp://codecsys.fixstars.com/ja/
とか使えません。 orz
------
それはともかく、
Hauppauge HD PVR でaac 5.1チャンネルのビデオをつくるプロジェクトですが、
その5その6に書いた手順で作業手順としてはだいたい確立しました。その6の手順は確実なのですが、面倒くさいうえ、下準備に結構時間がかかるのでなんとかならないか考えていたのですが、ちょっとうまい方法を思いつきました。原理というか理屈(それほどたいそうなものでもない)は以下のとおりです。

前提として、STBの出力は2chステレオの場合はLPCM、5.1chサラウンドの場合は、AAC出力になるように設定しています。HD PVRの音声入力は、S/PDIFにしています。また、録画は、EPGでの開始・終了時刻の1分前から1分後までを録画する設定にしています。このように条件で録画すると、多くの場合録画期間中に音声がLPCM→AAC→LPCMと変化します。
async
この場合、拙作のHD PVR用のソフトでは、LPCM⇔AACの切り替え時に録画が停止し、再度録画を開始します(こういう仕様なのです)。このときの反応時間は0にできないので2-3秒間頭が切れた録画になります(図の薄緑のところ)。(もうちょっと短くできるが、未対策。トレーラーのぶぶんなので、気にしないことにしています。)
一方、別録音しているAAC音声のほうは、LPCM⇔AACの切り替え時にも前後のLPCMも含めすべて録音され、ext_bsでAAC部分を抽出することで、完璧なデータを用意できます(図の黄色のところ)。
これらのはじめが微妙に切れた映像(しかも切れた分の長さは一定ではない)と音声を張り合わせるために、リップシンクの調整が必要になるわけです。

 これを、それぞれのデータの最後の部分は一致してると仮定してみました。上記の考察を考えると原理的には、うまくいきそうな気がします。

映像の長さは、TMPGEncで仮読みして、ミリSec単位ではかります(L1)。音声の方は、とりあえずext_bsの出力ファイル、(AACのファイル)をLPCMのWAVファイルに変換します。で、WAVファイル中のデータチャンクの長さから、正確な長さをミリSec単位で求めます(L2)。
L1-L2の値を「その6」での、txMuxeRでの音声の遅延の値の代わりに使おう、という目論見です。

早速やってみたのですが、イマイチ。 orz
「その6」の手順とおりのでやったのに比べ、やや音声がすすんでしまいます。
さらに調べると、もともとHD PVRで録画された、tsファイルをMediaInfoで見てみると、音声が100msほど進んでいるようです。

ということで、(L1-L2-100)を音声トラックの遅延に指定して、tsMuxeRでマージしてみると、イイ感じ。
我が家の再生環境の問題と思いますが、ほんのすこし音声が進んでいる感じがしますが、違和感を感じるほどではありません。
複数のサラウンド音声の番組で試しましたが、この方法で問題ないようです。 (ヤホ~っ!)

音声は、なんとかなりそうな気がします。AAC→WAV変換は今回はvlcでやったが、コマンドラインツールもありそうです。vlcもコマンドラインで使えるらしいし…WAVになってしまえば、最悪WAVファイル中のRIFFヘッダを読んで、DATAチャンクの長さから、長さを調べるプログラムを作ってもいいや。
問題は映像かな。いまはTMPGEncを使っていますが、「tsフォーマットから、H264のストリームをとりだして、総フレーム数を数える」がTMPGEnc がやっていることだろうと思います(でなければ、入力ファイルを指定した際に「黙り込んでいる」時間の長さは説明できない)。

んー。TMPGEncをUWSCAutoItで自動化して動かす。→ 2008/9ころ良くはまってた。できれば避けたい。
自分で、 「tsフォーマットから、H264のストリームをとりだして、総フレーム数を数える」プログラムを作る。H264とはいえ、録画ファイルはかなりでかいので、ちゃんと作らないと超鈍足になりそう。Rubyとかでなくcじゃないとだめ?
それ以前にtsとかH264の技術資料ってどこにあるの?






お気に入りの記事を「いいね!」で応援しよう

Last updated  2009.11.10 21:23:37
コメント(0) | コメントを書く



© Rakuten Group, Inc.