2013/07/31(水) [n年前の日記]
#1 [prog] Youtubeやニコニコ動画の推奨動画サイズが分からない
640x360で動画を作っておけばいいのかなと思っていたけど、検索してみたら、どうも怪しく。
とりあえず、512x288、640x360、1280x720に対応しとけばいいのかな。となると…。
今まで 640x360 で画面レイアウトを考えていたけど、それだと512x288にした際にはみ出してしまうので、全部 512x288 でレイアウトし直し。Inkscape 上で、ボタンの大きさを変更したり、位置を変えたりして、全パーツをチマチマとエクスポート。単純に全部縮小すればいいのではと思ったりもしたけど、それをやると文字が読めなくなったので。
- 512x288 (16:9)
- 512x384 (4:3)
- 640x360 (16:9)
- 640x384
- 640x480 (4:3)
- 854x480
- 1280x720 (16:9)
とりあえず、512x288、640x360、1280x720に対応しとけばいいのかな。となると…。
今まで 640x360 で画面レイアウトを考えていたけど、それだと512x288にした際にはみ出してしまうので、全部 512x288 でレイアウトし直し。Inkscape 上で、ボタンの大きさを変更したり、位置を変えたりして、全パーツをチマチマとエクスポート。単純に全部縮小すればいいのではと思ったりもしたけど、それをやると文字が読めなくなったので。
[ ツッコむ ]
#2 [ruby] DXRubyのRenderTargetでハマり中
画面に表示したソレを、全フレーム分、画像ファイルとして保存したいのですが。最低限、24FPSで1分30秒ぐらいは保存したい。
今までは、Window.getScreenShot() を使って保存してたのだけど。それだと、他のウインドウが上に重なった際に、そのウインドウの内容まで一緒に保存してしまってよろしくないことに気付いたり。
そこで、RenderTargetに一旦描画して、RenderTarget#toImage で Image に変換して、Image#save で画像ファイルとして保存するように変更してみたわけで。これなら、内部で画像を作って保存できるから、前述のような問題は出ないはずだと…。
ところが、数百フレームほど保存すると、セグメントエラーが発生してしまって。Windows.getScreenShot() を使ってる時は出なかったんだけどなあ。うーん。
まあ、元々ドキュメントにも、toImage や save は遅いから毎フレーム呼ぶようなことは避けろ、と書いてあったりするので、もしかすると今までそこそこ動いてたほうが不思議なのかなと思ったりもするわけですけど。
例外を補足して、何度かリトライするように書いてみたのだけど、どうも一度エラーを吐くと、その後は正常動作しないようで。RenderTarget の再生成をしてみたり、sleep を入れてみたり等してみたのだけど、上手く行かず。
今までは、Window.getScreenShot() を使って保存してたのだけど。それだと、他のウインドウが上に重なった際に、そのウインドウの内容まで一緒に保存してしまってよろしくないことに気付いたり。
そこで、RenderTargetに一旦描画して、RenderTarget#toImage で Image に変換して、Image#save で画像ファイルとして保存するように変更してみたわけで。これなら、内部で画像を作って保存できるから、前述のような問題は出ないはずだと…。
ところが、数百フレームほど保存すると、セグメントエラーが発生してしまって。Windows.getScreenShot() を使ってる時は出なかったんだけどなあ。うーん。
まあ、元々ドキュメントにも、toImage や save は遅いから毎フレーム呼ぶようなことは避けろ、と書いてあったりするので、もしかすると今までそこそこ動いてたほうが不思議なのかなと思ったりもするわけですけど。
例外を補足して、何度かリトライするように書いてみたのだけど、どうも一度エラーを吐くと、その後は正常動作しないようで。RenderTarget の再生成をしてみたり、sleep を入れてみたり等してみたのだけど、上手く行かず。
[ ツッコむ ]
以上、1 日分です。