FFmpeg 静的ビルド完全版:x264/x265/aom/opus/fdk-aac 対応のフル装備手順
動画編集やストリーミング配信を行う際、FFmpeg は欠かせないツールです。しかし、配布されているバイナリでは必要なコーデックが含まれていなかったり、システムの共有ライブラリに依存していて環境が変わると動作しなかったりする問題に直面することがあります。
そんな課題を解決するのが「静的ビルド」という手法です。本記事では、x264、x265、AV1(libaom)、Opus、fdk-aac といった主要なコーデックをすべて組み込んだ FFmpeg を、依存関係を気にせず動作する静的バイナリとしてビルドする完全手順をご紹介します。初めての方でも迷わず実践できるよう、各ステップを丁寧に解説していきますね。
背景
静的ビルドが必要とされる理由
FFmpeg は動画・音声ファイルの変換、エンコード、ストリーミングなど、マルチメディア処理のスイスアーミーナイフとも言える存在です。しかし、通常のパッケージマネージャー経由でインストールすると、いくつかの制約が生じます。
| # | 項目 | 動的ビルド(通常版) | 静的ビルド |
|---|---|---|---|
| 1 | ライブラリ依存 | システムの共有ライブラリに依存 | すべてバイナリに組み込み |
| 2 | 環境移植性 | 環境が変わると動作しない可能性 | どの環境でも動作 |
| 3 | コーデック対応 | パッケージ提供範囲に限定 | 任意のコーデックを組み込み可能 |
| 4 | バイナリサイズ | 小さい(数 MB) | 大きい(数十 MB) |
| 5 | アップデート | パッケージ管理で容易 | 手動で再ビルドが必要 |
動的ビルドでは、システムにインストールされた共有ライブラリ(.so や.dll ファイル)を参照して動作します。そのため、別のサーバーや Docker コンテナに移動すると、ライブラリのバージョン違いや不在により動作しないことがあるのです。
主要コーデックの役割
今回ビルドに組み込む各コーデックには、それぞれ重要な役割があります。
以下の図は、FFmpeg と各コーデックライブラリの関係性を示したものです。
mermaidflowchart TB
ffmpeg["FFmpeg<br/>コアエンジン"]
subgraph video["映像コーデック"]
x264["x264<br/>H.264エンコーダ"]
x265["x265<br/>H.265/HEVCエンコーダ"]
aom["libaom<br/>AV1エンコーダ"]
end
subgraph audio["音声コーデック"]
opus["libopus<br/>Opusコーデック"]
fdk["fdk-aac<br/>高品質AACエンコーダ"]
end
ffmpeg --> x264
ffmpeg --> x265
ffmpeg --> aom
ffmpeg --> opus
ffmpeg --> fdk
x264 -->|MP4/MKV出力| output["エンコード済み<br/>動画ファイル"]
x265 -->|MP4/MKV出力| output
aom -->|WebM/MP4出力| output
opus -->|WebM/Ogg出力| output
fdk -->|MP4/AAC出力| output
図で理解できる要点:
- FFmpeg は複数のコーデックライブラリを統合管理するコアエンジン
- 映像系(x264/x265/aom)と音声系(opus/fdk-aac)のライブラリが連携
- 各コーデックが異なる出力形式に対応
それぞれのコーデックは、以下のような特徴を持っています。
x264(H.264 エンコーダ):最も広く使われている映像コーデックで、ほぼすべてのデバイスで再生可能です。動画配信サービスや YouTube でも標準的に使われていますね。
x265(H.265/HEVC エンコーダ):H.264 の後継規格で、同じ画質でファイルサイズを約半分に圧縮できます。4K 動画の配信などで威力を発揮するでしょう。
libaom(AV1 エンコーダ):次世代の映像コーデックで、H.265 よりさらに高効率な圧縮が可能です。YouTube や Netflix が採用を進めています。
libopus(Opus コーデック):音声コーデックの中でも非常に高品質で、低ビットレートでも優れた音質を実現します。Web 会議やゲーム配信に最適ですね。
fdk-aac(高品質 AAC エンコーダ):AAC の中でも最高品質のエンコーダーで、Apple 製品や Spotify などで広く使われています。
課題
通常の FFmpeg インストールで直面する問題
パッケージマネージャーで FFmpeg をインストールする際、以下のような課題に直面することがあります。
mermaidflowchart TD
start["FFmpegを<br/>インストール"]
check1{"必要なコーデックは<br/>含まれている?"}
check2{"共有ライブラリは<br/>揃っている?"}
check3{"ライセンス的に<br/>問題ない?"}
start --> check1
check1 -->|No| problem1["★ コーデックが<br/>足りない"]
check1 -->|Yes| check2
check2 -->|No| problem2["★ 依存関係<br/>エラー"]
check2 -->|Yes| check3
check3 -->|No| problem3["★ ライセンス<br/>制約"]
check3 -->|Yes| success["正常に動作"]
problem1 --> rebuild["再ビルドが<br/>必要"]
problem2 --> rebuild
problem3 --> rebuild
図で理解できる要点:
- 通常インストールでは 3 つのチェックポイントで問題が発生しうる
- いずれかの問題が発生すると再ビルドが必要になる
コーデックの不足
Ubuntu の apt や CentOS の yum でインストールした FFmpeg には、ライセンス上の理由で fdk-aac が含まれていないことが多いです。また、最新の AV1 コーデック(libaom)も古いパッケージには入っていません。
bash# 通常インストールしたFFmpegのコーデック確認
ffmpeg -codecs | grep -i h265
bash# H.265は対応しているが、fdk-aacが見つからない例
ffmpeg -codecs | grep -i fdk
# → 何も表示されない
このように、必要なコーデックが使えず、高品質なエンコードができない問題が発生します。
環境依存の問題
動的リンクされた FFmpeg は、システムの共有ライブラリに依存しているため、以下のようなエラーが発生することがあるのです。
bash# 別の環境でFFmpegを実行
./ffmpeg -version
plaintext# エラー例:共有ライブラリが見つからない
Error: libx264.so.157: cannot open shared object file: No such file or directory
Error: libx265.so.192: cannot open shared object file: No such file or directory
特に Docker コンテナを使う場合や、古い OS から新しい OS へ移行する際に、このような問題に悩まされることが多いですね。
ライセンスとパテントの制約
fdk-aac や x264 などの一部コーデックは、特許やライセンスの関係で、ディストリビューションの公式パッケージに含まれていないことがあります。商用利用する際には、各コーデックのライセンス条項を確認する必要があるでしょう。
解決策
静的ビルドによる完全な FFmpeg 環境の構築
これらの課題を解決するのが「静的ビルド」です。すべての依存ライブラリを FFmpeg バイナリに組み込むことで、どの環境でも動作する単一の実行ファイルを作成できます。
mermaidflowchart LR
subgraph build["ビルドプロセス"]
source["ソースコード<br/>取得"]
compile["各ライブラリを<br/>個別にビルド"]
link["FFmpegに<br/>静的リンク"]
end
subgraph libs["依存ライブラリ"]
x264_src["x264"]
x265_src["x265"]
aom_src["libaom"]
opus_src["libopus"]
fdk_src["fdk-aac"]
end
source --> compile
x264_src --> compile
x265_src --> compile
aom_src --> compile
opus_src --> compile
fdk_src --> compile
compile --> link
link --> binary["ffmpeg<br/>静的バイナリ<br/>(単一ファイル)"]
図で理解できる要点:
- 各コーデックライブラリを個別にビルドしてから統合
- 最終的に依存関係のない単一バイナリが生成される
ビルド環境の準備
まず、ビルドに必要なツールとライブラリをインストールします。Ubuntu/Debian 系のシステムを例に説明しますね。
bash# システムパッケージの更新
sudo apt update && sudo apt upgrade -y
必要なビルドツールをインストールします。これらは各ライブラリをコンパイルする際に使用されます。
bash# コンパイラとビルドツール
sudo apt install -y \
autoconf \
automake \
build-essential \
cmake \
git-core \
libass-dev \
libfreetype6-dev \
libgnutls28-dev \
libmp3lame-dev \
libsdl2-dev \
libtool \
libva-dev \
libvdpau-dev \
libvorbis-dev \
libxcb1-dev \
libxcb-shm0-dev \
libxcb-xfixes0-dev \
meson \
ninja-build \
pkg-config \
texinfo \
wget \
yasm \
zlib1g-dev
次に、ビルド作業用のディレクトリを作成します。
bash# 作業ディレクトリとインストール先を作成
mkdir -p ~/ffmpeg_sources ~/ffmpeg_build ~/bin
これで、ソースコードを配置する ffmpeg_sources、ビルド成果物を配置する ffmpeg_build、最終的なバイナリを配置する bin の 3 つのディレクトリが準備できました。
NASM(高速アセンブラ)のインストール
多くのコーデックライブラリは、高速化のためにアセンブリ言語を使用しています。そのため、最新版の NASM が必要です。
bash# NASMのソースコードをダウンロード
cd ~/ffmpeg_sources
wget https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.bz2
bash# 解凍してビルド
tar xjvf nasm-2.15.05.tar.bz2
cd nasm-2.15.05
bash# configureとmakeでビルド・インストール
./autogen.sh
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make -j$(nproc)
make install
-j$(nproc) オプションは、CPU のコア数に応じて並列ビルドを行うことで、ビルド時間を短縮できます。
具体例
各コーデックライブラリのビルド
それでは、実際に各コーデックライブラリを順番にビルドしていきましょう。各ライブラリは独立してビルドし、最後に FFmpeg に統合します。
x264(H.264 エンコーダ)のビルド
x264 は最も広く使われている H.264 エンコーダーです。まずソースコードを取得します。
bash# x264のGitリポジトリをクローン
cd ~/ffmpeg_sources
git clone --depth 1 https://code.videolan.org/videolan/x264.git
cd x264
次に、静的ライブラリとしてビルドするための設定を行います。
bash# configureで静的ビルドを指定
./configure \
--prefix="$HOME/ffmpeg_build" \
--bindir="$HOME/bin" \
--enable-static \
--enable-pic
--enable-static で静的ライブラリを生成し、--enable-pic で Position Independent Code(位置独立コード)を有効にします。これにより、他のライブラリと組み合わせやすくなるのです。
bash# ビルドとインストール
make -j$(nproc)
make install
x265(H.265/HEVC エンコーダ)のビルド
x265 は H.265/HEVC コーデックのエンコーダーで、CMake を使ってビルドします。
bash# x265のソースコードを取得
cd ~/ffmpeg_sources
git clone --depth 1 https://bitbucket.org/multicoreware/x265_git.git
cd x265_git/build/linux
CMake で静的ビルドの設定を行います。
bash# CMakeで設定(静的ライブラリとして)
cmake -G "Unix Makefiles" \
-DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" \
-DENABLE_SHARED=OFF \
-DENABLE_CLI=OFF \
../../source
-DENABLE_SHARED=OFF で動的ライブラリの生成を無効化し、静的ライブラリのみを生成します。
bash# ビルドとインストール
make -j$(nproc)
make install
libaom(AV1 エンコーダ)のビルド
libaom は次世代コーデック AV1 の参照実装です。Google や Mozilla、Netflix などが開発に参加しています。
bash# libaomのソースコードを取得
cd ~/ffmpeg_sources
git clone --depth 1 https://aomedia.googlesource.com/aom
cd aom
bash# ビルドディレクトリを作成
mkdir -p aom_build
cd aom_build
CMake で静的ビルドを設定します。AV1 はエンコード時間がかかるため、最適化オプションも指定しますね。
bash# CMakeで設定
cmake -G "Unix Makefiles" \
-DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" \
-DENABLE_SHARED=OFF \
-DENABLE_NASM=ON \
-DBUILD_SHARED_LIBS=OFF \
..
bash# ビルドとインストール
make -j$(nproc)
make install
libopus(Opus コーデック)のビルド
Opus は低遅延・高音質を両立した音声コーデックで、Web 会議やストリーミングに最適です。
bash# libopusのソースコードを取得
cd ~/ffmpeg_sources
git clone --depth 1 https://github.com/xiph/opus.git
cd opus
bash# autogen.shで設定スクリプトを生成
./autogen.sh
静的ライブラリとしてビルドするための設定を行います。
bash# configureで静的ビルドを指定
./configure \
--prefix="$HOME/ffmpeg_build" \
--disable-shared \
--enable-static
--disable-shared で動的ライブラリを無効化し、--enable-static で静的ライブラリを有効化します。
bash# ビルドとインストール
make -j$(nproc)
make install
fdk-aac(高品質 AAC エンコーダ)のビルド
fdk-aac は Fraunhofer IIS が開発した高品質な AAC エンコーダーです。商用利用時はライセンス条項を確認してください。
bash# fdk-aacのソースコードを取得
cd ~/ffmpeg_sources
git clone --depth 1 https://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
bash# autoreconfで設定スクリプトを生成
autoreconf -fiv
静的ライブラリとしてビルドします。
bash# configureで静的ビルドを指定
./configure \
--prefix="$HOME/ffmpeg_build" \
--disable-shared \
--enable-static
bash# ビルドとインストール
make -j$(nproc)
make install
FFmpeg 本体のビルド
すべてのコーデックライブラリのビルドが完了したら、いよいよ FFmpeg 本体をビルドします。ここが最も重要な工程ですね。
以下の図は、FFmpeg ビルドの全体フローを示しています。
mermaidflowchart TD
download["FFmpegソースコード<br/>ダウンロード"]
configure["configure実行<br/>(各コーデック有効化)"]
check{"依存ライブラリは<br/>すべて検出された?"}
make["make実行<br/>(並列ビルド)"]
install["make install<br/>バイナリ配置"]
verify["動作確認<br/>(コーデック対応確認)"]
download --> configure
configure --> check
check -->|Yes| make
check -->|No| error["★ エラー<br/>ライブラリパス確認"]
error --> configure
make --> install
install --> verify
図で理解できる要点:
- configure で依存関係を検出してからビルド
- エラー時はライブラリパスを確認して再 configure
bash# FFmpegのソースコードを取得
cd ~/ffmpeg_sources
git clone --depth 1 https://github.com/FFmpeg/FFmpeg.git
cd FFmpeg
次に、PKG_CONFIG_PATH を設定して、ビルドしたライブラリを FFmpeg が見つけられるようにします。
bash# PKG_CONFIG_PATHを設定
export PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig"
これで、先ほどビルドした各ライブラリの .pc ファイル(パッケージ設定ファイル)を FFmpeg が参照できるようになりました。
続いて、configure スクリプトを実行します。ここで各コーデックを有効化します。
bash# FFmpegのconfigureを実行
./configure \
--prefix="$HOME/ffmpeg_build" \
--pkg-config-flags="--static" \
--extra-cflags="-I$HOME/ffmpeg_build/include" \
--extra-ldflags="-L$HOME/ffmpeg_build/lib" \
--extra-libs="-lpthread -lm" \
--ld="g++" \
--bindir="$HOME/bin" \
--enable-gpl \
--enable-gnutls \
--enable-libass \
--enable-libfdk-aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libopus \
--enable-libvorbis \
--enable-libx264 \
--enable-libx265 \
--enable-libaom \
--enable-nonfree \
--enable-static \
--disable-shared
各オプションの意味を解説します。
| # | オプション | 説明 |
|---|---|---|
| 1 | --pkg-config-flags="--static" | 静的ライブラリを優先 |
| 2 | --enable-gpl | GPL ライセンスのコーデックを有効化 |
| 3 | --enable-nonfree | 非フリーライセンスのコーデックを有効化 |
| 4 | --enable-libx264 | x264 エンコーダーを有効化 |
| 5 | --enable-libx265 | x265 エンコーダーを有効化 |
| 6 | --enable-libaom | AV1 エンコーダーを有効化 |
| 7 | --enable-libopus | Opus コーデックを有効化 |
| 8 | --enable-libfdk-aac | fdk-aac エンコーダーを有効化 |
| 9 | --enable-static | 静的ビルドを有効化 |
| 10 | --disable-shared | 動的ライブラリの生成を無効化 |
configure が成功したら、いよいよビルドを実行します。
bash# FFmpegをビルド(時間がかかります)
make -j$(nproc)
ビルドには環境によって 10 分〜30 分程度かかることがあります。並列ビルドを有効にしているので、コア数が多いほど速く完了するでしょう。
bash# ビルド成果物をインストール
make install
これで、~/bin ディレクトリに静的ビルドされた FFmpeg バイナリが配置されました。
ビルド結果の確認
ビルドが成功したか確認しましょう。まず、バイナリのパスを通します。
bash# パスを追加(.bashrcや.zshrcに追記すると永続化)
export PATH="$HOME/bin:$PATH"
FFmpeg のバージョンと対応コーデックを確認します。
bash# バージョン情報を表示
ffmpeg -version
plaintext# 出力例(一部抜粋)
ffmpeg version N-110234-g1234abcd
built with gcc 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04)
configuration: --enable-gpl --enable-libx264 --enable-libx265 --enable-libaom --enable-libopus --enable-libfdk-aac --enable-nonfree --enable-static --disable-shared
次に、各コーデックが有効になっているか確認します。
bash# H.264(x264)の確認
ffmpeg -codecs | grep -i h264
plaintext# 出力例
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 ) (encoders: libx264 libx264rgb )
bash# H.265(x265)の確認
ffmpeg -codecs | grep -i hevc
plaintext# 出力例
DEV.L. hevc H.265 / HEVC (High Efficiency Video Coding) (decoders: hevc ) (encoders: libx265 )
bash# AV1(libaom)の確認
ffmpeg -codecs | grep -i av1
plaintext# 出力例
DEV.L. av1 Alliance for Open Media AV1 (decoders: libdav1d libaom-av1 ) (encoders: libaom-av1 )
bash# Opusの確認
ffmpeg -codecs | grep -i opus
plaintext# 出力例
DEA.L. opus Opus (decoders: opus libopus ) (encoders: opus libopus )
bash# AACの確認
ffmpeg -codecs | grep -i aac
plaintext# 出力例
DEA.L. aac AAC (Advanced Audio Coding) (decoders: aac ) (encoders: libfdk_aac )
すべてのコーデックが表示されれば、ビルドは成功です。
実際のエンコード例
ビルドした FFmpeg を使って、実際に動画をエンコードしてみましょう。
H.264 でのエンコード
最も一般的な H.264 形式でエンコードします。
bash# 入力動画をH.264でエンコード
ffmpeg -i input.mp4 \
-c:v libx264 \
-preset medium \
-crf 23 \
-c:a aac \
-b:a 128k \
output_h264.mp4
-preset medium はエンコード速度と圧縮率のバランス設定、-crf 23 は品質設定(0〜51 で、低いほど高品質)です。
H.265 での高圧縮エンコード
同じ品質でファイルサイズを半分にする H.265 でエンコードします。
bash# H.265でエンコード(高圧縮)
ffmpeg -i input.mp4 \
-c:v libx265 \
-preset medium \
-crf 28 \
-c:a libfdk_aac \
-b:a 128k \
output_h265.mp4
H.265 はエンコード時間が H.264 の 2〜3 倍かかりますが、ファイルサイズは大幅に削減できます。
AV1 での次世代エンコード
最新の AV1 コーデックでエンコードします。
bash# AV1でエンコード(最高圧縮)
ffmpeg -i input.mp4 \
-c:v libaom-av1 \
-crf 30 \
-b:v 0 \
-strict experimental \
-c:a libopus \
-b:a 96k \
output_av1.webm
AV1 は非常に高い圧縮率を実現しますが、エンコードには最も時間がかかります。
音声のみのエンコード(Opus)
高音質な音声ファイルを Opus でエンコードします。
bash# 音声のみをOpusでエンコード
ffmpeg -i input.mp4 \
-vn \
-c:a libopus \
-b:a 96k \
output.opus
-vn オプションで映像を除外し、音声のみを抽出してエンコードします。
トラブルシューティング
ビルドやエンコード時によく遭遇するエラーと解決方法を紹介します。
エラー 1:共有ライブラリが見つからない
エラーコード: なし(警告)
plaintextWARNING: library configuration mismatch
ERROR: libx264 not found
発生条件: PKG_CONFIG_PATH が正しく設定されていない場合に発生します。
解決方法:
- PKG_CONFIG_PATH を確認
- .pc ファイルの存在を確認
- configure を再実行
bash# 1. PKG_CONFIG_PATHの確認
echo $PKG_CONFIG_PATH
# → /home/username/ffmpeg_build/lib/pkgconfig が表示されるべき
bash# 2. .pcファイルの存在確認
ls $HOME/ffmpeg_build/lib/pkgconfig/
# → x264.pc, x265.pc などが存在するか確認
bash# 3. 環境変数を設定し直してconfigureを再実行
export PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig"
cd ~/ffmpeg_sources/FFmpeg
./configure [オプション...]
エラー 2:NASM のバージョンが古い
エラーコード: なし(ビルド失敗)
plaintextError: nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.
発生条件: システムにインストールされている NASM が古いバージョンの場合に発生します。
解決方法:
- NASM を最新版でビルド(本記事の「NASM のインストール」を参照)
- パスを確認して優先順位を調整
bash# NASMのバージョン確認
nasm --version
# → NASM version 2.15.05 以上が必要
bash# システムのNASMより先にビルド版を使うよう設定
export PATH="$HOME/bin:$PATH"
which nasm
# → /home/username/bin/nasm と表示されるべき
エラー 3:エンコード時のメモリ不足
エラーコード: なし(プロセス強制終了)
plaintextKilled
発生条件: 4K 動画を AV1 でエンコードする際など、メモリ消費が大きい場合に発生します。
解決方法:
- エンコード設定を調整(preset を速いものに変更)
- 2 パスエンコードを使用
- タイルエンコードを有効化
bash# 1パス目:解析のみ(メモリ消費少)
ffmpeg -i input.mp4 \
-c:v libaom-av1 \
-b:v 2M \
-pass 1 \
-f null /dev/null
bash# 2パス目:実際のエンコード
ffmpeg -i input.mp4 \
-c:v libaom-av1 \
-b:v 2M \
-pass 2 \
-c:a libopus \
output.webm
2 パスエンコードにすることで、メモリ消費を抑えつつ高品質なエンコードが可能になります。
まとめ
本記事では、x264、x265、libaom、libopus、fdk-aac といった主要なコーデックをすべて組み込んだ FFmpeg の静的ビルド手順を解説しました。
静的ビルドによって、以下のメリットが得られます。
環境非依存:どの環境でも動作する単一バイナリが手に入り、Docker コンテナや異なるサーバー間での移動が簡単になります。
完全なコーデック対応:必要なすべてのコーデックを自由に組み込めるため、パッケージ版では対応していない形式でもエンコードできるようになりますね。
最新機能の利用:Git リポジトリからビルドすることで、公式パッケージより新しい機能やバグフィックスを利用できます。
一方で、以下の点には注意が必要です。
ビルド時間:すべてのライブラリをビルドするため、初回は 1 時間程度かかることがあります。
バイナリサイズ:静的ビルドのため、バイナリサイズは 100MB 程度になります(動的ビルドは数 MB です)。
セキュリティアップデート:セキュリティパッチは手動で再ビルドする必要があるため、定期的なアップデートを心がけましょう。
この手順を一度実行すれば、プロフェッショナルな動画エンコード環境が手に入ります。YouTube 配信、動画配信サービスの開発、映像制作など、さまざまな用途で活用できるでしょう。
ビルドした FFmpeg を使って、高品質な動画制作をお楽しみください。
関連リンク
articleFFmpeg 静的ビルド完全版:x264/x265/aom/opus/fdk-aac 対応のフル装備手順
articleFFmpeg 画質評価の作法:VMAF/SSIM/PSNR を揃えて測るベンチ手順
articleFFmpeg 「Non-monotonous DTS」エラー徹底対策:muxer 選定と再エンコード条件
articleFFmpeg コーデック地図 2025:H.264/H.265/AV1/VP9/ProRes/DNxHR の使いどころ
articleFFmpeg バッチ運用プレイブック:監視・再試行・キュー管理を systemd/tmux で回す
articleFFmpeg フィルタグラフ設計術:複雑合成を filtergraph ファイルで可読・再利用化
articleGit の依存取り込み比較:subtree vs submodule — 運用コストと安全性の実態
articleComfyUI チートシート:よく使うノード 50 個の役割と接続例早見表
articleGemini CLI と OpenAI CLI を横並び比較:フラグ体系・入出力・コストの違い
articleFFmpeg 静的ビルド完全版:x264/x265/aom/opus/fdk-aac 対応のフル装備手順
articleCodex を安全に使うアーキテクチャ設計:境界づけ・サンドボックス・権限分離
articleAstro でレイアウト崩れが起きる原因を特定する手順:スロット/スコープ/スタイル隔離
blogiPhone 17シリーズの発表!全モデルiPhone 16から進化したポイントを見やすく整理
blogGoogleストアから訂正案内!Pixel 10ポイント有効期限「1年」表示は誤りだった
blog【2025年8月】Googleストア「ストアポイント」は1年表記はミス?2年ルールとの整合性を検証
blogGoogleストアの注文キャンセルはなぜ起きる?Pixel 10購入前に知るべき注意点
blogPixcel 10シリーズの発表!全モデル Pixcel 9 から進化したポイントを見やすく整理
blogフロントエンドエンジニアの成長戦略:コーチングで最速スキルアップする方法
review今の自分に満足していますか?『持たざる者の逆襲 まだ何者でもない君へ』溝口勇児
reviewついに語られた業界の裏側!『フジテレビの正体』堀江貴文が描くテレビ局の本当の姿
review愛する勇気を持てば人生が変わる!『幸せになる勇気』岸見一郎・古賀史健のアドラー実践編で真の幸福を手に入れる
review週末を変えれば年収も変わる!『世界の一流は「休日」に何をしているのか』越川慎司の一流週末メソッド
review新しい自分に会いに行こう!『自分の変え方』村岡大樹の認知科学コーチングで人生リセット
review科学革命から AI 時代へ!『サピエンス全史 下巻』ユヴァル・ノア・ハラリが予見する人類の未来