gpt4 book ai didi

bash - 需要有关 ffmpeg 批处理脚本的帮助

转载 作者:行者123 更新时间:2023-12-04 23:30:09 25 4
gpt4 key购买 nike

试图制作一个 ffmpeg 批处理脚本,从位于许多子文件夹中的原始 .mov 文件中制作 proress 422 代理文件。到目前为止,我得到了这个:

#!/bin/bash

echo "drop source folder: "
read source

echo "drop destination folder: "
read des

find "$source" -name '*.mov' -exec sh -c 'ffmpeg -i "$0" -vcodec prores -profile:v 0 -an "$des/${0%%.mov}.mov"' {} \;
exit;

但它不会输出到目标文件夹,只输出到源文件夹并要求覆盖 - 这不是我想要的。

我想这是一个简单的参数错误,也许你们中的一些人可以发现?

非常感谢所有帮助!

最佳答案

这将是我的建议。看起来这是您之前的帖子的后续内容。

#!/bin/bash

[ -n "$BASH_VERSION" ] || {
echo "You need Bash to run this script."
exit
}

shopt -s extglob || {
echo "Unable to enable exglob."
exit 1
}

until
read -erp "Drop source folder: " SOURCE
[[ -d $SOURCE ]]
do
echo "Drop source folder does not exist: $SOURCE"
echo "You can abort this script by pressing CTRL-C."
done

until
read -erp "Drop destination folder: " DES
[[ -d $DES ]]
do
echo "Drop destination folder does not exist: $DES"
echo "You can abort this script by pressing CTRL-C."
done

while IFS= read -r FILE; do
BASE=${FILE##*/}
NOEXT=${BASE%.???}
echo ffmpeg -i "$FILE" -vcodec prores -profile:v 0 -an "$DES/${NOEXT}.mov" ## Remove echo if it's already correct.
done < <(exec find "$SOURCE" -type f -name '*.mov') ## You could also use -iname '*.sh' instead to also match files like .MOV.

注意:使用 -e 选项进行读取有助于通过按 Tab 轻松生成路径。

关于bash - 需要有关 ffmpeg 批处理脚本的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18231555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com