GNU/Linux >> Linux の 問題 >  >> Linux

ffmpeg出力から継続時間を抽出するには?

ffmpeg はその情報を stderr に書き込んでいます 、 stdout ではありません .これを試してください:

ffmpeg -i file.mp4 2>&1 | grep Duration | sed 's/Duration: \(.*\), start/\1/g'

stderr のリダイレクトに注意してください stdout まで :2>&1

編集:

あなたの sed ステートメントも機能していません。これを試してください:

ffmpeg -i file.mp4 2>&1 | grep Duration | awk '{print $2}' | tr -d ,

ffprobe を使用できます :

ffprobe -i <file> -show_entries format=duration -v quiet -of csv="p=0"

次のように、秒単位で期間が出力されます。

154.12

-sexagesimal を追加する オプションは、期間を 時間:分:秒.マイクロ秒 として出力します :

00:02:34.12

Linux
  1. Grub2のコマンドからの出力に等しい変数を設定するにはどうすればよいですか?

  2. ファイル内から単一のバイト チャンクを抽出するにはどうすればよいですか?

  3. time コマンドの出力を Linux のファイルにリダイレクトする方法は?

  1. MP4 および MKV ムービーから字幕を抽出する方法

  2. ps出力をプロセス開始時間でソートする方法は?

  3. `tail -f` のリアルタイム出力にフィルタを適用する方法は?

  1. コマンドラインからFFMpegを使用してビデオを回転させる方法

  2. 2つのタイムスタンプ間のログを抽出する方法は?

  3. `date`に別のタイムゾーンからの時間を出力させるにはどうすればよいですか?