キャプチャ初心者
2002-02-17 00:49:44 ( ID:prfs7qw3ghg )
[ 削除 / 引用して返信 ]
はじめまして。
mpeg2をMPEGツールでm2v、m2pに分離してからmpeg1に変換しているのですが
映像と音声がズレてしまう時があります。
まったくズレずにちゃんと変換される時もあるのですが、4回に3回はズレが生じます。
音ズレ補正で調整して何度かやってみたのですが上手くいきません。
映像のフレームレートや音声のサンプリング周波数などは関係あるのでしょうか?
アドバイス頂けると嬉しいです。
環境は
Win2k
PenⅢ1GHz
384MB SDRAM
Geforce2 GTS
SmartVision2でmpeg2(720×480、6Mbps)で取り込んだものをm2vとm2pに分離してから
サイズ:320×240
アスペクト比率1:1
フレームレート29.97fps
固定レート2300kbit
VBVバッファサイズ:0
動き検索速度:最高画質
ノンインターレース
サンプリング周波数:44100Hz
ビットレート:224kbits
に設定して変換しています。
あとはソースの範囲、ゴースト除去、音声加工程度です。
これらの設定に何か問題があるのでしょうか?
それとも他の問題でしょうか?
くっきー
2002-02-17 01:40:57 ( ID:fujdohw8dvn )
[ 削除 / 引用して返信 ]
MPG2からMPG1に変換するのが目的なんですね?
では「DVD2AVI」を使ってみるのはどうでしょうか?
「DVD2AVI」と「TMPG Enc」を使ったMPG2からMPG1に変換する操作方法が
以下のホームページに紹介されています。
VOB2MPEG
http://homepage2.nifty.com/vagrantz/index.html
浩
2002-02-17 15:58:10 ( ID:t33.fow.o02 )
[ 削除 / 引用して返信 ]
> SmartVision2でmpeg2(720×480、6Mbps)で取り込んだものをm2vとm2pに分離してから
m2pじゃなくてmp2ですよね?(笑)
いったん分離するのはなぜでしょう?
分離せずにそのままTMPGEncに渡しても良いような気がするんですが…
分離したものを使いたくて、音がずれる場合は、
分離した音声ファイル(mp2)を使わずに、
TMPGEncでWAV出力してみては?
こうすれば、映像とほぼ同じ長さのWAVファイルができます。
これをtoolameなどでmp2に変換するとか…
浩
2002-02-17 17:04:23 ( ID:t33.fow.o02 )
[ 削除 / 引用して返信 ]
うーむ、この方法だと音声ファイルの長さは合うけど
音のずれは治らないかも…
参考程度に留めてください。
キャプチャ初心者
2002-02-17 20:35:33 ( ID:prfs7qw3ghg )
[ 削除 / 引用して返信 ]
@くっきーさん
ご返答ありがとうございます。
さっそく紹介していただいたHPを見ました。
でも「DVD2AVI」の使い方がよくわからなかったので「mpeg2avi」というソフトで
mpeg2からaviに変換してからmpeg1にしようと思ったのですが
下記のエラーが出て無理でした。
C:mpegmpg>mpeg2v12 -b a.vob -f -q0 -r1 -3x 640 -2 -1 320 240 -o7 test.avi
...list_nextfile() : #1 = 'a.vob' ...list_nextfile() : #1 = 'a.vob'
cDemuxer::set_filename( a.vob, STREAM_ID == 0xE0 );
lba_seek_next_sysh() : system_header_start_code @ LBA#0
mpv_open() : thread creation succeeded!
cDemuxer::go_demux() : File a.vob is a MPEG-2 Program Stream
bs_getbytes(3322) : buffer(1268) too small.
何の事やら全く分からないので、もうすこし勉強しないとダメみたいです。
@浩さん
ご返答いだたきありがとうございます。
> m2pじゃなくてmp2ですよね?(笑)
そうです(笑)
mp2を分離してまたmp2が出てきたら意味ないですね。
>分離せずにそのままTMPGEncに渡しても良いような気がするんですが…
そうしたかったんですが、今「TMPGEnc」でmpeg2を読み込むために「MPEG-2 Video VFAPI Plugin」を入れています。
「MPEG-2 Video VFAPI Plugin」は映像のみを扱うという事でしたので分離しました。
> TMPGEncでWAV出力してみては?
> こうすれば、映像とほぼ同じ長さのWAVファイルができます。
一度やってみます。
厨房的な発想になるのですが、「TMPGEnc」はaviをmpegに変換するものだという事で
拡張子のm2pをaviに変えて「TMPGEnc」で読み込ませたら分離しなくても映像と音声を認識しました。
そうすると、音声のズレもなく映像もそれほど劣化せずにmpeg1に変換できました。
再生も問題なく出来るのですが、他のmpeg1ファイルと比べて再生が始まるのに若干時間がかかるのと、
プレビュー?(選択した状態でウインドウの左側で小さい画面で見れるやつです)が
表示されるのにも若干時間がかかります。
これは拡張子を変えたことが関係しているのでしょうか?
今のところ特に問題ないのですが、m2pをaviに無理矢理変えるなんてのは愚の骨頂ですかね(苦笑)
他の環境では再生できないなどの問題とか出てきそうですし。
Murphy
2002-02-18 16:18:13 ( ID:enngnieiyb2 )
[ 削除 / 引用して返信 ]
>厨房的な発想になるのですが、「TMPGEnc」はaviをmpegに変換するものだという事で
>拡張子のm2pをaviに変えて「TMPGEnc」で読み込ませたら分離しなくても映像と音声を認識しました。
>そうすると、音声のズレもなく映像もそれほど劣化せずにmpeg1に変換できました。
>再生も問題なく出来るのですが、他のmpeg1ファイルと比べて再生が始まるのに若干時間がかかるのと、
>プレビュー?(選択した状態でウインドウの左側で小さい画面で見れるやつです)が
>表示されるのにも若干時間がかかります。
>これは拡張子を変えたことが関係しているのでしょうか?
>今のところ特に問題ないのですが、m2pをaviに無理矢理変えるなんてのは愚の骨頂ですかね(苦笑)
それは、お使いのDirectShow環境に依存するかと思います。
おそらく、DirectShowでAVIを読もうとして、たまたま、中身がMPEG2だったから
MPEG2再生DirectShowFilterに渡して再生している、と言うような動きになっている
と思われます。
これができるなら、TMPGEncで直接MPEG2を読ませても通る場合が多いかと思うの
ですが?
浩
2002-02-18 20:45:11 ( ID:t33.fow.o02 )
[ 削除 / 引用して返信 ]
> そうしたかったんですが、今「TMPGEnc」でmpeg2を読み込むために「MPEG-2 Video VFAPI Plugin」を入れています。
よけいなお世話かもしれませんが、ちょっと気になったので…
「MPEG-2 Video VFAPI Plugin」を使ってエンコードすると
かなり時間がかかりませんか?
フィルターをかけない場合、LigosやPowerDVDのデコーダを使うと
2倍ぐらいの時間でエンコードできますが、
「MPEG-2 Video VFAPI Plugin」を使うと8倍ぐらいになります。
ノイズ除去させると、それぞれ6.5倍、12倍になります。
環境によるのかもしれませんが、うちではこれを使うのはあきらめました。
浩
2002-02-18 21:15:44 ( ID:t33.fow.o02 )
[ 削除 / 引用して返信 ]
補足です。
「MPEG-2 Video VFAPI Plugin」設定で、
IDCT関数を整数にしたら4倍強まで速くなりました。
でもまだちょっと遅い…
あとフレーム数が2フレーム少なくなります。
まぁ、Ligosだと1フレーム、PowerDVDだと8フレーム増えますが…
また、DVD2AVIを経由すると6フレーム減ります。
茂木
2002-02-19 09:20:37 ( ID:j90zqctmjtr )
[ 削除 / 引用して返信 ]
> 「MPEG-2 Video VFAPI Plugin」を使ってエンコードすると
> かなり時間がかかりませんか?
既に実行されていたら申し訳ないのですけど、そのプラグイン
でのデコードを高速化したい場合
・アスペクト比を「無視」に設定
・IDCT 関数を「整数(32bit LLM)」に設定
・CPU 拡張で MMX にチェック
するのが効果的です。
また、ストリームがシークエンスエンドコードで終端されてい
ない MPEG-2 の場合、最後のピクチャデータが不完全な可能性
があるため、最後2フレームを削除する仕様にしています。
浩
2002-02-19 14:57:20 ( ID:t33.fow.o02 )
[ 削除 / 引用して返信 ]
ふむ、書いてみるもんですね。
茂木さんから直にコメントをいただけるとは… (^_^)
> ・アスペクト比を「無視」に設定
これをやったら実時間の2倍まで速くなりました。
このスピードなら使う気がしますので、しばらくいじってみます。
なお、CPUはPen4 2.0AGHzです。
> また、ストリームがシークエンスエンドコードで終端されてい
> ない MPEG-2 の場合、最後のピクチャデータが不完全な可能性
> があるため、最後2フレームを削除する仕様にしています。
なるほど、そういう仕様でしたか。
ただ、これってドキュメントに書いてありますでしょうか?
できれば書いていただきたいんですが…
あと、削除する・しないをユーザーが設定できるとまずいのでなければ、
設定できるようにしていただけると…
ちょっと試してみたんですが、MTV1000で8Mbps、CBRで録画したものを
読み込ませると、4フレーム減ります。
そのファイルをTMPGEncのMPEGツールで結合ツールを通すと、
減るフレームが2フレームになります。
また、日立のMPEGファイル情報表示ツールVer.2
http://floracity.hitachi.co.jp/go/etc/dload/mpeg/mpgchk.htm
を使うと、シーケンスエンドコードが無いから付けるかと出ますので、
はいと答えて修正したファイルだと減るフレームが2フレームになります。
シーケンスエンドコード以外にもフレーム数が減る仕様があるのでしょうか?
浩
2002-02-19 21:47:07 ( ID:t33.fow.o02 )
[ 削除 / 引用して返信 ]
> シーケンスエンドコード以外にもフレーム数が減る仕様があるのでしょうか?
自分なりに調べてわかったような気がします。
m2v.vfpはファイル先頭のIフレームの前に来るBフレームは
カウントしない仕様のようですね。
MTV1000だと必ずIフレームの前にBフレームが2枚あるみたいなので、
m2v.vfpだと2フレーム少なくカウントされてしまう。
TMPGでエンコードすると必ずIフレームから始まるのでフレーム数が合う。
合ってるかな?
合っているとして、これもできればカウントするかしないか
設定できるようにして欲しいんですが…
他のプレーヤで見ると、先頭のIフレーム前のBフレームでも
ちゃんと画像が入っているようなので。
fay
2002-02-19 23:02:28 ( ID:ggonwbo953a )
[ 削除 / 引用して返信 ]
MTV1000がどうしてそう言う動きをするのかは良くわかりませんが、MPEGというデータ上、
その先頭のIフレーム前のBフレームを普通に復元しようとしても出来ないように思います
が。ユーザに削除するしないを選択させるようにするとしても、その部分の映像が復元で
きないと意味がないわけで。
茂木
2002-02-19 23:40:42 ( ID:xgarobitszw )
[ 削除 / 引用して返信 ]
引用は逆順になってしまっています。
> シーケンスエンドコード以外にもフレーム数が減る仕様があるのでしょうか?
これは仕様というよりもバグといった方が適切なのですが、クローズド GOP
フラグを無視し、ストリーム先頭では常にブロークンリンク扱いで処理して
いるせいです。
一般的な IBBPBBPBBPBBPBB という GOP 構造の場合、実際にエンコードされ
たデータでは最後の2つの B ピクチャは次の GOP に所属することになりま
す。つまり BBIBBPBBPBBPBBP という形です。
B ピクチャは普通、前の I/P ピクチャと次の I/P ピクチャからの差分とし
てエンコードされるので、ストリームの先頭に BBI がきた場合、この二つ
の B ピクチャはデコードできません。(差分の基準となる前の GOP 最後の
P ピクチャが無いため)
ただし、GOP ヘッダにはクローズド GOP というフラグがあり、これは BBI
とある場合の B ピクチャが、次の I ピクチャからの差分しかとっていない
ので、前の GOP が無くてもデコードできるというのを示しています。
正しいクローズド GOP フラグの意味は、上で書いたとおりなのですけど、
プラグイン作成当初は
「クローズド GOP というのは IBBPBBPBBPBBP のように、次の(前の)
GOP の情報を参照する B ピクチャを持たない構造のことだ」
と思い込んでいたので、ストリームの先頭が B ピクチャから始まっていて
クローズド GOP フラグが設定されていても
「なんでオープン GOP なのにクローズド GOP フラグが設定されてい
るのだろう。きっとエンコーダが腐ってるんだな」
と考えて疑わずに(本来デコード可能な)ストリーム先頭の B ピクチャを
デコードせずに読み飛ばすようにしていたので、それが今も修正できてい
ないのです。思い込みって怖いですね。
> (シークエンスエンドコードが無い場合の最後の2フレーム)
> 削除する・しないをユーザーが設定できるとまずいのでなければ、
> 設定できるようにしていただけると…
もともとこれを付けたのは、数時間をかけたエンコードの最後で「不正な
処理を……」ダイアログが出てくることがあるので何とかして欲しいとい
う要望に対処するためだったりします。
そういう目にあった場合に許せる寛容な方ばかりだと、設定できるように
することも可能なのですけど、そうではないようなので了承してください。
> これってドキュメントに書いてありますでしょうか?
> できれば書いていただきたいんですが…
アドバイスありがとうございます。README は次の更新の際に追記します。
WEB ページは明日にでも追記しておきます。
Murphy
2002-02-20 12:47:31 ( ID:enngnieiyb2 )
[ 削除 / 引用して返信 ]
元質問者に確認したいのですが。
分離して大きな音ズレが発生していますか?
数フレーム以上のズレなら、デコーダの設定ではなく、元のMPEGがコマ落ちしてる可能性もあるかと思います。
映像と音声を分離した時点で、コマ落ち&音ズレ補正用の情報が無くなっちゃうらしいので。
この辺、ちょっと前に堀さんだったかが書かれていたと思いました。
TMPGEncでMPEG2をそのまま読める環境なら、そのまま読ませてみてずれるか試してみるのも良いかと。
キャプチャ初心者
2002-02-20 13:29:29 ( ID:0opu7aqbcro )
[ 削除 / 引用して返信 ]
僕の質問がまったく自分の理解出来ない領域までいっていて驚いています。
◎浩さん
> 「MPEG-2 Video VFAPI Plugin」を使ってエンコードすると
> かなり時間がかかりませんか?
映像と音声がズレないかどうかばかり気になっていて、あまり覚えていませんが
相当時間がかかった記憶があります。
4分ほどのmpeg2をmpeg1にするのにノイズ除去などを入れた状態で1時間は
かかっていました。
上記とは関係ないですが、WinDVDが入っていてもダメなんですよね?
どこかでそういうのを見た気がするんですが。
> 「MPEG-2 Video VFAPI Plugin」設定で、
> IDCT関数を整数にしたら4倍強まで速くなりました。
色々とありがとうございます。
一度確認してみます。
◎Murphyさん
> 元質問者に確認したいのですが。
> 分離して大きな音ズレが発生していますか?
それも場合によるんです。
うまく合う時もあるんですが、3、4文字(言葉?)分くらいズレる時もあります。
> 数フレーム以上のズレなら、デコーダの設定ではなく、元のMPEGがコマ落ちしてる可能性もあるかと思います。
> 映像と音声を分離した時点で、コマ落ち&音ズレ補正用の情報が無くなっちゃうらしいので。
> この辺、ちょっと前に堀さんだったかが書かれていたと思いました。
すいません。
フレームというのがあまりよく分からないので難しいですが、書かれている事は分かります。
ソースの範囲を指定するときの開始とか終了の数字の事でしょうか?
> TMPGEncでMPEG2をそのまま読める環境なら、そのまま読ませてみてずれるか試してみるのも良いかと。
Murphyさんのご返答を見てDirectShowの優先順位をあげたらm2pも問題なく読み込めました。
今のところ、そのまま読み込ませて音ズレは発生していません。
報告が遅れましたが、ありがとうございました。
ついでのようで申し訳ないのですが、ひとつ気になることがあるのでもしおわかりでしたら
教えていただけると嬉しいです。
TMPGEncを使い始めて少ししてからPowerDirector(でしたっけ?)の試用版を入れてたのですが
TMPGEncでm2pも読み込めるようになったので必要なくなってアンインストールしたのですが
そうしたとたんにm2pが読み込めなくなりました。
で、もう一度インストールしてみたら、また読み込めるようになりました。
これはやはりPowerDirectorをインストールしたときの何かが関係しているという事ですよね。
そうだとしたら試用期間が終了したら、また読み込めなくなりそうで心配しています。
ソフトはいらないのですが、その関係していそうな何かだけを残しておければいいのですが・・・
浩
2002-02-20 15:25:21 ( ID:t33.fow.o02 )
[ 削除 / 引用して返信 ]
> WEB ページは明日にでも追記しておきます。
読ませていただきました。
次回のアップデートは無理としてもなるべく早く直るのを期待しています。
シーケンスエンドコードについては、上でも書きましたが、
TMPGEncのMPEGツールとかMPEGファイル情報表示ツールVer.2で
修正できるようなので当分これで対処します。
カノープスのサポートフォーラムにも要望を書いてみることにします。
しかし、今回の件でm2v.vfpは私にとっては「使える」デコーダになりました。
日記を読ませていただくと、開発はたいへんなようですががんばってください。
> 僕の質問がまったく自分の理解出来ない領域までいっていて驚いています。
話を別方向にずらしてしまったようで申し訳ありません。
> 映像と音声がズレないかどうかばかり気になっていて、あまり覚えていませんが
> 相当時間がかかった記憶があります。
茂木さんのアドバイスにしたがって設定するとかなり速くなりましたので
試してみてください。
> 上記とは関係ないですが、WinDVDが入っていてもダメなんですよね?
> どこかでそういうのを見た気がするんですが。
うちでは今のところWinDVDは使えていません。
むしろ、これがDirectShowに登録されていると他のデコーダが
使えなかったりするので登録解除しています。
> それも場合によるんです。
> うまく合う時もあるんですが、3、4文字(言葉?)分くらいズレる時もあります。
映像と音声は別々のクロックを元にエンコードしますから、
長さが合わないこともあります。
このあたりのことは、
「記録型 DVD 活用 パーフェクトマニュアル」(インプレス)
http://direct.ips.co.jp/book/Template/Goods/go_BookstempGR.cfm?GM_ID=1588&CM_ID=&SPM_ID=1&HN_NO=00400&PM_No=&PM_Class=
のp.272からの説明がわかりやすいですよ。
この説明では音声の長さを調整するのにSound Forge XPを使っていますが、
私はCoolEdit2000を使ってみました。
長さを調整するときにTempoとかPitchに関する設定もできるので
けっこう良いんじゃないかと思います。
> これはやはりPowerDirectorをインストールしたときの何かが関係しているという事ですよね。
> そうだとしたら試用期間が終了したら、また読み込めなくなりそうで心配しています。
> ソフトはいらないのですが、その関係していそうな何かだけを残しておければいいのですが・・・
PowerDirectorはCyberLinkですからたぶんPowerDVDのデコーダが
インストールされるのかな?
MPEG-2 Video VFAPI Pluginも設定次第で速くなりますから
もう一度使ってみては?
DirectShow経由で読みたい場合は、PowerDVDかLigos LSX-MPEG Playerを
インストールすると可能になります。
LigosはDVD MovieWriterをインストールすると同時にインストールされます。
ただ、PowerDVDはフレーム数が7〜8フレーム増えてしまうことがあったり、
Ligosは色が明るくなってしまったりという不満はあります。
|