macOSやiOSで特定サイトをアクセス禁止する方法

デジタルデトックスや、いわゆるデジタルミニマリズムを実践したいとき。 「つい開いてしまうサイト」を物理的に遮断するのは、かなり有効です。 時間やお金を浪費していると感じつつ、なかなかやめられない。 私にとっては X、Amazon、Yahoo!ニュース がそれにあたります。 意思の力に頼らず、環境で制御する。 その具体的な方法を紹介します。 結論から言うと、macOS は /etc/hosts、iOS はスクリーンタイムを使い、どちらもドメイン単位でアクセスを遮断します。 この記事では、その2つの手順と、実際にやってみて分かったつまずきやすいポイント(www の有無、ブラウザの再起動、あえて解除を面倒にしておく考え方)をまとめています。 特別なアプリは使わず、Mac と iPhone の標準機能だけで完結する内容です。 macOS編 macOSでは /etc/hosts を編集することで、ドメイン単位でアクセスを遮断できます。 ターミナルで以下を実行します。 sudo vi /etc/hosts アクセスを禁止したいドメインを 127.0.0.1 に向けます。 127.0.0.1 x.com 127.0.0.1 amazon.co.jp 127.0.0.1 www.amazon.co.jp 127.0.0.1 news.yahoo.co.jp 保存後、ブラウザを再起動すればアクセス不可になります。 ここで一つつまずきやすいのが www の有無です。 amazon.co.jp だけを登録しても、www.amazon.co.jp で開かれると素通りしてしまいます。 私は www ありと www なしの両方を書いておくようにしています。 また、ブラウザを開いたまま設定しても、すぐには効かないことがあります。 タブを開いたままだと前の接続が残るので、保存後はブラウザを一度終了して開き直すと確実です。 この方法は非常に強力です。 私は2年ほど前から X(旧Twitter)をこの方法で遮断していますが、それ以来一度も閲覧していません。 今回さらに Amazon と Yahoo!ニュースも追加しました。 この設定の良いところは、「解除が面倒」な点です。 久しぶりにアクセスしようとしてもブロックされる。 「あれ、解除どうやるんだっけ?」と一瞬立ち止まる。 その一瞬が、冷静さを取り戻す時間になります。 そして多くの場合、「やっぱり見なくていいか」となるのです。 iOS編 上記はmacOS限定の設定です。 当然、iPhoneからは普通にアクセスできてしまいます。 そこで iOS 側でもドメイン単位のブロックを行います。 設定手順は以下です。 設定アプリ → スクリーンタイム → コンテンツとプライバシーの制限 → App Store、メディア、Web、およびゲーム → Webコンテンツ → 「成人向けWebサイトを制限」 ...

公開: 2026年2月17日 · 更新: 2026年6月3日 · Toshihiko Arai
localhostで動くHugoプレビューがcloudflaredとCloudflare Tunnelを通ってHTTPSの外部URLへ公開される構成図

Hugoのローカルプレビューを固定URLで外部共有できるCloudflare Tunnel

