You need to enable JavaScript to run this app. 如何编写整合脚本单次提取MP4的LUFS值与创建日期并导出
优惠活动
大模型
产品
解决方案
定价
更多

如何编写整合脚本单次提取MP4的LUFS值与创建日期并导出

实现方案

你可以直接将两个逻辑合并到同一个遍历循环中,两种实现方式可选:


方法1:直接运行单行命令

在mp4文件所在目录的终端执行以下命令即可,运行完成后结果会自动导出到当前目录的mp4_info.txt文件:

for i in *.mp4; do 
  echo "$i"
  ffmpeg -i "$i" -map 0:a -af ebur128=framelog=verbose -f null - 2>&1 | awk '/I:/{print $2}'
  ffprobe -v quiet -select_streams v:0 -show_entries stream_tags=creation_time -of default=noprint_wrappers=1:nokey=1 "$i"
  echo "---"
done > mp4_info.txt

可选调整:不需要分隔不同文件信息的话,可以删掉echo "---"这一行


方法2:存为独立脚本复用

  1. 新建名为get_mp4_info.sh的文件,写入以下内容:
#!/bin/bash
# 自动生成带时间戳的输出文件名,避免覆盖历史结果
output_file="mp4信息_$(date +%Y%m%d_%H%M%S).txt"

for i in *.mp4; do
  # 过滤非文件项,避免无mp4时报错
  if [ -f "$i" ]; then
    echo "文件名:$i" >> "$output_file"
    # 提取LUFS值
    lufs_val=$(ffmpeg -i "$i" -map 0:a -af ebur128=framelog=verbose -f null - 2>&1 | awk '/I:/{print $2}')
    echo "LUFS值:$lufs_val" >> "$output_file"
    # 提取创建时间
    create_time=$(ffprobe -v quiet -select_streams v:0 -show_entries stream_tags=creation_time -of default=noprint_wrappers=1:nokey=1 "$i")
    echo "创建时间:$create_time" >> "$output_file"
    echo "====================" >> "$output_file"
  fi
done

echo "提取完成,结果已保存到:$output_file"
  1. 给脚本添加执行权限:chmod +x get_mp4_info.sh
  2. 放在mp4目录下运行即可:./get_mp4_info.sh

内容的提问来源于stack exchange,提问作者sJoss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 09:51:03