You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何按文件夹统计视频总时长并关联对应文件夹输出

如何按文件夹统计视频总时长并关联对应文件夹输出

看起来你已经摸到了统计视频总时长的门道,就差把时长和对应文件夹绑定起来这一步啦~我给你两个实用的方案,分别用mediainfoffprobe来实现,完美匹配你的需求:

方案一:用mediainfo实现(延续你已有的工具)

这个脚本会遍历父文件夹下的每个子文件夹,单独统计每个文件夹里的视频总时长,然后按你想要的格式输出:

#!/bin/bash

# 替换成你的父文件夹实际路径,比如"/home/user/Parent folder/"
PARENT_DIR="./Parent folder/"

# 先输出父文件夹名称
echo "$(basename "$PARENT_DIR")"

# 遍历父文件夹下的所有子文件夹
for FOLDER in "$PARENT_DIR"*/; do
    # 跳过非目录项(避免误处理文件)
    [ -d "$FOLDER" ] || continue
    # 获取子文件夹的名称
    FOLDER_NAME=$(basename "$FOLDER")
    
    # 用mediainfo提取当前文件夹下所有MP4视频的时长(毫秒),并求和
    TOTAL_MS=$(mediainfo '--Output=Video;%Duration%\n' "$FOLDER"*.mp4 | awk '{ sum += $1 } END { print sum }')
    
    # 将总毫秒数转换为小时和分钟
    SECS=$((TOTAL_MS / 1000))
    HOURS=$((SECS / 3600))
    MINS=$(((SECS % 3600) / 60))
    
    # 按照你的示例格式输出
    echo "$FOLDER_NAME ${HOURS}h${MINS}m"
done

使用说明:

  1. 把上面的代码保存成count_video_length.sh文件
  2. 给脚本添加执行权限:chmod +x count_video_length.sh
  3. 运行脚本:./count_video_length.sh

如果你的视频不止MP4格式,可以把"$FOLDER"*.mp4改成"$FOLDER"*.{mp4,mkv,avi,mov},覆盖常用的视频格式。

方案二:用ffprobe实现(FFmpeg套件工具)

如果你更习惯用FFmpeg生态的工具,这个方案同样可行:

#!/bin/bash

PARENT_DIR="./Parent folder/"

echo "$(basename "$PARENT_DIR")"

for FOLDER in "$PARENT_DIR"*/; do
    [ -d "$FOLDER" ] || continue
    FOLDER_NAME=$(basename "$FOLDER")
    
    # 用ffprobe提取每个视频的时长(秒),再求和
    TOTAL_SECS=$(ffprobe -v error -select_streams v:0 -show_entries stream=duration -of default=noprint_wrappers=1:nokey=1 "$FOLDER"*.mp4 | awk '{ sum += $1 } END { print sum }')
    
    # 转换为小时和分钟(用bc处理浮点运算,printf取整)
    HOURS=$(printf "%.0f" $(echo "$TOTAL_SECS / 3600" | bc))
    MINS=$(printf "%.0f" $(echo "($TOTAL_SECS - $HOURS*3600) / 60" | bc))
    
    echo "$FOLDER_NAME ${HOURS}h${MINS}m"
done

额外提示:

  • 确保你的系统已经安装了对应工具:Ubuntu/Debian可以用sudo apt install mediainfosudo apt install ffmpeg(ffprobe属于FFmpeg套件)
  • 如果子文件夹还有嵌套的子目录,你可以把遍历逻辑改成find "$PARENT_DIR" -type d,不过根据你的目录结构应该不需要这一步

备注:内容来源于stack exchange,提问作者John Snape

火山引擎 最新活动