在 Thunar 和 Dolphin 中调用 avconv 的自定义操作

在 Thunar 和 Dolphin 中调用 avconv 的自定义操作

我喜欢使用像这样的命令

avconv -i %f -map 0:1 -c:a copy %f.m4a

在 Thunar 或 Dolphin 的自定义操作中,无需转码即可从 mp4 和 flv 中提取音频。

但这将输出一个包含输入文件扩展名的名称:

从视频“name.mp4”中,我得到一个名为“name.mp4.m4a”的音频文件。

如何调整命令以使输出为“name.m4a”?

答案1

您可以通过 bash 运行命令来使用 bash 的字符串操作功能:

bash -c 'avconv -i "$0" -map 0:1 -c:a copy "${0%%.*}".m4a' %f

(我假设您的文件管理器将foo bar.mp4像单个参数一样传递文件名。)

请注意,bash同时具有${var%%suffix}${var%suffix}- 前者是贪婪的(foo.bar.mp4将成为foo第一个和foo.bar第二个)。在这种情况下,我的目标是使用后者,并假设将被文件管理器%%替换,因为显然这里是一个特殊字符。%%

相关内容