2003年08月13日
川俣晶の縁側ソフトウェア技術雑記total 4226 count

続・Windows MediaエンコーダをC#から呼び出すプログラミングのドタバタ記録

Written By: 川俣 晶連絡先

 さて、これは「Windows MediaエンコーダをC#から呼び出すプログラミングのドタバタ記録」( https://mag.autumn.org/Content.aspx?id=20030812221719 )の続編です。

 前回の最後で、250GBのHDDの1台分を変換するのに約31日を要するという試算が出て大ピンチに陥りましたがが、ともかく対策を考えねばなりません。

 まず、ちょっと調子の悪いところがあるものの、十分に使い物になるパソコンを、エンコード専用に割り当てることにしました。Pentium III/733MHzと非力で、30分のVideoCD互換MPEG1画像の変換に1時間40分を必要とします。前回の試算では2倍の時間つまり1時間という計算だったのですが、それよりもかなり処理時間が増えることになります。ですが、作業や私用で使うパソコンを占有されるよりはマシです。

 次の問題は、数十日の連続運転に対する不安です。過去の経験上、時々はリブートした方が安全ですし、途中で変なことが起きた後、その後の作業結果が全滅というのも困ります。更に今は夏場です。真夏のパソコンの連続運転など、とても信じられるものではありません。

 そのようなわけで、変換プログラムに以下の機能を付加することにしました。

 まず、中断機能です。これは、即座に中断して変換中のデータを放棄するものと、今変換中のものが終了してから中断する機能を付けました。これで、「今日はここまで。続きは明日」という状況に対応できます。

 次は、指定日付時刻を過ぎたら終了する機能です。これは夏場に、暑い昼間を避けて変換するための機能です。夜に変換を開始させ、朝になったら自動的に作業を終了させるためには、このような機能が必要なのです。

 最後は、自動シャットダウン機能です。処理が終わった時点で、自動的にシャットダウンする機能があれば、猛暑の日でも、熱くなる時間帯の前にシステムを落としてしまうことができます。

 そのようなわけで、プログラムの書き換えは順調に進みました。シャットダウンは、APIを呼び出して実現するのはちょっと面倒なので、Windows XP付属のshutdown.exeを起動する方法で実現しました。

 手動でテストしたところ上手く動いたので、よしよし、これで問題解決と思ったのですが……。

 それはとても甘い考えでした。

 実際に稼働させるマシンに、改良したプログラムを入れで実行してみたところ、シャットダウン機能が上手く動きません。そのマシンは、Windows 2000 Professionalのマシンだったので、Windows XP付属のshutdown.exeをコピーして動かしたのですが、最後に電源が切れず、「電源を切ることができます」というメッセージを表示した状態で終わってしまいました。さすがに自分で書いたプログラムではないので、全く何が問題なのか分かりません。とりあえず、軽くネットサーフィンしたところ、自作のshutdown.exeというコマンドを作っている人がいて、それが「電源が切れないケースがあるのに対応」という変更履歴を持っていたので、それを入手してみました。結果として、ちゃんと電源が切れました。そのためshutdown.exeをこのファイルに入れ替えました。幸い、ファイル名も同じだし、コマンドラインパラメータは無視してくれるので、ソース無修正で動作するようになりました。

 これでやっと運用可能になったかと思いきや……。

 まだまだトラブルが押し寄せてきます。

 この程度で、トラブルの神は私を見放してはくれなかったようです。

 と~のちゃんのデータを詰め込んだ、ちょっと古いメルコの160GB外付けHDDがありました。IEEE-1394とUSB1.1のインターフェースが付いているものです。これをIEEE-1394経由で変換を行うマシンに接続してみました。比較的新しいデータの詰まった大きなドライブよりも、こっちの方が何かあっても被害が少ないという考えによるものです。

 さて、それまでのテストはもっと新しい250GBのモデルで行っていました。どちらのHDDにも、PC本体の電源に連動する機能が付いていて、PCの電源が落ちればHDDの電源も落ちるはずでした。この機能は夏場に自動的に電源を切るには必須のものです。

 その機能は、250GBドライブでは正常に動作していました。しかし、160GBのドライブではずっと電源が入ったままで切れません。なんてこったい! 本体のAC電源ケーブルを抜くと、ドライブの電源が切れるところを見ると、電源オフ状態でも本体から何らかの電力がIEEE-1394ケーブルに供給されているのかもしれません。

 これも原因が分かりませんが、この本体とこのドライブの組み合わせで起こる問題のようです。

 ともかく、今は時間を食っている余裕がないということで、急遽、250GBのドライブからエンコードを実行することに方針転換しました。

 というわけで、やっと実データでの再エンコードを開始しました。

 もう一度試算をやり直してみましょう。30分の番組は約330MBの容量があります。これをエンコードするのに1時間40分つまり100分掛かります。250GBのHDDには、30分の番組が約750本入ることになります。1日12時間(12*60=720分)エンコードを行うとすると、720分/100分=約7、つまり、1日30分番組7本を処理できる計算になります。何日でエンコード完了できるかというと、750本/7(本/日)=約107日というわけで、約107日ということになります。これは約3.6ヶ月に相当します。

 うーん、3ヶ月以上……。ちょっと気が遠くなります。いくら、Pentium III/733MHzは古くなって非力だとはいえ、あまりにとんでもない数字ですね。

 技術の進歩で我々は有り余るCPUパワーを手に入れた、などと言う人がいますが、少なくともここは、そんなものはありません。

 なかなか、とほほな状況です。

Facebook

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20030813231658
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.