首先,我正在学习bash shell脚本的早期阶段,因此,如果我说/做任何没有意义的事情,我深表歉意。
当前,我正在尝试拥有一个SBC,特别是Khadas VIM3,运行python脚本来查找和标记本地服务器中任何给定视频中的人脸。目前,我需要降低视频的帧频和分辨率,这正是bash脚本发挥作用的地方。我需要使这个过程自动化,并认为我会使用bash脚本和crontab来完成。 找到文件路径并将其从单独的脚本输出到文件中,并由bash脚本读取。当我尝试调用ffmpeg使用文件路径时,问题就来了。
代码:
pathFile="/home/khadas/Documents/paths"
while IFS= read -r line
do
ffmpeg -i "$line" -vf scale=960:540 -y "$line"
cp "$line" ./
done < $pathFile
产生的错误:
: No such file or directoryalRecognition/10/14-53.h264+/2019-09-26-10-14-53.mp4
cp: cannot stat '/home/khadas/Downloads/FacialRecognition/10/14-53.h264+/2019-09-26-10-14-53.mp4'$'\r': No such file or directory
路径文件示例(将有数百个条目):
/home/khadas/Downloads/FacialRecognition/10/14-42.h264+/2019-09-26-10-14-42.mp4
/home/khadas/Downloads/FacialRecognition/10/59-06.h264+/2019-09-26-10-59-06.mp4
/home/khadas/Downloads/FacialRecognition/10/36-28.h264+/2019-09-26-10-36-28.mp4
/home/khadas/Downloads/FacialRecognition/10/14-53.h264+/2019-09-26-10-14-53.mp4
使用精简版本时,脚本按预期工作。线长可能有问题吗?任何帮助深表感谢。
答案 0 :(得分:0)
根据错误消息,
cp
试图访问名称以.mp4'$'\r'
结尾的文件。这似乎意味着在某处有DOS / Windows样式的行尾。如果您拥有dos2unix
实用程序,请对包含/home/khadas/Documents/paths
的文件运行它。