ディレクトリ内のビデオファイルの総再生時間を取得します。

ディレクトリ内のビデオファイルの総再生時間を取得します。

ファイルのリストがあります.ts

out1.ts ... out749.ts   out8159.ts  out8818.ts

このすべてのファイルの合計期間(実行時間)をどのように取得できますか?

ベストアンサー1

これはありませんが、.ts(のみ.mp4)すべてのビデオファイルに対して機能します。時間を秒単位で取得するには、(partial)を
使用します。たとえば、次のようになります。ffprobeffmpeg

ffprobe -v quiet -of csv=p=0 -show_entries format=duration Inception.mp4 
275.690000

したがって、すべてのビデオファイルに対してループを使用して、合計時間を秒単位で計算できforますawk

for f in ./*.mp4
do ffprobe -v quiet -of csv=p=0 -show_entries format=duration "$f"
done | awk '{sum += $1}; END{print sum}'
2735.38

出力をさらに処理して合計をに変換するには、DD:HH:MM:SS回答を参照してください。ここ


もう一つの方法はexiftool内部があるviaですConvertDuration

exiftool -n -q -p '${Duration;our $sum;$_=ConvertDuration($sum+=$_)
                    }' ./*.mp4 | tail -n1
0:45:35

おすすめ記事