gpt4 book ai didi

image - 如何使用ffmpeg从文件夹中的所有视频中提取帧

转载 作者:行者123 更新时间:2023-12-04 22:46:15 28 4
gpt4 key购买 nike

我目前能够使用以下行从文件中提取图像

ffmpeg -i inputfile.avi -r 1 image-%d.jpeg

但是,我想将此应用于文件夹中的所有文件,并将其放在输出文件夹中。

假设我的当前文件夹包含所有视频:

输入视频/

----子文件夹1/

------视频.avi

----子文件夹2/

------视频.avi

我想要输出文件夹中的所有内容:

输出/

----子文件夹1/

- - - 视频/

----------*.jpeg

----子文件夹2/

- - - 视频/

----------*.jpeg

使用 bash 脚本解决此问题的最简单方法是什么? (或其他更好的东西)

最佳答案

如果文件夹深度不变,则文件扩展名始终为 avi,顶部文件夹称为“input-videos”和“output”:

#!/bin/bash
for file in input-videos/*/*.avi; do
destination="output${file:12:${#file}-17}";
mkdir -p "$destination";
ffmpeg -i "$file" -r 1 "$destination/image-%d.jpeg";
done

如果最上面的文件夹可以任意命名并且可以在任何地方并且文件扩展名不同,这里有一个脚本,你可以像 ./script.sh <input folder> <output folder> <file extension> 这样调用。 :
#!/bin/bash
if [ "$1" == '' ] || [ "$2" == '' ] || [ "$3" == '' ]; then
echo "Usage: $0 <input folder> <output folder> <file extension>";
exit;
fi
for file in "$1"/*/*."$3"; do
destination="$2${file:${#1}:${#file}-${#1}-${#3}-1}";
mkdir -p "$destination";
ffmpeg -i "$file" -r 1 "$destination/image-%d.jpeg";
done

关于image - 如何使用ffmpeg从文件夹中的所有视频中提取帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28194756/

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