我正在将我的视频库从H.264转换为H.265以节省空间。但是我的所有文件都在我想保留的文件结构中。我使用Adobe Media Encoder对所有文件进行编码,但它无法保留文件夹结构 - 只将H.265文件输出到单个文件夹中。
如何在文件夹结构中批量搜索确切的文件名(xxx.mp4),然后从单个文件夹中将其替换为新的H.265文件(也称为xxx.mp4)?
我有1000多个视频,因此手动无效: - )
任何可以提供帮助的终端命令?
答案 0 :(得分:0)
我非常不愿意批量更改Mac上的数千个视频,所以我在这里完成了99%的视频。请在进行任何其他操作之前进行备份。
好的,警告了。将以下文件保存在HOME目录中go
:
#!/bin/bash
# Change this to match the top-level of where all your videos are stored
VIDEOLIB="$HOME/path/to/my/videos"
shopt -s nullglob nocaseglob
# Loop through all mp4 files in the current dorectory
for video in *mp4; do
# Get this file's inode number (unique id)
inode=$(stat -f "%i" "$video")
# Now find a friend with same name but different inode number
friend=$(find "$VIDEOLIB" -name "$video" \! -inum $inode)
if [ -z "$friend" ] ; then
echo "ERROR: $video has no friend"
else
echo "$video is friends with:"
echo " $friend"
fi
done
然后启动终端,并使上面的脚本可执行 - 只需要一次:
chmod +x $HOME/go
现在将目录更改为 Adobe Media Encoder 存储其输出文件的位置,例如:
cd "path/to/Adobe Media Encoded files"
使用以下命令运行脚本:
$HOME/go
它应该遍历所有h265编码的视频,并为每个视频找到匹配的文件。除了告诉你比赛之外,它实际上并没有做任何事情,你需要一条像
这样的线mv "$video" "$friend"
距离最后一行大约3行,位于fi
行的上方...但是请进行备份,然后查看所有内容是否良好。