Cloudflare Tunnelを使うと、手元のPCやVPSで動いているHugoのローカルプレビューを、ポート開放なしでHTTPSの外部URLとして公開できます。 自分のブラウザだけで確認するならlocalhost:1313で十分ですが、誰かに見てもらうには外からアクセスできるURLが必要です。 開発中に一時的に共有したいだけなら、cloudflared tunnel --urlで十分です。 同じURLを継続して使いたい場合は、Cloudflare管理下の独自ドメインをTunnelへ紐付けます。 この記事では、一時URLで試す最短手順と、preview.example.comのような固定URLにする手順を分けて整理します。 先に結論 Hugoのローカルプレビューを一時的に外部共有したいだけなら、次の2ステップで足ります。 Hugoのローカルサーバーをhttp://localhost:1313で起動する 別ターミナルでcloudflared tunnel --url http://localhost:1313を実行する これでtrycloudflare.comの一時的なHTTPS URLが払い出されます。 確認相手へそのURLを送れば、相手は自分のブラウザからHugoプレビューを見られます。 同じURLを継続して使いたい場合だけ、cloudflared tunnel login、cloudflared tunnel create、config.yml、cloudflared tunnel route dnsへ進みます。固定URL化する場合は、Cloudflareに追加済みのドメインと、Cloudflare側のDNS管理が必要です。 Cloudflare Tunnelでできること Cloudflare Tunnelは、ローカルやprivateなoriginをCloudflareへつなぐための仕組みです。 Hugoのプレビュー用途では、次のような場面で便利です。 公開前の記事やデザインを、固定URLで確認してもらいたい ルーターやVPS側のinboundポートを開けずに、外部から見える確認URLを作りたい 手元のHugoサーバーを、HTTPSでスマホや別のネットワークから確認したい 最初は一時URLで試し、必要になったらpreview.example.comのような固定URLにしたい 逆に、公開サーバーとして恒久運用するなら、Tunnelだけでなく、再起動、ログ、監視、nginx側の設定も別で考える必要があります。VPS上で本番配信する流れは、Ubuntuでnginxを導入して最初の公開設定をする手順 も参考になります。 Cloudflare Tunnelは何をしているのか cloudflaredは、手元のPCやVPS上で動くCloudflare Tunnel用のコネクタです。 外から直接localhost:1313へアクセスするのではなく、cloudflaredがローカル側からCloudflareへoutbound接続を張ります。ブラウザから来たリクエストはCloudflareに入り、Tunnelを通ってcloudflaredへ届き、最後にHugoのローカルサーバーへ流れます。 この形にすると、ローカル側でinboundポートを開けたり、ローカルサーバーのために証明書を直接管理したりしなくても、HTTPSの外部URLを作れます。 インストール macOSならHomebrewでcloudflaredを入れます。 brew install cloudflared 最短で一時URLを発行して試す まずHugoのローカルサーバーを起動します。 hugo server --bind 127.0.0.1 --port 1313 --disableFastRender 別ターミナルで、HugoのローカルサーバーをCloudflare Tunnelへ渡します。 cloudflared tunnel --url http://localhost:1313 実行すると、https://xxxx.trycloudflare.comのような一時URLが表示されます。 このURLは開発・テスト・一時共有向けです。固定URLや継続運用が必要になったら、次のnamed tunnel構成へ進みます。 Hugo以外の開発サーバーでも考え方は同じです。ViteやNext.jsなどでlocalhost:3000やlocalhost:5173を使っている場合は、--urlに渡すポートを自分の開発サーバーに合わせます。 独自ドメインで固定URLにする 一時URLではなく、https://preview.example.com/のような固定URLでHugoプレビューを共有したい場合の手順です。 ドメイン準備 固定URL化するには、対象ドメインをCloudflareに追加し、DNSをCloudflareで管理できる状態にしておきます。 ...

公開: 2026年1月9日 · 更新: 2026年4月28日 · Toshihiko Arai

リモートサーバーへ root ログインしてシェルを実行するまでを半自動化する

