[英]Code must find all MP4 files within subdirectory to compress using ffmpeg
我有一个驱动器有很多MP4文件,很难通过文件夹和压缩文件夹。
我正在尝试创建一个在终端中运行的脚本,它将打开指定的文件夹,找到子文件夹中的所有.mp4文件,并使用我用ffmpeg指定的规范压缩文件。 显然,如果正确完成,输出文件的大小应该要小得多。 我正在起草一个我在下面有一个想法的代码,但我对BASH和/或PERL不太好。
for f in $(find ../ -iname '*.avi'); do
n=$(echo $f|sed -e 's/.avi/_cbr.mp4/i');
echo "ffmpeg [options] -i $f $n";
done
输出:
ffmpeg [options] -i ../1hourjob/videncode/sound10s.avi ../1hourjob/videncode/sound10s_cbr.mp4
ffmpeg [options] -i ../1hourjob/videncode/t003.avi ../1hourjob/videncode/t003_cbr.mp4
ffmpeg [options] -i ../ffmpeg/Masha.avi ../ffmpeg/Masha_cbr.mp4
ffmpeg [options] -i ../ffmpeg/window.avi ../ffmpeg/window_cbr.mp4
我想知道我是否甚至可以为此制作某种GUI。 我觉得有点迷茫。
您可以像这样递归遍历bash中的目录:
avi_to_mp4() {
cd "$1"
for f in *; do
if [[ -d "$f" ]]; then
avi_to_mp4 "$f"
elif [[ "$f" == *.avi ]]; then
newf="${f:0: -4}.mp4"
echo "$f" to "$newf" # run your command here
fi
done
cd ..
}
avi_to_mp4 "$1"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.