gpt4 book ai didi

bash while 循环和 ffmpeg

转载 作者:行者123 更新时间:2023-12-04 22:51:09 24 4
gpt4 key购买 nike

抱歉这个问题,我想答案很简单,但是我进行了搜索,但没有找到任何答案。

我写了以下内容:

while read p                        # reads in each line of the text
do # file- folder_list.txt each iteration.
echo "$p" # print out current line
if [ -f $p/frame_number1.jpg ] # checks if the image exists in the specific folder
then
echo "$p" #prints specific folder name
sleep 1 #pause for 1 second
ffmpeg -f image2 -r 10 -i $p/frame_number%01d.jpg -r 30 $p/out.mp4 #create video
fi # end if statement
done <folder_list.txt #end of while loop

该脚本应该读取包含文件夹树结构的文本文件,然后检查文件夹是否包含指定的 JPEG,如果包含,则代码应从指定文件夹中包含的图像创建视频。

然而,似乎正在发生的是脚本跳过了肯定包含图像的整个文件夹。我想知道 while 循环是否在创建视频时继续迭代,或者是否发生了其他事情?

任何帮助将不胜感激。

提前谢谢了

劳伦斯

最佳答案

这可能是因为某些文件夹包含空格或其他奇怪的字符。

试试这个(不适用于所有情况,但适用于大多数情况):

while read p            # reads in each line of the text file- folder_list.txt
do #each iteration
echo "$p" #print out current line
if [ -f "${p}/frame_number1.jpg" ] #checks wether the image exists in the specific folder
then echo "$p" #printsout specific folder name
sleep 1 #pause for 1 second
ffmpeg -f image2 -r 10 -i "${p}/frame_number%01d.jpg" -r 30 "${p}/out.mp4" #create video
fi # end if statement
done <folder_list.txt #end of while loop

我只是在涉及 "$p"的参数周围添加了引号,这样如果它包含空格(和其他东西),它就不会分成几个参数,从而破坏命令

如果这不起作用,请准确告诉我们一些正常的目录和不正常的目录:
ls -ald  /some/ok/dir     /some/NOTOK/dir #will show which directories belong to who
id #will tell us which user you are using, so we can compare to the previous and find out why you can't access some

关于bash while 循环和 ffmpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17149671/

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