【发布时间】:2017-11-20 10:20:15
【问题描述】:
好的,经过几天的搜索,我来了。我是 ffmpeg、applescript 和终端的新手。
我想使用 ffmpeg 批量转换任何文件夹中的一组选定文件。通过在文件夹位置打开终端并使用以下代码,我成功地做到了这一点:
for f in *.flv; do ffmpeg -i "$f" -acodec libmp3lame -b:a 256k "${f%.flv}.mp3" && rm "$f"; done
查找所有flv文件,并将其转换为256比特率的mp3,然后删除原始文件。
现在我希望它更加自动化,所以我考虑创建一个服务。我尝试通过自动机运行一个苹果脚本,我希望它在文件的文件夹位置打开终端,然后运行代码来转换文件。这是我尝试的代码:
tell application "Finder" to set currentFolder to target of front Finder window as text
set theWin to currentFolder's POSIX path
tell application "Terminal"
if not (exists window 1) then reopen
activate
do script "cd " & quoted form of theWin & ";clear" in window 1
tell application "Terminal"
do script "for f in *.flv; do ffmpeg -i "$f" -acodec libmp3lame -b:a 256k "${f%.flv}.mp3" && rm "$f"; done"
end tell
end tell
代码的第一部分在文件夹位置打开终端就好了。但是当我添加带有 ffmpeg 代码的部分时,它会崩溃。错误显然与“$”有关,这些错误显示为错误,错误消息显示“预期行尾,但发现未知令牌”。请寻求一些帮助。我需要“$”,因为这些是循环用于重命名文件等的原因。
【问题讨论】:
标签: terminal ffmpeg applescript