[ffmpeg] よく使うオプション覚え書き

動画をエンコードする必要に迫られてffmpegを使いはじめた。

ffmpegは多彩な機能と様々なコーデックを備えた定番エンコーダー。コマンドプロンプトで動作するので、バッチファイルを作成することで複数の処理を順次実行したり、大量の動画を一括して処理することもできる。

FFmpeg (公式サイト) – 英語
http://www.ffmpeg.org/

日本語版Wikipediaにも簡単な説明がある。

FFmpeg – Wikipedia
http://ja.wikipedia.org/wiki/FFmpeg

Windows版ビルドは以下のサイトで配布されている。

Zeranoe FFmpeg – Builds (Windowsビルド)
http://ffmpeg.zeranoe.com/builds/

ffmpegの実行形式

ffmpegコマンドの実行形式は以下の通り。

ffmpegのよく使うオプション

フレームサイズを指定する。横x縦、単位はピクセル。

ビットレートを指定する。単位はbit/s、kを付ければKbit/sになる。

フレームレートを指定する。単位はfps (frame/s)。

ビデオコーデックを指定する。利用可能なコーデックは ffmpeg -codecs でリストされる。

オーディオコーデックにaacを使う場合に指定する。以下ページも参照。

AACEncodingGuide – FFmpeg
http://ffmpeg.org/trac/ffmpeg/wiki/AACEncodingGuide

オーディオコーデックを指定する。利用可能なコーデックは ffmpeg -codecs でリストされる。

オーディオサンプリング周波数を指定する。単位はHz。

ファイルフォーマットを指定する。サポートされているフォーマットは ffmpeg -formats でリストされる。

ビデオ表示のアスペクトレシオを指定する。小数と”横:縦”の比の何れの形式でも指定できる。

[Unix] yum – Red Hat系Linuxのパッケージ管理システム

yumはrpmに代わるパッケージ管理システム。rpmよりも格段に便利。rpmのようにパッケージのフルネームを指定する必要がないのもいい。

以下ざっくり覚書。

コマンド例

インストール済みのパッケージ一覧を見る

インストール済みパッケージの内容を見る

パッケージをインストールする

参考サイト

yumの使い方は以下サイトがわかりやすい。

初心者の頃に知っておきたかった rpm と yum の違いと使い分け – 彼女からは、おいちゃんと呼ばれています
http://blog.inouetakuya.info/entry/20111006/1317900802

yumの沿革などはWikipediaを参照。

Yellowdog Updater Modified – Wikipedia
http://ja.wikipedia.org/wiki/Yellowdog_Updater_Modified

以下コマンドリファレンス。

Linuxコマンド逆引き大全 – 【 RPMパッケージをインストールする 】:ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/231208/?ST=oss

Linuxコマンド集 – 【 rpm 】 RPMパッケージをインストール/アンインストールする:ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230875/?ST=oss

Linuxコマンド集 – 【 yum 】 パッケージを取得してインストール/アップデートをする:ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/230999/

[Unix] XAMPPプログラマが最低限覚えておきたいシェルコマンド

現在携わっているWeb系の開発は、WindowsのXAMPP環境で行っている。ローカルである程度動作確認してから、本番サーバーのプライベートエリアにアップして結合テストを行い、問題が無ければ公開エリアにコピーする、というのがディプロイの手順。

それゆえに本番サーバーのUnix環境での作業はあまり多くない。それでも場合によっては、シェルスクリプトを書いてバッチで処理したい作業も出てくる。シェルプログラミングはたまにしかやらないので、都度調べてもすぐ忘れてしまう。というわけで、良く使いそうなコマンドを覚え書きしておく。

ファイル名に本日日付を入れる

フォルダやアーカイブを作るときに、本日日付や現在日時をフォルダやファイルの名前にしたいことがある。

たとえばフォルダの作成。

たとえばアーカイブの作成。

日時のフォーマットはstrftimeのマニュアルを参照。

Man page of STRFTIME
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man3/strftime.3.html

アーカイブ操作

僕が使いそうなものだけ。

arc_dirディレクトリ内のファイルを書庫ファイル(arch.tar)にする。

書庫ファイルを展開する。

gzip方式で圧縮した書庫ファイルを作成する (圧縮された書庫ファイルにはファイルの追加はできなくなる)。

既にある書庫にファイル(add_file)を追加する

書庫ファイルの内容を一覧する

書庫ファイルからreadme.txtファイルのみを削除する

Linuxコマンド集 – 【 tar 】 ファイルを書庫化・展開する(拡張子.tarなど):ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230896/

ファイルやディレクトリの存在をチェックする

[Bash] ファイルやディレクトリの存在をチェックする方法
http://sweng.web.fc2.com/ja/program/bash/bash-check-file.html

[Bash] Bashに関するTIPS
http://sweng.web.fc2.com/ja/program/bash/index.html

ディレクトリだけ一覧する

linuxでディレクトリだけを表示させる方法 – Linux系OS – 教えて!goo
http://oshiete.goo.ne.jp/qa/2760104.html

シンボリックリンクの実体をコピーする

cpコマンドに -d オプションをつければ良い。