サーバーの再起動やミドルウェアの再起動を、 手作業で何度も繰り返す 必要が出てくる場面があります。 1台だけならまだしも、ミラーサーバーや複数台構成になってくると、同じ操作を台数分だけ繰り返すのは現実的ではありません。 作業時間がかかる 操作ミスが起きやすい 精神的にも地味に消耗する この記事が向いているのは、次のようなケースです。 自分が管理している Linux サーバーで、同じ再起動作業を何度も繰り返している root パスワードをスクリプトに埋め込まずに、手元の負担だけ減らしたい nginx の再起動手順を、毎回同じ形で安全寄りに実行したい 逆に、第三者が管理する共有サーバーや、本番で慎重な承認フローが必要な環境では、そのまま流用せず運用ルールに合わせてください。 そこで今回は、 「リモートサーバーに接続し、root 権限で nginx を安全に再起動するまで」 という一連の流れを、できる限り自動化できないかを考えてみました。 先に結論 この方法のポイントは、危険なところだけ人が握り、定型処理だけを機械に任せる ことです。 SSH ログインは手動 su - root のパスワード入力も手動 nginx の停止確認、待機、再起動だけ自動 完全自動化より地味ですが、安全性と省力化のバランスが取りやすい のが利点です。 やりたいことの流れ 今回自動化したい処理は、次のようなステップです。 homepage ユーザーで SSH 接続 (※ パスワード入力が必要) root ユーザーに切り替え (※ パスワード入力が必要) nginx を停止 nginx プロセスが完全に終了するまで待機 nginx を起動 完全な自動化を目指すなら、sshpass や expect を使ってパスワード入力まで含める方法もあります。 しかしそれらは追加ツールの導入が必要で、 パスワードをスクリプトに持たせるリスク も無視できません。 そこで今回は、 SSH と su のパスワード入力だけは手動 それ以外の処理はすべて自動 という、現実的で安全寄りな落としどころを選びました。 多少不格好ではありますが、それでも作業負荷は大幅に減らせます。 実際に作ったシェルスクリプト 以下が今回完成したスクリプトです。 SSH 接続後、su - root のパスワードを手動入力するだけで、nginx の安全な再起動まで一気に実行できます。 ...

公開: 2026年1月9日 · 更新: 2026年4月22日 · Toshihiko Arai

【macOS】IME & キーボード操作 チートシート

macOS のことえり環境でキーボード入力を効率化したい方向けのチートシートです。変換操作・カーソル移動・記号入力・システムショートカットを用途別に整理しました。macOS 26 / ことえりの標準設定を前提としています。ターミナルや IDE を毎日使う開発者が「これだけ覚えれば快適」という操作をまとめています。 環境情報 項目 内容 OS macOS 26 日本語入力 ことえり 文字入力・変換 IME が有効な状態(ひらがなモード)で機能するショートカットです。 操作 内容 Ctrl + J ひらがなに変換(ライブ変換中も可) Ctrl + K 全角カタカナに変換(ライブ変換中も可) Ctrl + L 全角英数字に変換 Ctrl + ; 半角英数字に変換 Ctrl + Shift + R 再変換(変換結果をやり直す) 入力後に誤変換に気づいても、対象テキストを選択して Ctrl + Shift + R で再変換できます。 カーソル操作・編集 Emacs 由来のキーバインドが macOS 全体で使えます。テキストエディタ・ブラウザのアドレスバー・ターミナルでも共通して動作します。 操作 内容 Ctrl + P 一行上へ移動 Ctrl + N 一行下へ移動 Ctrl + F 一文字右へ進む Ctrl + B 一文字左へ戻る Ctrl + A 行頭へ移動 Ctrl + E 行末へ移動 Ctrl + H 左の文字を削除(Backspace と同等) Ctrl + D 右の文字を削除(Delete と同等) Ctrl + K カーソル位置から行末まで削除 記号入力・特殊かな入力 ローマ字入力モード中に使える入力テクニックです。 ...

公開: 2025年11月7日 · 更新: 2026年5月24日 · Toshihiko Arai

【macOS】IntelliJ IDEA ショートカット チートシート

