2026/03/12(木)Strawberry PerlでImage::Magick, DBD::Pg, DBD::mysqlをEXE化

最新Strawberry Perl 5.42で、PerlMagickを含むWindows用EXEを生成する方法。

Strawberry Perlのインストール

Strawberry Perlのサイトから、ダウンロードしました。現時点で最新は「5.42.0.1」。形式はどれでも構わないと思いますが、個人的にPortableを選びました。

以下 c:\strawberry-perl-5.42.0.1 にインストールしたものとして話を進めます。

続きを読む

2015/11/09(月)IPカメラ(Webcam)リレープログラム / ip-camera-relay.pl

IP Cameraの映像を中継するプログラムです。以下の機能があります。

  • IPカメラへの自動再接続。
  • 複数のIPカメラを登録し、接続できたカメラの映像を中継する。接続が切れたら、次に接続できたカメラに接続する。
  • IPカメラに接続できていない時は、指定した画像(ブランクイメージ)を代わりに送信する。

VLCなどのIPCamストリーム受信ソフトでは、カメラとの接続が切れた場合に自動再接続を行ってくれないものがあります。またカメラと接続が切れたときにブランク画像を挿入したいこともあり、それを実現するためのソフトになります。

プログラム

Gistに置いたので、適当に拾ってください。

使い方

$ ip-camera-relay.pl -p 8888 http://(camera-ip):port/stream-path

クライアント接続用に8888番ポートを開き、指定したカメラに接続します。カメラURLはブラウザから接続するURLではなく、ビデオストリームのURLを指定してください*1

複数のカメラを指定すると、それぞれを順番に接続します。最初に接続できたストリームをクライアントに配信し、カメラとの接続が切れたら次に接続できたカメラの映像を送ります。

どのカメラとも接続できない時は、ブランク画像(標準では640x480の青い画像)を送信します。

その他オプションはヘルプを参照してください。

*1 : ブラウザから接続したりカメラの仕様書を見れば、書かれているかと思います。

WebCamのプロトコル

続きを読む

2015/11/06(金)UPnP/SSDPマルチキャスト中継プログラム(DLNA用)

UPnPのマルチキャストパケットを中継するためのプログラムです。通常、同一ネットワーク内でしか使用できないUPnPを、ルーターを超えて使用できるようになります。

想定

  • DLNAサーバとクライアント(またはコントローラーとレンダー)がルーターを超えて存在する。
  • それぞれネットワークAとBとすれば、A内のPCとB内のPCは互いに通信可能である(NATされていない)。
  • どちらのネットワークにも属するPCが存在する。

「WiFiと有線LAN環境を同一ネットワークにしたくない」ただそれだけなのですが、そのせいでUPnP/DLNAが超えられず大変苦労しました……。

続きを読む

ActivePerl 5.10でPARをインストール(Perlのexe化)

はてブ数 2009/08/24プログラム::Perl

この記事には古くなっています。最新情報はこちら

はじめに

ActivePerl5.8では無理やりithread対応のPARをインストールしたり色々苦労がありましたが、ActivePerl5.10ならば比較的すんなり行きそうなので環境を構築してみました。

インストール

ActivePerl5.10をオフィシャルから落としてインストール。インストール先はc:\usrにしました*1。インストール時にPPMを入れ忘れないようにしてください。

Windowsのシステム環境変数PATHに次を追加します。後者がppのパスになります。

;c:\usr\bin;c:\usr\site\bin

PPMでPARとPAR-Packer(ppコマンド)を導入します。

>ppm install PAR
>ppm install http://www.bribes.org/perl/ppm/PAR-Packer.ppd

これでppコマンドが使えるようになります。

*1 : こうすると、c:\usr\bin\perl でperlが実行できる。

動作テスト

試しに、mixi_exportをexe化してみます。

>pp -o mixi_export.exe mixi_export.pl

無事うまく変換できました。

ひそかな人気アプリwmrelayも、Perl5.8時代は標準状態のPARで変換するとWin32ライブラリを読み込まずいろいろ大変だったのですが、Perl5.10では(必要なライブラリインストール後)あっさり変換できました。

5.16の場合

>ppm install PAR::Packer

\usr\lib\Config.pm の60行目付近を修正します。

- $^V eq 5.16.3
+ $^V eq 5.16.3 or $^V eq 5.16.0