スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

コマンドプロンプト上でffmpegとawkを使って動画の長さを文字列で取得する

前回に引き続き、バッチファイル作りに取り組んでいます。

今回は、動画の長さを取得するバッチファイルを作っていこうと思います。

久しぶりのtiger.mp4をサンプル動画ファイルとして使っていきます。

まず、ffmepgで動画の長さを調べるには、

ffmpeg -i tiger.mp4


コマンドで当該箇所を探すんでした。
が、めんどくさいのでプログラムにやってもらいましょう。
参考にしたのは、こちら

ffmpeg -i [動画ファイル] 2>&1 | grep Duration | awk '{print $2}' | tr -d ,


これはLinuxのコマンドっぽいので、コマンドプロンプトで使えるように修正します。


文字列検索
Linux:grep → Windows:find

Windowsの場合、検索文字列は" "で囲まないとダメなようです。

awkコマンド
Linux:awk → Windows:awk

MacとLinuxには標準搭載ですが、Windowsには入ってませんでした。
ので、インストールしました。
参考:awkインストール

さらに、こちらも'{ }'を"{ }"に変更しないとダメみたいです。変更します。

ここで問題が。
Linuxのtr(文字検索)にあたるものがコマンドプロンプトで見つからない。
awkもやってみたけどよくわからない。
うーん、とりあえず消して実行。

ffmpeg -i tiger.mp4 2>&1 | find "Duration" | awk "{print $2}"


コマンドプロンプトがエラーで埋まったのでclsコマンドで一回クリア。
からの実行。



カンマが残ってるので、awkのコマンドsubstrを使って文字数を指定して切り出しました。



かなりやっつけ感あります。もっとかしこいやり方がきっとあるはず。

最終的なコマンドは

ffmpeg -i tiger.mp4 2>&1 | find "Duration" | awk "{print substr($2,0,11)}"


というわけで動画の長さを知ることができました。やったね。

バッチファイルも作ってみました。



動きました。やったね。

さて、次からはバッチファイルのお勉強をせねばなりません。
手さぐり感にあふれている。

ということで、今回はこの辺りで。
関連記事

コメント

非公開コメント
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。