
ffmpegかffprobeを使って
動画のfps情報だけを取得したいのですが
http://askubuntu.com/questions/110264/how-to-fin …
このページにあるように
コマンドプロンプト上で
ffmpeg -i filename
を実行すると
Input #0, matroska,webm, from 'somerandom.mkv':
Duration: 01:16:10.90, start: 0.000000, bitrate: N/A
Stream #0.0: Video: h264 (High), yuv420p, 720x344 [PAR 1:1 DAR 90:43], 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
Stream #0.1: Audio: aac, 48000 Hz, stereo, s16 (default)
というような情報が出力されます。
この中で25 fpsという部分だけを抽出したいのですが
このページにあるように
ffmpeg -i filename 2>&1 | sed -n "s/.*, \(.*\) fp.*/\1/p"
を実行することで所望する
25
だけを表示することができます。
このsedというものの使い方を知りたいのですが
どのような仕組みで25だけを抽出しているのでしょうか?
https://hydrocul.github.io/wiki/commands/sed.html
こういうページに解説が書かれてあるのですが
難解で理解することができませんでした。
簡単に説明していただけないでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
-n : 入力情報をそのまま出力しない
s/A/B/ : 行内に A で指定したパターンがあればBに置き換える
p : 置き換えがあったら置き換え後を表示
.* : 「何か」のパターン (任意の文字が0個以上連続するパターン)
.*A.*B.* : 最初に何か、A と B に挟まれた何か、最後に何か、のパターン
\(...\) : 後で参照したい部分を示す括弧
\1 : 1番目の括弧の内容
s/.*A\(.*\)B.*/\1/ : 行内に A と B ではさまれた「何か」があれば、その何かだけに置換
というわけで、
処理: sed -n 's/.*A\(.*\)B.*/\1/p'
意味: 標準入力から、A と B に挟まれた「何か」がある行があれば、その何かのみに行を置換して表示
No.1
- 回答日時:
sed は Stream EDitor の名前の通り、入力を編集して(通常は)出力する、というコマンドです。
もの凄く雑に例えると、テキストエディタで、必要な部分だけ残したり、削除したり、順番入れかえたり、といった編集作業をマクロに登録して自動でやらせる、という感じです。
その機能は結構いろいろあります。
http://linuxjm.osdn.jp/html/GNU_sed/man1/sed.1.h …
おそらく一番よく使われるのが s コマンドです。
s/正規表現/置換文字列/
の形で、正規表現で一致する部分を「置換文字列」に置換します。
正規表現は、パターンを記述するためのものです。
この一致する部分の全て、あるいは一部を抜き出して、置換文字列に使うことができます。
s/.*, \(.*\) fp.*/\1/
は 前半のパターンにマッチしたもののうち\( \)でかこまれた部分を \1 で呼び出しています。
これが
Stream #0.0: Video: h264 (High), yuv420p, 720x344 [PAR 1:1 DAR 90:43], 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
の1行全体マッチして、 \(\)で囲った部分が ちょうど 25 fps の 25のところにあたるので \1 で置き換えた結果が
25
となります。
そのままでは、マッチしない行がそのまま出力されてしまうので、 -n オプションで出力を抑制し、代りに、マッチしたときには p で出力します。
細かい使い方をやっていたら本が一冊書けるだけの分量があります。
自分でいろんな情婦を切り出したい、という場合は、最初は難しいかもしれませんが、勉強して覚えましょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のExcelファイルをマージす...
-
VBAでCOPYを繰り返すと、処理が...
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】並び替えの範囲が、...
-
VBAの「To」という語句について
-
vbsでのwebフォームへの入力制限?
-
Vba セルの4辺について罫線が有...
-
【マクロ】変数を使った、文字...
-
Vba FileSystemObject オブジェ...
-
エクセルのマクロについて教え...
-
VBAでユーザーフォームを指定回...
-
【ExcelVBA】値を変更しながら...
-
【マクロ】シートの変数へ入れ...
-
エクセルのVBAコードと数式につ...
-
ワードの図形にマクロを登録で...
-
改行文字「vbCrLf」とは
-
エクセルVBA 検索結果を隣のシ...
-
【マクロ】モジュール変数の記...
-
Excelのマクロについて教えてく...
-
ダブルクリックで貼り付けた画...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マッチングアプリで新しくアカ...
-
正規表現
-
正規表現の実行レポートは作成...
-
タグを正規表現で完全に削除
-
この正規表現の意味は?
-
謎の半角■文字を正規表現で文字...
-
文字同士の比較~抜き出し
-
文字のマッチングについて
-
Perlで別ファイルから文字列の抽出
-
/ [ 【 の文字をマッチさ...
-
置き換えについて
-
正規表現 \\b123bと^123$は同じ?
-
perlで記号除去を行いたいので...
-
リナックスの grepコマンド ...
-
正規表現で2種類ある括弧を区別...
-
記号とあらば、1文字でも全て...
-
perlのマッチでマッチしたい物...
-
正規表現の展開
-
パイプ以外をエスケープしてマ...
-
3回以上連続する文字(どんな...
おすすめ情報