我曾经创建一个如图所示的 Thunar 自定义操作这里为了从选定的(多个)视频文件中提取音频而不进行转码。
要添加到 Thunar 自定义操作列表中的命令是:
xfce4-terminal -e "parallel avconv -i '{}' -map 0:1 -c:a copy '{}.m4a' -- %F"
现在我只得到这个:
parallel: Warning: Input is read from the terminal. Only experts do this on purpose. Press CTRL-D to exit.
为什么会这样以及如何调整这些命令以便它们可以在 Thunar 自定义操作中工作?
答案1
我不确定是否理解该命令。为什么要在 %F 之前加上--?
尝试这个:
xfce4-terminal -e "parallel avconv -i '{}' -map 0:1 -c:a copy '{}.m4a' ::: %F"
解释:据我了解,%F 是 Thunar 替换为文件的内容,并行使用 ::: 作为输入。
联机帮助页中的一个示例正是
parallel gzip {} ::: file1 file2
要向 Thunar 自定义操作添加类似于以下命令的命令这里
for i in *.mp4; do avconv -i "${i}" -map 0:1 -c:a copy "${i%.mp4}.aac"; done
首先将其添加到可执行脚本中,例如
#! /bin/sh -e
for i in *.mp4; do avconv -i "${i}" -map 0:1 -c:a copy "${i%.mp4}.m4a"; done
使其可执行并保存。
在 Thunar 自定义操作中添加一个包含命令bash /path/to/the/script %F
和以下条件的新条目:
这需要对每种文件类型进行单独的自定义操作(因为它仅限于 mp4 到 m4a:对 flv 到 m4a、webm 到 ogg、avi 到 mp3 等进行相应更改),但优点是输出保留准确的输入名称(文件.mp4变成文件.m4a),而第一个命令则不会(文件.mp4变成文件.mp4.m4a)。
答案2
我现在用的是这个:
bash -c 'ffmpeg -i "$0" -map 0:1 -c:a copy "${0%%.*}".m4a' %f
*.flv;*.mp4
具有外观条件设置。