IntelliJ IDEAをmacOSで使うときに、手元でよく使うショートカットキーをまとめたチートシートです。エディタ分割、プロジェクトツリー、検索、最近使ったファイルなど、毎日の開発で呼び出す頻度が高いものを中心にしています。 一部は自分のキーマップに合わせたカスタマイズ設定です。JetBrains製のIDEであれば、PyCharm、PhpStorm、GoLand、CLion、WebStorm、DataGripなどでも近い感覚で使えます。 キーマップ設定ファイル 設定ファイルパス ~/Library/Application Support/JetBrains/IntelliJIdea2024.3/keymaps/macOS 1.xml エディタ操作 ショートカット 機能 補足 Cmd + D ソースコードを 横分割 して表示 カスタマイズ設定 Cmd + Shift + D ソースコードを 縦分割 して表示 カスタマイズ設定 Shift + Enter 選択中のファイルを右ペインに表示 分割ビューで便利 Cmd + M ファイルの差分(diff)を開く 比較対象を選択して使用 Cmd + , 設定画面を開く 環境設定・Keymap編集など Cmd + Shift + - 同じ階層のメソッドを一括で折りたたむ 戻す場合は + ナビゲーション ショートカット 機能 補足 fn + Cmd + ← ファイルの 先頭 へ移動 macOS特有のキー操作 fn + Cmd + → ファイルの 末尾 へ移動 〃 Ctrl + Tab スイッチャー表示(タブ切り替え) 最近使ったファイルやツールにすぐアクセス Cmd + 1 プロジェクトツリー表示 左ペインの表示切替 Cmd + 2 ブックマーク表示 よく使うファイルを整理 Cmd + 4 ターミナル表示 内蔵Terminalを開閉 Cmd + 5 ビルド結果表示 ビルド・ログを確認 Cmd + 7 構造表示(Structure) クラスやメソッドの一覧表示 コピー・ペースト関連 ショートカット 機能 補足 Shift + Cmd + V クリップボード履歴から貼り付け 過去コピーした複数内容から選択可能 Shift + Cmd + C ファイルの 絶対パス をコピー 左ペインで選択中に使用可能 検索・ナビゲーション ショートカット 機能 補足 Shift + Shift Search Everywhere クラス・ファイル・シンボル・アクションを横断検索 Shift + Cmd + F Find in Files grep -rl "検索ワード" . に近い動作 スコープ指定可能(プロジェクト全体、モジュールなど) 💡 Search Everywhere は全文検索に加え、 設定項目やメニュー名まで検索できる「超検索」です。 ...

公開: 2025年10月26日 · 更新: 2026年5月6日 · Toshihiko Arai

curlとjqで作る便利シェル集|祝日カレンダー・天気・地震・LLM API

はじめに ターミナルでよく使う処理は、ブラウザを開くより curl や jq でそのまま呼び出す方が手早く済みます。 この記事では、外部のデータや API を使って、手元のシェルを少し便利にする実例をまとめました。zshrc にそのまま入れやすいものを中心にしています。 この記事で扱う内容は次のとおりです。 祝日付きの3か月カレンダーを表示する 気象庁データから天気を表示する 地震情報を一覧で見る LLM API をシェルから呼び出す 後半では、API ではないものの一緒に置いておくと便利だったエイリアスも載せています。 祝日付きカレンダーを表示する まずは、cal コマンドを少し便利にする例です。 cal コマンドはlinuxやmacOSのターミナルでカレンダーを表示できるシェルです。ターミナルで高速表示できるカレンダーは地味に便利で重宝しています。 項目 コマンド 今月のカレンダーを表示 cal 指定した月のカレンダーを表示 cal 3 2024 年間カレンダーを一覧で表示 cal 2024 先月、当月、翌月のカレンダーを表示 cal -3 とくに先月・当月・翌月をまとめて表示する cal -3 が便利なのですが、標準では祝日が出ません。そこで、内閣府が公開している祝日 CSV を合わせて表示するようにしました。 cal -3; curl -s https://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv | iconv -f SHIFT-JIS -t UTF-8 | grep -E "`date -v-1m '+%Y/%-m/'`|`date '+%Y/%-m/'`|`date -v+1m '+%Y/%-m/'`" calコマンドの実行イメージ: calコマンドの実行イメージ % cal3 4月 2026 5月 2026 6月 2026 日 月 火 水 木 金 土 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 2 3 4 1 2 1 2 3 4 5 6 5 6 7 8 9 10 11 3 4 5 6 7 8 9 7 8 9 10 11 12 13 12 13 14 15 16 17 18 10 11 12 13 14 15 16 14 15 16 17 18 19 20 19 20 21 22 23 24 25 17 18 19 20 21 22 23 21 22 23 24 25 26 27 26 27 28 29 30 24 25 26 27 28 29 30 28 29 30 31 2026/4/29,昭和の日 2026/5/3,憲法記念日 2026/5/4,みどりの日 2026/5/5,こどもの日 2026/5/6,休日 内閣府が公開している祝日 CSV を curl で取得し、iconv で SHIFT-JIS から UTF-8 に変換しています。そのうえで cal -3 の表示に合わせて、先月・当月・翌月の行だけを grep で拾っています。 ...

