ファイルのリストがあります.ts
。
out1.ts ... out749.ts out8159.ts out8818.ts
このすべてのファイルの合計期間(実行時間)をどのように取得できますか?
ベストアンサー1
これはありませんが、.ts
(のみ.mp4
)すべてのビデオファイルに対して機能します。時間を秒単位で取得するには、(partial)を
使用します。たとえば、次のようになります。ffprobe
ffmpeg
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