読書: Cat's Cradle Get link Facebook X Pinterest Email Other Apps July 11, 2021 Cat's Cradleice-9が出てくる本。Person of Interestででてきたウィルスの元ネタ。登場人物それぞれ勝手なことをして破滅する。科学も宗教も利己的。 Get link Facebook X Pinterest Email Other Apps Comments
LinuxでUSBカメラ映像をストリーミングかつ録画する March 23, 2021 USBカメラの映像をネットワーク越しにストリーミング視聴できるようにしつつ、24時間録画する方法についてメモ。GStreamerを使用した。 ハードウェア Raspberry Pi 3 Logitech C920(H264エンコーダ付き) ストリーミング方法 検討したプロトコルが以下の4つ。 HLS DASH RTMP RTSP 前者2つはHTTPベースなので扱いが楽。ただしレイテンシが数十秒レベルとだいぶ長め。 RTMPはFlashでよく使われていたプロトコル。まぁ新しく使う理由はあまりない。GStreamerにデフォルトでプラグインがあるので、別のサーバに映像を送るのに使えるかもしれない。例えば、NGINXのRTMPモジュールで受けて、HLSで再送するなど。レイテンシ低い。 RTSPはよくIPカメラとかで使われているイメージ。レイテンシ低くて良い。ただしGStreamerから使うのはすこし面倒。 今回はHLSを使うことにした。GStreamerにデフォルトでプラグインがあるので楽だったので。 録画先 NASをCIFSマウントしてそこにMP4ファイルを書き込むことにした。SDカードに直接書き込むのは寿命の観点から避ける。 同様に、HLSの書き込み先もSDカードは避け、メモリ上にした。 mount -t tmpfs -o size=100M /mnt/tmp USBカメラの接続 Raspberry pi上にはUbuntu Serverをインストールした。ドライバは標準で含まれているので、カメラを接続するだけで認識された。 以下はカメラの確認のための手順。 dmesgコマンドでカメラが認識されたことの確認 lsusbコマンドで同様の確認 ls /dev/video*でデバイスファイルが存在することの確認 ファイルパーミッションの設定。今回は自ユーザをvideoグループに追加した。audioグループにも入れておくと良い。 v4l2-ctl --allでカメラ情報の確認。APTでv4l2-toolsをインストールすること。 v4l2-ctl --info --list-formatsで対応フォーマットの確認。 なお、C920は2020年頃からH264のサポートを辞めたそうなので注意。もしH264がサポートされていない場合、Raspberry pi上でのエンコー... Read more
WSL2上でSSH経由のSOCKSプロキシを作りWindowsから使う January 01, 2021 少し難しかったのでメモ。(主にWindowsのUIが) ゴール Windows上のブラウザから、他のサーバー経由でWebにアクセスする。例えば特定のIPアドレスからの接続を許可しているような場合に有効。 VPNやHTTPプロキシを使用しても同じようなゴールを達成できるが、今回はSSHクライアントで標準にサポートされているSOCKSプロキシを使う。プロキシとなるサーバに特別な設定が不要なので簡単。 WSL2上での操作 "-D" オプションを使いながらSSH接続する。 ssh <hostname> -D 1080 これだけで指定したポートでSOCKSプロキシを使うことができる。 試しに使ってみるには、例えば curl --socks5-hostname localhost:1080 www.google.com -vv ここまでは簡単。 Windows上での操作 難しいのがSOCKSプロキシを使うためのWindowsの設定。Settings->Network & Internet->Proxy 結論から言うと、Proxy serverのアドレスとして"socks=localhost"と入力するとよい。 この書き方はStack overflowのどこかで見かけた。動くとも思ってなかったので元URLのメモもしていなかった。このような書き方に関する公式ドキュメントはどこかにはあるのだろうが、自分はまだ見つけられていない。 なお、一度Saveして設定を閉じ、また同じ設定を開くと、アドレスが以下のように変化する。 しかし、このままSaveすると動作しないので、毎回手動で書き直すことが必要となる。 設定後、ブラウザを普通に起動しWebページにアクセスすると、自動的にSSH経由のSOCKSが使われる。 Read more
Raspberry pi 4とUbuntu Server 20.04 64bitでRaspberry pi cameraを使う March 30, 2021 過去には少し面倒な手順が必要だったようだが、現在では簡単。ファームウェアの更新も必要ない。 セットアップ手順 通常通りRaspberry piを起動後、/boot/firmware/config.txtを編集。以下の2行を[all]セクションに追加して再起動。 start_x=1 gpu_mem=128 start_xはカメラドライバ入りファームウェアをロードするための設定。正しく設定できれば、dmesgでstart_xファームウェアがロードされたことを確認できる。 [ 0.052141] raspberrypi-firmware soc:firmware: Attached to firmware from 2021-01-08 14:32, variant start_x gpu_memはカメラの動作に必要なメモリの設定。デフォルトでは70M程度が確保されるらしいが、それでは不足らしい。上の例では128MBを確保している。 最初はconfig.txt内のコメント通りにusercfg.txtを編集して試したが、なぜかうまくいかなかった。原因は調べていないが、とりあえずconfig.txtの編集で問題なく動いている。 これらのオプションの詳細については、以下の公式ドキュメントを参照。 https://www.raspberrypi.org/documentation/configuration/config-txt/boot.md その他注意点 大きすぎる解像度でのキャプチャをリクエストすると、以下のようなエラーがでてフリーズする。 Message from syslogd@ubuntu at Mar 30 03:18:03 ... kernel:[ 9504.087329] watchdog: BUG: soft lockup - CPU#2 stuck for 22s! [sshd:2699] 解像度を低くするか、もしかしたらメモリ容量を増やすと改善するかもしれない。詳しくは調べていない。 Read more
Comments
Post a Comment