CamStudio 2.0 の出力する HTML ファイルには問題がある。HTML は手で修正して,次のバージョンアップを待つ。
■ ■ ■
先の記事で(nlog(n): 4BALLS にハマる),Windows 動作画面の動画を作成するのに CamStudio というフリーソフトを使った(CamStudio - Free Screen Recording Software)。CamStuio は,ファイルを AVI 形式で保存し,フラッシュの形式 SWF に変換することができる。SWF に変換すると,動画のエッジはぼやけずに圧縮され,容量は約 1/10 になる。Windows XP に付属のムービーメーカーは WMV 形式に圧縮でき,圧縮率は自由に設定できるが,どちらかというとデジカメの動画を処理するのに適している。Windows の動作画面を圧縮するとぼやけてしまうのだ。適する対象が違うのは圧縮方法が違うからであり,これはビットマップ画像を GIF に圧縮するか JPG に圧縮するかということに似ている。画面イメージは GIF が適しているし,写真は JPG が適している。

CamStudio Recorder
さて,現在の最新版の CamStudio 2.0 にはバグがある。AVI から SWF に変換する際に SWF を埋め込んだ HTML ファイルも同時に生成するが,この HTML の記述が間違っているのである。バグといっても,HTML なのでエディタで修正することができる。
4balls.avi という AVI ファイルを SWF に変換すると,4balls.swf というフラッシュファイルと,4balls.swf.html という HTML ファイルができる。4balls.swf.html の内容は次の通り。
<HTML>
<HEAD>
<TITLE> 4balls.swf </TITLE>
</HEAD>
<BODY>
<!-- Flash movie tag-->
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
WIDTH="324" HEIGHT="331" id="4balls.swf" ALIGN="">
<PARAM NAME=movie VALUE="4balls.swf">
<PARAM NAME=quality VALUE=high>
<PARAM NAME=bgcolor VALUE=#ffffff>
<EMBED src="4balls.swf" quality=high bgcolor=#144 WIDTH="331" HEIGHT="16777215" NAME="4balls.swf" ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">
</EMBED>
</OBJECT>
</BODY>
</HTML>
HTML のコードとして多少アレではあるということは別にして,問題は強調部分である。HEIGHT には「16777215」というとんでもなく大きな値が設定されているため,この HTML を Firefox 2.0 で開いてもフラッシュの動画を見ることはできない。Internet Explorer 6.0 では見ることができる。IE は height 属性よりも動画本体の大きさを優先するようだ。この「16777215」は16進表記すると「FFFFFFF」となる。つまり,背景色の値なのである。CamStudio のフォーラムですでに取り上げられているように,背景色,幅,高さの値がずれて設定されてしまっているのだ(CamStudio - Bug in html export)。幸いにも,object タグ内の属性には正しい値が設定されているので,それと同じ値に変更すればよい。
nlog(n): XHTML でフラッシュを表示するには にしたがって書き直すと,例えば次のようになる。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>4balls.swf</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<!-- Flash movie tag-->
<object type="application/x-shockwave-flash" data="4balls.swf" width="324" height="331" id="fourballs.swf">
<param name="movie" value="4balls.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#FFFFFF" />
<p>This content requires the <a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash&promoid=BIOW">Adobe Flash Player</a>.</p>
</object>
</body>
</html>
2007年8月10日追記:
同様のソフトに Jing というものがあるそうです。動画の保存形式は SWF です (窓の杜 - 【NEWS】手軽にデスクトップ上の操作を録画できる動画キャプチャーソフト「Jing」)。
2009年4月28日追記:
CamStudio で長時間の録画を試してみました (nlog(n): CamStudio でキャプチャした動画を早回しで)。
Posted by n at 2007-02-24 02:30 | Edit | Comments (6) | Trackback(1)
質問なんですけど、
私はcamstudio2.0英語版を使ってるんですが
15分間の動画なら保存できるのに、だいたい20分以上の録画になると、
Unable to open video file
ってでて、保存ができません
どうしたらもっと録画時間をのばせますか?
分かる方教えてください
ちなみにvistaでcpuはコア2デュオのいいやつです
Posted by: じゅん at January 23, 2009 11:02じゅん さん
Posted by: n at January 24, 2009 16:55ドキュメントを見てみたのですが,録画時間に関する制約は書いてないようです。
保存できている15分のファイルのファイルサイズはどのくらいになっていますか?
20分以上の録画をすると,avi のファイルサイズが 2GB を超えてしまって保存できなくなる,ということにはなっていませんか?
突然の訪問で失礼致します。
camstudio 2.0を使っていますが、上記の方同様で
20分以上の録画で、あとで再生しようとしても出来ません。 (動画が開けませんでした とエラーが出てしまいます。)
この場合、再生できるようにする方法ってあるのでしょうか? 大切なデーターのため、困ってしまって・・・
Posted by: nob at March 04, 2009 10:03nob さん
「動画が開けませんでした」というエラーであるとすれば,CamStudio で作成したファイルだとしても CamStudio 関連で調べても解決しません。破損した動画ファイルの修復方法として調べるしかないと思います。
試しに,私のPCを使って,Windows Vista + CamStudio 2.0 で動画を作成してみましたが,1時間の録画が可能で,再生も問題なくできました。画面サイズを248x168にしたところ,ファイルサイズは121MBでした。
Posted by: n at March 04, 2009 22:09突然の書き込みに関わらず、丁重なレスを頂き、感謝してますっ。
早速、調べてみて、修復ソフト? DivFix でやってみましたが、うまくいきませんでした。
やはりそう簡単にはいかないものですね? 笑)
なにかオススメの修復ソフト等、ありますでしょうか?
Posted by: nob at March 05, 2009 15:52nob さん
Posted by: n at March 06, 2009 07:12修復ソフトについては使ったことがないので,詳しくないです。
DivFix には後継の DivFix++ というのがあるようです。
http://divfixpp.sourceforge.net/
他にもあるようですので,「avi 修復」をキーワードにするなどして探してみてください。