【发布时间】:2021-05-30 04:00:07
【问题描述】:
更新
感谢大家分享您的建议。通过如下修改,我能够正常工作。
#!/bin/bash
ROOTPATH="/Volumes/NVME-RAID/ASSET-Processing/CORRUPT-SCAN/SCAN " # manually define root path to your folder that has subfolders
for subdir in *; do
cd ${ROOTPATH}${subdir}
mkdir 00errors
for path in *.{MOV,mov,MP4,mp4}; do
ffmpeg -i "${path}" -f null -; echo$?
RC=$?
if [ "${RC}" -ne "0" ]; then
# Do something to handle the error.
mv ${path} ./00errors
fi
done
cd ../
done
我现在唯一的问题是它似乎没有遍历子文件夹。据我了解,它应该在每个子文件夹中创建一个“00errors”文件夹,并在该子文件夹中移动错误文件。
正在尝试筛选 14TB 的恢复视频...
我正在尝试弄清楚如何正确转换此脚本,以便它可以在 bash/MacOS 上运行。由于 MacOS 不使用 /mnt
#!/bin/bash
ROOTPATH="/mnt/f/00test/" # manually define root path to your folder that has subfolders
for subdir in *; do
cd ${ROOTPATH}${subdir}
mkdir 00errors
for path in *.mp4; do
ffmpeg error -i "${path}"
RC=$?
if [ "${RC}" -ne "0" ]; then
# Do something to handle the error.
mv ${path} ./00errors
fi
done
cd ../
done
参考Quickly check the integrity of video files inside a directory with ffmpeg
【问题讨论】:
-
将 ROOTPATH 替换为视频的位置。它们在外部驱动器上吗?如果是这样,它将是
/Volumes/EXTERNALDRIVENAME。 -
如果
ROOTPATH变量为空,您可以添加测试,使用参数扩展来使用替代值或通过内置read交互询问。也可以试试shellcheck.net 只是我的两分钱 -
您的 ffmpeg 命令无效,会报错:
Unable to find a suitable output format for 'error'. error: Invalid argument。您忘记了-v,如-v error。一些有效的命令见How can I tell if a video file is corrupted? FFmpeg?。