我喜欢使用像这样的命令
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
第二个)。在这种情况下,我的目标是使用后者,并假设将被文件管理器%%
替换,因为显然这里是一个特殊字符。%
%