Linuxコマンド集 – 【 cp 】 ファイルやディレクトリをコピーする:ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230734/

[Unix] df コマンド覚え書き

なかなか覚えないので覚え書き。自分が良く使いそうなオプションは以下ぐらいか。

  • -T ファイルシステムの種別を表示する
  • -k 容量をKB単位で表示する
  • -m 容量をMB単位で表示する
  • -h 容量を人間が読みやすい単位で表示する

実行例

[Unix] viエディタの使い方指南

Unixサーバー上での作業にはviエディタを使うことが多い。だけど、普段のコーディングはWindowsマシン上でNetBeansを使ってサーバー上のファイルを直接更新しているので、viエディタの操作方法は結構忘れてる。それでも簡単は編集ならばいまだ何とかなっているのは、昔取った杵柄のお陰。いざというときに備えて、わかりやすくviエディタの操作を説明してくれているサイトのリンクを覚え書き。

viエディタの操作
http://www.geocities.jp/woodwood77777/vi.htm

vi エディタ
http://www14.plala.or.jp/campus-note/vine_linux/operation/vi.html

vi – Wikipedia
http://ja.wikipedia.org/wiki/Vi

[Unix] ファイル名で使えない文字種とは

Unixベースのウェブサーバーでの話。ユーザが指定した名前のディレクトリに関連ファイルを管理することを考えた場合、ディレクトリ名として使えない文字が入力された場合には蹴らなければならない。どんな種類の文字が使えないのか参考情報を探してみたら以下のウェブページがヒットしたので参考サイトとしてリンクしておく。

デザクロ技術メモ(HP・CSS・SEO): ファイル名・フォルダ名の使用禁止文字〜使わない方が無難な文字(1)|デザインクロス〔山形県鶴岡市=庄内のホームページ制作会社|通称デザクロ〕
http://internet.designcross.jp/2010/02/blog-post.html

UNIXの部屋 コマンド検索:ファイル制限まとめ (*BSD/Linux)
http://x68000.q-e-d.net/~68user/unix/pickup?%A5%D5%A5%A1%A5%A4%A5%EB%C0%A9%B8%C2%A4%DE%A4%C8%A4%E1

[CakePHP] よく使うグローバル関数

とりあえず以下の3つはよく使うので覚え書き。

h(string $text, boolean $double = true, string $charset = null)
htmlspecialchars() の便利なラッパー。

debug(mixed $var, boolean $showHtml = null, $showFrom = true)
アプリケーションの DEBUG レベルがゼロ以外の場合に $var が出力されます。 $showHTML が true あるいは null のままであればデータはブラウザ表示に相応しいように描画されます。 $showFrom が false にセットされない場合、それがコールされた行の情報を伴ってデバッグ情報の出力が始まります。

pr(mixed $var)
出力を <pre> タグでラップする機能を追加した print_r() の便利なラッパー。

参考サイト

グローバル定数およびグローバル関数 — CakePHP Cookbook 2.x ドキュメント
http://book.cakephp.org/2.0/ja/core-libraries/global-constants-and-functions.html

デバッグ — CakePHP Cookbook 2.x ドキュメント
http://book.cakephp.org/2.0/ja/development/debugging.html

[CakePHP] トップページを設定する (Routesの設定)

CakePHPには、URLとコントローラ/アクション/パラメータのマッピングを定義するRoutingという仕組みが用意されている。Routingを使うと、サイトのホームページとして任意のコントローラ/アクション/パラメータを割り当てることが可能だ。

Routingは、app/Config/routes.phpで設定する。

第一引数はURL、第二引数はコントローラ/アクション/パラメータ。この例では、pagesコントローラのdisplayアクションがホームページに割り当てられる。

4.3. Routes の設定
http://cakephp.jp/old_doc/ch04s03.html

[CakePHP] DebugKitをセットアップする

Debug Kitはデバッグに役立つCakePHP用プラグイン。

以下に組み込み手順を覚え書き。

1. GitHubからDebug Kitをダウンロード

cakephp/debug_kit · GitHub
https://github.com/cakephp/debug_kit

2. app/Plugin/DebugKitに解凍

3. app/Config/bootstrap.phpでプラグインをロードするように変更

4. app/Controllers/AppController.phpでDebugKitを読み込む

すると、ブラウザでページを表示して右上にアイコンが表示されるようになる。

debugkit1

アイコンをクリックすると機能メニューが表示される。

debugkit2

GitHubのリポジトリ中にあるREADMEに若干の説明がある程度だけど、動かしてみれば機能は明白。

[CakePHP] SQLをダンプする (デバッグレベルの設定)

CakePHPをインストールしたばかりの状態では、デフォルトで画面下部にSQLダンプが表示される。

たとえば以下のように。

CakePHP-the-rapid-development-php-framework-Scaffold-Index-Products-Mozilla-Firefox_00

これはデバッグ支援機能の1つで、app/Config/core.phpでデバッグレベルを変更することによりオンオフできる。

debugを0にするとメッセージは表示されない。

debugを1にするとエラーと警告のメッセージが表示される。

debugを2にすると更にSQLがダンプされる。CakePHPをインストールした時点ではこれがデフォルト。