ゆう's Blog
ffmpeg スタンドアロン版とインストール版

スタンドアロン版(静的ビルド)
→ すべての必要ライブラリを ffmpeg 本体に内包。
→ どこに置いても動く。依存関係ゼロ。サイズは大きい。
→ 再現性が高く、サーバー移動にも強い。

インストール版(動的ビルド)
→ OS の共有ライブラリに依存。
→ OS のバージョンやパッケージ状況で動作が変わる。
→ サイズは小さいが、環境差異で壊れやすい。

インストールできる環境でも、スタンドアロン版の方が安定・安全・再現性が高い。

シェルの PATH と PHP の PATH は違う

シェルの PATH

echo $PATH

PHP が実際に使っている PATH

exec('echo $PATH', $out); var_dump($out);

PHP で絶対パスを使う
which で確認した絶対パスを使う。

月末にのみ実行する crontab の定番パターン

0 0 28-31 * * [ "$(date +\%d -d tomorrow)" = "01" ] && 実行したいコマンド

CentOS Stream に Google Chrome をインストールする

$ wget -O /tmp/chrome.rpm https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

root で。

# dnf localinstall /tmp/chrome.rpm

su を使えるユーザー,使えないユーザー

Fedora で su できるユーザー と su できないユーザー を作る方法は、「wheel グループ」に所属させるかどうかで決まります。
Fedora では wheel グループに属するユーザーだけが su を使える という設定がデフォルトで有効になっています。

wheel グループに追加(su を許可)
$ sudo usermod -aG wheel username

wheel グループから削除する
$ sudo gpasswd -d username wheel

確認
$ groups username

wheel グループのユーザー一覧を確認する
getent group wheel

出力例:
wheel:x:10:root,user1,user2
カンマ区切り部分が wheel グループのメンバーです。

Kdenlive インストール

Kdenlive は、プロ品質の動画編集が可能なオープンソースのノンリニア編集ソフトです。カット編集からエフェクト、音声処理、タイトル作成まで幅広く対応できます。

sudo dnf install kdenlive

🎬 Kdenlive の主な機能一覧

✂️ 基本編集機能
マルチトラック編集:複数のビデオ・オーディオトラックをタイムラインで同時に編集
カット・トリム・スプリット:直感的な操作でクリップの分割やトリミングが可能
グループ化・スナップ:複数のクリップをまとめて移動・編集

🎨 映像エフェクトとトランジション
豊富なビデオエフェクト:ぼかし、色補正、クロマキー(グリーンスクリーン)、歪み、ズームなど
トランジション効果:フェード、ワイプ、スライドなどの切り替え効果を簡単に適用
トラック全体へのエフェクト適用:トラック単位でエフェクトを一括適用可能

🔊 音声編集
音声エフェクト:ノイズ除去、イコライザー、リバーブなど
音声波形表示:タイムライン上で視覚的に音声を確認しながら編集
マルチチャンネル対応:ステレオ・モノラルの切り替えやチャンネル分離も可能

🖋 タイトル・字幕
タイトル作成ツール:静的・動的なテキストを動画に追加
アニメーション付き字幕:フェードイン・アウトや移動などの動きも設定可能

📦 メディア管理とプリセット
プロジェクトビン:インポートした素材を整理・分類
ゾーン設定:クリップの一部を「ゾーン」として保存し再利用
ライブラリ機能:よく使うクリップやエフェクトをプリセット化して保存

📽 出力とレンダリング
部分レンダリング:タイムラインの一部だけを選択して書き出し
多様なフォーマット対応:MP4, MOV, AVI, WebM など多数
レンダリングプリセット:YouTube用、スマホ用など用途別に最適化された設定

🧰 その他の便利機能
キーフレームアニメーション:エフェクトや位置の時間変化を制御
プロキシ編集:重い動画でも軽快に編集できる低解像度プレビュー
画面キャプチャ・音声録音:Kdenlive内で録画・録音も可能

GIMP で矢印を描く

arrow-set-size.scmをダウンロード

GIMP 3.0 以降の場合は「arrow_V3.scm」

ダウンロードした .scm ファイルを、以下のディレクトリに入れる

/home/user/.config/GIMP/3.0/scripts

※ スクリプト配置ディレクトリの探し方(Linux編)
GIMPを起動して、 「編集」→「設定」→「フォルダー」→「スクリプト」 を選ぶと、スクリプトを読み込むフォルダ一覧が表示される。

パスツールで矢印の軌道を描く
ツールボックスから「パスツール」を選んで、矢印の始点と終点をクリックしてパスを作成。

スクリプトを実行
メニューから「ツール > Arrow」を選択。設定画面が出るので、矢じりの長さや角度、線の太さなどを調整して「OK」をクリック!

find コマンドのオプションの順番

-maxdepth は「グローバルオプション」って呼ばれていて、検索条件(-type や -name)より前に書く必要がある

find . -maxdepth 1 -type f -name "*.mp4"

Bashで変数の値をインクリメントする方法

count=0 ((count++)) echo "$count" # → 1

forループを使うときにlsコマンドは適さない

ファイル名にスペースが含まれる場合、forループを使うときにlsコマンドは適していません。その理由は、スペースがシェルで分割されてしまい、意図しない挙動を引き起こすためです。

for file in $(ls -v | grep "\.mp4$")

代わりに、findコマンドやwhileループとreadコマンドを組み合わせるのがおすすめです。

#!/bin/bash # .mp4 ファイルを対象に処理 find . -type f -name "*.mp4" | while IFS= read -r file; do clean_file="${file#./}" # 先頭の './' を削除 echo "Processing: $clean_file" # 必要な処理をここに追加 done

${file#./}は、変数の内容を加工するためのパラメータ展開というBashの機能を使っています。
${var#prefix}の形式で、変数varの先頭にあるprefix(文字列)が一致した場合、その部分を削除した結果を返します。