gpt4 book ai didi

bash - 使用 ffmpeg 将图像转换为电影 - 使用 Bash 将通配符传递给 ffmpeg glob -i 输入

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

我有许多非顺序编号的图像 jpg,它们具有相同的起始字符串,可以通过例如

ls car_drive*.jpg

我可以使用我的 bash 函数组装成电影,如下所示,效果很好
ffimage2movie_scaling() {
echo "files input in double quotes"
echo "input and output file "
/usr/bin/nice ffmpeg -pix_fmt yuv420p -v quiet -framerate 9 -pattern_type \
glob -i "$1" -c:v libx264 -vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2" "$2"

}
export -f ffimage2movie_scaling


调用为
ffimage2movie_scaling "car_drive*.*" output.mp4

我想实现这一点,以便我可以使用词干术语“car_drive”为输出 mp4 加上前缀,使用以下对前一个函数的轻微编辑
prepare_video_from_images () {
inputStem="$1"
inputFile="$1""*.*"
echo "$inputFile"
outputFile="movie_""$inputStem"".mp4"

/usr/bin/nice ffmpeg -pix_fmt yuv420p -v quiet -framerate 9 -pattern_type \
glob -i "$inputFile" \
-c:v libx264 -vf "scale='min(1280,iw)':min'(720,ih)':force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2" -crf 18 "$outputFile"
}
export -f prepare_video_from_images



但是,使用等效输入呈现 glob -i 的任何变体似乎都不起作用。我已经尝试过 shopt -s/u extglob、set -/+f、添加“环绕等”等。非常感谢所有帮助使其正常工作

最佳答案

有点横向思考,我采用了在第一个示例中起作用的 glob 输入,输入它,然后用 sed/cut 分割它,给我一个词干,然后我可以用它来命名输出文件。

prepare_video_from_images () {
inputStem="$1"
outputStem=$(echo "$inputStem" | sed 's/\*//' | cut -d. -f1 )
echo "$outputStem"
outputFile="movie_""$outputStem"".mp4"

/usr/bin/nice ffmpeg -pix_fmt yuv420p -v quiet -framerate 9 -pattern_type \
glob -i "$inputStem" \
-c:v libx264 -vf "scale='min(1280,iw)':min'(720,ih)':force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2" -crf 18 "$outputFile"
}




像以前一样被调用
prepare_video_from_images "car_drive*.jp*g"


关于bash - 使用 ffmpeg 将图像转换为电影 - 使用 Bash 将通配符传递给 ffmpeg glob -i 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71100622/

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