公開: 2025年9月10日 · 更新: 2026年4月20日 · Toshihiko Arai

【JetBrains系IDE】 IntelliJ IDEA の便利な設定(WebStorm・PhpStorm)

この記事は、IntelliJ IDEA / WebStorm / PhpStorm を毎日の開発で使っている人向けに、自分が実際に使っていて効果が大きかった4つの設定(File Watchers での SCSS 自動コンパイル、分割 JS の自動結合、フォントとサイズ、Markdown の Run gutter icon)を忘備録としてまとめたものです。全部を一度に入れる必要はなく、気になったものから1つずつ試して、合わなかったら戻せばOKです。JetBrains 系で UI が共通なので、PhpStorm や GoLand でも同じ手順で設定できます。 ショートカット系の設定や使い方は別記事に分けています。あわせて読むと作業効率がさらに上がります。 【macOS】IntelliJ IDEA ショートカット チートシート Clion x PlatformIOでESP32(Arduino)開発 はじめての Spring Boot 〜 JavaでWebアプリケーション 私は多くの言語でJetBrains系IDEのお世話になってます。もちろん、JetBrains All Products Pack を購入してます。 言語 IDE Java・JSP・Spring Boot IntelliJ IDEA JS・HTML WebStorm PHP・Laravel PhpStorm C++・Arduino・ESP32 CLion PostgreSQL・MySQL・SQLite DataGrip Python PyCharm GO言語 GoLand Android Android Studio こんな具合に、よく使う言語のほとんどが JetBrains からIDEがリリースされています。インターフェースや操作感も統一されているので、一度慣れてしまうとJetBrains以外のIDEで開発したくなくなります。以前はiOSアプリ開発のためにXCodeをよく使ってましたが、使い勝手が違いすぎて触りたくありません(笑)。 VS Codeもすっかり出番が少なくなりましたねぇ。 さて、そんな JetBrains系IDEの便利な設定を忘備録として残します。IntelliJ IDEA や WebStorm で使う設定が中心ですが、JetBrains系で他のIDEでも応用できる設定だと思います。ご参考ください。 ...

公開: 2025年9月2日 · 更新: 2026年5月30日 · Toshihiko Arai

GitHub CI/CD で VPS へ自動デプロイするまで

