我有一台Mac电脑。通常我的所有批量编程都在我的电脑上完成。所以我尝试使用Mac shell创建我认为是简单等效的东西。显然,众所周知,我认为这是愚蠢的。经过2天的网络搜索,我发现了我能找到的最接近的东西。但不,这也不起作用。
我想做的就是将多媒体文件放到脚本上,并让终端给我ffmpeg信息输出。在我的搜索中,我确实找到了这个"$@"
,据我所知,窗户蝙蝠相当于%*
。这意味着您可以在脚本上抛出文件,并且脚本将这些文件称为可以处理的变量。所以我相信我想做的事情是可能的。
再次,底部的代码只是查看所有.mov文件的当前目录并运行ffmpeg。它不起作用。但是......如果没有人可以帮我弄清楚我想做的实际事情,那么我会解决下面的确实有效的问题。
#!/bin/bash
FFMPEG=/Applications/ffmpeg
FIND=/usr/bin/find
FILES=$(${FIND} . -type f -iname "*.mov")
if [ "$FILES" == "" ]
then
echo "There are no *.mov file in $(pwd) directory"
exit 1
fi
for f in *.mov
do
$FFMPEG -i "$f"
done
如果有人能帮我解决这个问题,我真的很感激。先感谢您!朱
我刚刚从“类似问题”侧边栏找到了这个解决方案,这与上面的脚本类似,所以再次,不完全是我想要的但是......没关系,对我不起作用。 How to batch convert mp4 files to ogg with ffmpeg using a bash command or Ruby
答案 0 :(得分:1)
.command
个文件不会接收丢弃的文件作为输入。
您可以打开终端窗口,键入for f in
,删除窗口上的文件,然后键入; do ffmpeg -i "$f"; done
。
或者将这样的脚本保存为AppleScript编辑器中的应用程序:
on open argv
set paths to ""
repeat with f in argv
set paths to paths & quoted form of POSIX path of f & " "
end repeat
tell application "Terminal"
do script "for f in " & paths & "; do ffprobe -i \"$f\"; done"
activate
end tell
end open
ffprobe -i
与ffmpeg -i
类似,但不会显示At least one output file must be specified
之类的错误。
修改:您还可以使用Platypus:
将脚本设置为for f; do ffprobe -i "$f"; done
。
答案 1 :(得分:0)
这可能会这样做:
for FILE in "${@}"
do
/Applications/ffmpeg -i "$FILE"
done