Direct Show
で、いくつかDirectShow標準のフィルタでは上手く行かないケースがありました。
1.録画処理とプレビュー処理の両立ができない。
キャプチャピンとプレビューピンのそれぞれで録画処理とプレビュー用のレンダリングを行いますが、録画処理の方が何らかの理由で一時的に止まると(HDDのアクセス待ちが主)その間プレビューもとまってしまう。そのため録画中はプレビューのご機嫌がナナめになります。
録画処理に関しては一時的に止まっても賢くバッファリングされているため、出来上がるビデオファイルへの影響は出にくく素晴らしいのですが、何分プレビューが犠牲になるのが痛い。
ここは録画処理が止まってもグラフ処理を止めない工夫が必要で、キャプチャツールの定番である「ふぬああ」ではそのあたりにも配慮されていて、独自のマルチプレクサにより録画処理が止まってもプレビューに影響がでにくくなっているようです。
2.オーディオ再生の遅延。
映像はプレビューピンをレンダリングする事で遅れた分のデータに関しては自動的に破棄されるので表示される画像は遅延し難くなっています。
また、キャプチャピンにビデオレンダラを接続する事でも表示出来ますが、この場合は遅れた分のデータが破棄されず表示されてしまうため遅延が起こる度に遅延時間が累積されどんどん遅れていくことになります。
一方、オーディオの方は元々録音してから再生するという仕組みのため録音時間分の遅延がどうしても発生してしまいます。このあたりはDirectShowのドキュメントにも書いてありますが、これに加えレンダリング時の累積遅延が発生します。オーディオに関しては丁度映像のキャプチャピンをレンダリングするのと同じような動作になるようで、累積した遅延を回復する術がみつかりませんでした。結局この部分は遅延が累積しない自前のオーディオレンダラを作る事で改善することになります。
オーディオ処理に関してはファンタジーリモートでやった音声転送の概念がそのまま適用できるので出来るだけ遅延を抑えたリアルタイム処理と再生品質の両立は可能かな。
という事で、次のアマレコはビデオキャプチャをやります!
1の問題に関しては元々録画処理をDirectShowではなくアマレコ秘伝のライブラリで行うのでDirectShowはプレビューに専念でき、録画とプレビューの両立が可能となります。
- 関連記事
trackback
コメントの投稿