追加された行はこのように表示されます。削除された行はこのように表示されます。Flickにwmv/asfファイルを投入すると、出来上がったDVDでは音ズレするという報告が数多くあるようだ。これの修正方法のメモ。'''ただし、予測でしかない。Playerで再生できる動画・音声なら何でも読み込める''(もちろんDRM付きの物はダメ)ようになる。Flickを使う上では欠かせないテクニックだ。24bit)の音声も読み込めた。DirectShowSourceプラグイン経由で入力する。Flickに投入する。avsスクリプトを書くのが面倒な方は下記のツールで作るといい。Flickに投入すればOKだ。Flick以外(携帯動画変換君など)でも結構メジャーな話だ。それらの解決方法としてAvisynthが紹介されるのも定番だ。''ただし、ここでavs経由で修正可能と言っているのは予測でしかない。''猫科研究所では音ズレするという問題自体を確認できていない。''何の保証も無いことに注意。''!!音ズレの原因!!中身の話''(ここから先は内部の話なので知的好奇心を満たす意味しかありません。一般のユーザが読む必要はありません。)''これではつまらないので、多少解説すると、''問題はffmpegのwmaデコーダ''にあると思われる。正確に言うとffmpegのコンテナスプリッタ→デコーダのインターフェースにあると思われる。AvisynthはDirectShowSourceというプラグインを標準で持っており、これはWindowsのDirectShowを使用してwmv(とwma)をデコードする。Playerで再生した場合と全く同一の映像・音声''が得られる。デコード結果の映像と音声がずれることもないはずだ。DirectShow等の現代的なマルチメディアシステムは、データの受け渡しに関して、「スプリッタからデコーダに渡す方式(push)」と「デコーダがスプリッタに要求する方式(pull)」の両方をサポートする。...と言いつつ、それでもずれる場合はあるらしい。Flick以外のffmpegでは、avsでDirectShowSourceにconvertfps等のオプションを追加すればずれないという話もある。しても駄目なケースはある模様。ここまで来るともう原因は不明だ...。一応、上記のmakeavsで作成するavsはconvertfpsを付けてある。え、どちらもデータが渡れば同じじゃないのかって?それが違うのだ。''wmvでの音ズレは、ffmpegが構造的にpush方式に固定されていることが原因''と考えられる。'''...た・だ・し、'''これらは全て予測でしかない。猫科研究所では問題の音ズレが発生するようなwmaファイルが無く、''実際の動作は一切検証できていない''。解説も的はずれかも知れないので注意。いうのは、コンテナのスプリッタが、ファイルからある単位(''フレーム''などと呼ばれる)でデータを切り出すと、それは一定時間分のデータであることが保証されていた。このため、コンテナスプリッタはある一定時間ごとに、デコーダに1フレームずつデータを送り出せば再生が間に合っていた。この''スプリッタがデータ受け渡しの主導権を握っているのがpush方式''だ。!!追加情報その後、圧縮技術は複雑さを増し、1フレームに必ず一定時間分のデータを収めるのは''無駄が大きい''と考えられるようになった。フレームのサイズを固定でなく可変にすればいいのだが、そうすると途中再生・シークなどの処理が難しくなる。結果として、コンテナからは固定サイズ(固定長のフレーム単位)に見えるが、内部的にはフレーム間にまたがるデータを使う、というハイブリッドな方式になる。すると、ある''フレームが一定時間分のデータを含んでいるという保証はなくなり''、1フレームを受け取ってもデコーダが十分なデータを出力できない事態が生じる。なってくると必然、スプリッタが「これでいいでしょ」とデータを渡すのではなく、''デコーダが「これだけデータをくれ」と主導権を握るpull方式''になる。Avisynth経由でDirectShowSource入力を行ってもずれる場合に関して、以下の方法で修正できるとの情報を頂きました。ffmpegのwmaデコーダのコードを見る限り、wmaはこのフレーム間にまたがるデータを持っており、必然的にpull方式になる。''ffmpegではデコーダがスプリッタにデータを要求する手段がない''。wmaデコーダは本来の時刻にデータを出さず、必要なデータが揃ってから出力する。''音声の遅延につながる''というわけだ。aviに変換する(音声はPCMにする)。DirectShowSourceで読み込む。''なぜAvisynth経由で修正可能なのか''。AvisynthはDirectShowSourceというプラグインを標準で持っており、これはWindowsのDirectShowを使用してwmv(とwma)をデコードする。Playerで再生した場合と全く同一の映像・音声''が得られる。デコード結果の映像と音声がずれることもないはずだ。...と言いつつ、それでもずれる場合はあるらしい。Flick以外のffmpegでは、avsでDirectShowSourceにconvertfps等のオプションを追加すればずれないという話もある。しても駄目なケースはある模様。ここまで来るともう原因は不明だ...。一応、上記のmakeavsで作成するavsはconvertfpsを付けてある。'''...た・だ・し、'''これらは全て予測でしかない。猫科研究所では問題の音ズレが発生するようなwmaファイルが無く、''実際の動作は一切検証できていない''。解説も的はずれかも知れないので注意。情報提供者に確認してないのでお名前は一応伏せておきます(いずれにせよハンドルネームですが)。Perl5.010001。