この記事では、GitHub で管理している JS ライブラリプロジェクトに対して、タグをpushするだけで VPS へ SSH + rsync で自動デプロイされる GitHub Actions ワークフローを最小構成で作った手順をまとめています。SSH 鍵の準備・GitHub Secrets の登録・deploy.yml の作成まで一通り実装でき、手作業でのデプロイが不要になります。CI/CD の仕組みが「GitHub上のLinuxでシェルを実行するしくみ」だと分かると、他のプロジェクトへの応用も簡単です。 はじめに 2025年の今回初めてGitHubのCI/CDを使ってみてとても便利だったので、やり方・手順を備忘録として残しました。 今回対象となるプロジェクトは個人で開発している小さなjsライブラリプロジェクトです。 https://apppppp.com/kit/nu-js/ https://github.com/aragig/nu-js GitHubで管理・公開しているこのnu.jsにタグをつけてプッシュした時点で、以下の処理をCI/CDで自動化させます。 バージョンタグを取得する コンテンツをビルドする プレースホルダーに①を埋め込む 公開用のVPSサーバーへSSHで接続 rsyncでコンテンツを同期する と、こんな感じです。シェル一発でもできる作業なので、わざわざCI/CDで実現しなくても良さそうではありますが、実際やってみるとこれが結構便利で楽しかったです。なるほど、CI/CDというのはGitHub上にLinuxを立ち上げて、pushなどをトリガーにしてシェルを実行させるような仕組みなのですね! 仮想のmacOSなども実行できるので、iOSアプリのリリース作業もできそうです。ちょっと今まで使ってこなかったのが、損した気分になるほどCI/CDって便利かもです。 CI/CDとは CI/CDは、ソフトウェアを「こまめに作って、こまめに届ける」ための自動化の仕組みで、まさに先に示した通りです。 CI(Continuous Integration)は、開発者がコードをpushするたびに、自動でビルド・テスト・静的解析を実行して、早い段階で不具合を見つけるしくみ。 CD(Continuous Delivery / Deployment)はテストを通った成果物を「いつでも本番に出せる状態」に自動で用意する(ステージング配置やアーティファクト化まで)。テスト通過後に「本番へ自動リリース」までやる。 こうすることで、早期にバグ検知、手作業ミス削減、リリース頻度向上、レビューと承認の見える化できます。 手順① サーバ側:デプロイ鍵を用意 ここからは実際に個人プロジェクトのデプロイをCI/CDで自動化させた手順をご紹介します。 ローカル(macOS)で鍵を作って、サーバーの authorized_keys に登録します。 # macOS 側で ssh-keygen -t ed25519 -f ~/.ssh/nujs_deploy -C "nu-js deploy" -N "" # cat 方式 cat ~/.ssh/nujs_deploy.pub | ssh [email protected] 'mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys' 手順② GitHub Secrets を登録 リポジトリ Settings → Secrets and variables → Actions に以下を追加します。 ...

公開: 2025年8月31日 · 更新: 2026年5月30日 · Toshihiko Arai

C++でOpenCVをはじめる|撮影したレシートを自動でトリミング

はじめに OpenCV を使って画像を処理するプログラミングを練習していきます。最終的に 撮影したレシートを自動でトリミング できるところをゴールとして、画像の読み込みからエッジ検出、輪郭抽出までを4つの LESSON で順番に進めます。 前提となる環境とゴールは次の通りです。 OpenCV4(C++版)を使います C++11 で書きます(iOS アプリへの移植も視野に入れたい都合) macOS(Homebrew)でコンパイルします JetBrains 社の IDE CLion で開発します ゴール: スマートフォンで撮影したレシートの四隅を検出して、背景を透過した PNG として書き出す なお、Python で OpenCV を触ったことがある人向けに、図形変換のおさらいとして 【Python】OpenCVで画像をアフィン変換【移動・拡大・回転・剪断】 も参考になります。 OpenCVのインストール ここでは Homebrew で OpenCV 本体を入れます。あとから CLion に同じパスを教えてあげる前提なので、どのコマンドで入れたかを覚えておきます。 項目 インストールコマンド 最新版 brew install opencv バージョン4 brew install opencv@4 ダウンロードとビルドに、それなりの時間がかかるので気長に待ちましょう。 プロジェクトの準備 CLion 側で OpenCV を #include できる状態を作るのがこの節のゴールです。プロジェクトを作って、CMakeLists.txt に OpenCV を組み込んで、CLion から OpenCV のヘッダを解決できるようにします。 プロジェクト構造 CLion でC++11のプロジェクトを作成します。C++11をあえて選んでいるのは、iOSアプリへの移植も考慮に入れたいからです。 tree -I cmake-build-debug . ├── CMakeLists.txt ├── main.cpp └── sample.jpg CMakeLists.txt CMakeLists.txt の設定は以下です: ...

