Dies Aliquanti

スポンサーサイト

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

SDだけ失敗する理由は?~カノープスのHD RECSのその後その8

HD RECSでのキャプチャだが、時々失敗する。キャプチャが停止する主な理由は、入力フォーマットが途中で変わったり、HDDの書き込みが間に合わないことだ。今使っているスクリプトでは、このような場合自動的にキャプチャを再スタートするようにしているので、ポストプロセスで圧縮と一緒につなげればまあ、一応OK。もちろん、数秒間はキャプチャがとんでしまうけど・・・
数日前に、失敗するのはSDの場合ばかりなのに気づいた。HDDの書き込み速度の問題ならば、HDで失敗するのならわかるが、なぜSDばかり失敗するのだろう?と頭を悩ませていたのだが、キャプチャ時のHDDへのアクセスの違いに気がついた。HDの場合は書き込みがほぼずっと連続的に行われているのに対し、SDの場合は約9~10秒おきに書き込みを行っている。
 ここからは憶測だが、データレートの違いからSDの場合はOSのバッファ領域がいっぱいになるまで9~10秒くらいかかるのだろう。キャプチャの保存に使っているHDDは専用にしているため、この間HDDへのアクセスは起きない。この間にHDDのアクセスに関連する仕掛けが、たとえばパワーダウンモードになってその状態からの回復に時間がかかり、その結果次にHDDの書き込みが発生したときに瞬間的に間に合わなくなるのではないだろうか?もしそうなら、アプリケーションから定期的に強制的にフラッシュしてくれれば問題は解決するはずだが・・・
 試しに、別のPCのネットワークドライブにキャプチャを記録してみると問題ない。そこで、まずHDDを疑って、WDC WD5000AACS ×2台でRaid0にしてあるキャプチャ保存用のドライブを、HGST HDT725050VLA260 ×2台に変更してみたが、やっぱり問題は発生する。 orz
 問題はHDDへの書き込み間隔が空き過ぎる事にあるはずなので、別のプログラムで一定の間隔でHDDへのアクセスが起きるようにしてみる。ただファイルを読み書きするだけでは、OSの方でバッファリングされてHDRECSと同じなので、やはり強制的にフラッシュしなければならない。手っ取り早く、JavaScriptで書くが、普通には強制的にフラッシュすることはできないので、ファイルをオープンして、数バイト書き、ファイルをクローズすることで、フラッシュするようにし、これを0.5秒間隔で実行させる。
 結果、いまのところ問題は解決したように見える。暫くこれで様子を見よう・・・
----
本日の御託
で、なんで単に「容疑者」でなくて「元社長」なんだ?



コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://diesaliquanti.blog.fc2.com/tb.php/465-8bd1817b
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

まとめ

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