Bash 将csv解析为变量并在循环中执行ffmpeg命令
我正在尝试执行批处理操作,使用bash脚本从多个视频文件中提取特定帧并另存为PNG。我希望通过在bash脚本中使用ffmpeg来实现这一点,并辅之以csv文件,该文件包含输入视频的名称、要从输入视频中提取的特定帧号以及PNG文件的输出名称 视频文件和csv文件将全部放在同一个文件夹中。如果需要,脚本也可以放在那里 我的csv-称为“select.csv”-当前采用以下格式(输入、输出、帧): 我当前的脚本名为“frame.sh”,采用以下形式:Bash 将csv解析为变量并在循环中执行ffmpeg命令,bash,loops,csv,Bash,Loops,Csv,我正在尝试执行批处理操作,使用bash脚本从多个视频文件中提取特定帧并另存为PNG。我希望通过在bash脚本中使用ffmpeg来实现这一点,并辅之以csv文件,该文件包含输入视频的名称、要从输入视频中提取的特定帧号以及PNG文件的输出名称 视频文件和csv文件将全部放在同一个文件夹中。如果需要,脚本也可以放在那里 我的csv-称为“select.csv”-当前采用以下格式(输入、输出、帧): 我当前的脚本名为“frame.sh”,采用以下形式: #!/bin/bash OLDIFS=$IFS I
#!/bin/bash
OLDIFS=$IFS
IFS=“,”
SDIR=/Users/myuser/Desktop/f-input/
cd $SDIR;
while read input output frame
do
echo "$input"
echo "$output"
echo "$frame"
input1=$input
output1=$output
frame1=$frame
ffmpeg -i "$input1" -vf select='eq(n\,'"$frame1"')' -vsync 0
"$output1".png
done < $1
IFS=$OLDIFS
感谢您的任何建议
非常感谢将
IFS=“,”
替换为IFS=“,”
,谢谢-我没有注意到语音标记。但是,有了这个更改,我仍然无法循环遍历每一行,只能解析csv中的第一行。还有其他想法吗?请附加赛勒斯-谢谢你的回答。完成这项任务并没有结束。对于那些想要理解的人——如果我理解正确的话——添加同意dbl报价解决方案。你已经上路了,继续走!。检查您的代码以加快开发周期。祝你好运
#!/bin/bash
OLDIFS=$IFS
IFS=“,”
SDIR=/Users/myuser/Desktop/f-input/
cd $SDIR;
while read input output frame
do
echo "$input"
echo "$output"
echo "$frame"
input1=$input
output1=$output
frame1=$frame
ffmpeg -i "$input1" -vf select='eq(n\,'"$frame1"')' -vsync 0
"$output1".png
done < $1
IFS=$OLDIFS
#!/bin/bash
OLDIFS=$IFS
IFS=“,”
SDIR=/Users/myuser/Desktop/f-input/
cd $SDIR;
while read input output frame
do
ffmpeg -i "$input" -vf select='eq(n\,'"$frame"')' -vsync 0 "$output".png
done < $1
IFS=$OLDIFS