公開: 2025年4月15日 · 更新: 2026年5月30日 · Toshihiko Arai

【Python】VidStabで手ぶれ補正【動画編集への道#2】

Pythonで動画の手ぶれ補正をするライブラリ「VidStab」を試した記録です。OpenCVベースの補正を、短いコードで動かせるのが便利なところです。 この記事では、VidStabの基本的な使い方、補正後に出る黒いボーダーを reflect で目立たなくする方法、逆に補正が向かない動画の例をまとめます。Pythonやシェルを使って動画編集を自動化していく企画の第二弾です。 VidStab(Python Video Stabilization) VidStabモジュールは、コアにOpenCVを使用した動画の手振れを修正できるプログラムになります。OpenCVへの理解がなくても、VidStabを利用すれば手っ取り早く手ぶれ補正ができますのでご安心ください。 vidstab と OpenCV のインストール Python3.xで動作させていきます。vidstabをpipでインストールします。 $ pip install vidstab vidstabを動かすにはOpenCVも必要になりますので合わせてインストールしてください。 $ pip install opencv-python $ pip install opencv-contrib-python VidStab で手ぶれ補正する それではさっそく、VidStab で手ぶれ補正してみましょう。自転車に乗りながらスマホをチェストマウントして撮影した動画になります。 元動画(左)ではブレブレだった映像も、手ぶれ補正後はだいぶマシになったように感じます。 プログラムは次のとおりです。たったの数行で手ぶれ補正ができちゃいます。 from vidstab import VidStab stabilizer = VidStab(kp_method='ORB') stabilizer.stabilize(input_path='../build/in.mp4', output_path='../build/out_orb.avi') VidStabを使えば、驚くおほど簡単に手ぶれ補正した動画が作れちゃいますね! ただし注意点としまして、avi 形式で保存しないと機能しませんでした。 黒いボーダーを reflect(反射)で埋める 手ぶれ補正すると、端の部分に黒い隙間ができてしまいます。黒い部分を含めないように MoviePyなどでCrop処理しても良いのですが、VidStabのreflect(反射)機能を使うことで目立たなくさせることもできます。 from moviepy.editor import * from moviepy.video.tools.segmenting import findObjects import moviepy.video.fx.all as vfx import os def crop(clip, region, margin = 50): w,h = clip.size # clip = vfx.crop(clip, x1=(w/4), width=(w/2)) clip = clip.set_mask(region.mask).set_pos(region.screenpos) clip = vfx.crop(clip, x1=(margin), width=(w - margin * 2), y1=(margin), height=(h - margin * 2) ) return clip.resize(region.size) if __name__ == "__main__": # im = ImageClip("splitter_720x1280.png") im = ImageClip("../assets/splitter_800x900.png") # Loacate the regions, return a list of ImageClips regions = findObjects(im) # region ( リージョン): 範囲、領域、分野、(身体の)部位の意味 print(len(regions)) # ←これが0なら、マスク画像の作成で何か間違ってる。(黒枠でちゃんと囲えてないとか、透過だとダメで白黒でやる) clip1 = crop(VideoFileClip("../build/out_orb.avi", audio=False), regions[0]) clip2 = crop(VideoFileClip("../build/out_orb_reflect.avi", audio=False), regions[1]) final_clip = CompositeVideoClip([clip1, clip2], im.size).subclip(0.5, clip2.duration - 0.5) out_path = "../build/pip_orb_reflect.mp4" final_clip.write_videofile(out_path) os.system('open ' + out_path) 他にもkp_method には replicate(複製)が指定できますので各自で試してみてください。 ...

公開: 2022年7月25日 · 更新: 2026年5月2日 · Toshihiko Arai