我以前见过这种东西,但现在找不到我需要的东西。我只希望它能够递归给定的目录结构并返回所有视频文件的总播放时间。
答案1
这将为您提供当前工作目录中给定类型的所有文件的总时间(以秒为单位):
find . -maxdepth 1 -iname '*.mp4' -exec ffprobe -v quiet -of csv=p=0 -show_entries format=duration {} \; | paste -sd+ -| bc
要在具有多个子文件夹的文件夹中递归执行此操作,并包含具有不同扩展名(.mp4,.avi,.mkv等)的媒体文件,您只需删除“-maxdepth”和“-iname”参数,因此命令将是。
find . -exec ffprobe -v quiet -of csv=p=0 -show_entries format=duration {} \; | paste -sd+ -| bc
ffprobe 是 ffmpeg 的一部分,因此您使用的任何媒体都必须得到 ffmpeg 的支持。
原始命令来源:https://unix.stackexchange.com/questions/170961/get-total-duration-of-video-files-in-a-directory