我制作了一个脚本来使用 avconv 减小 .mov 和 .mp4 视频的大小,并跳过已经压缩的视频(通过字符串存在)。在脚本中,我将视频的日期放在名称中,但我更愿意将压缩文件中视频的原始日期作为属性保留下来,这在脚本中当然没有实现。是否可以在 linux 控制台中使用?
#! /bin/bash
shopt -s globstar || exit
for f in **
do
if [[ "$f" =~ \.mp4$ ]] || [[ "$f" =~ \.mov$ ]] || [[ "$f" =~ \.MOV$ ]] ; then
if [[ "$f" =~ reduced.*\.mp4$ ]] || [[ "$f" =~ compressed.*\.mp4$ ]]; then
echo "already compressed"
else
if yes | avconv -i "$f" -c:v libx264 -crf 24 -c:a aac -strict -2 "${f%.*}_$(date -d@$(stat --printf='%Y' "$f") +%Y%m%d)"_compressed.mp4; then
rm -Rf "$f"
else
rm -Rf "${f%.*}_$(date -d@$(stat --printf='%Y' "$f") +%Y%m%d)"_compressed.mp4
echo "Command failed"
fi
fi
fi
done
是的,您可以使用
touch
:该
-r
选项告知touch
使用给定文件作为时间的参考以应用于目标文件。