我刚刚安装了 »FileManager-Actions«
现在我尝试获取一个命令,将 JPG 文件(始终为 1920x1080px)与 MP3 文件合并为 MP4 文件。
通常在终端中使用此命令来执行以下操作:
ffmpeg -r 1 -loop 1 -i image.jpg -i audio.mp3 -acodec copy -r 1 -shortest -vf scale=1920:1080 video.mp4
但我真的不明白如何通过 FileManager-Actions 来实现这一点,我可以简单地选择一个 JPG 文件和一个 MP3 文件,然后对其运行命令来创建 MP4 文件,就像我之前的命令一样。
我知道我必须在命令中将 »image.jpg« 和 »audio.mp3« 进行更改。但是要改成什么呢???
谢谢你!
答案1
文件管理器操作使用相同的占位符就像 .desktop 启动器文件中使用的那样。这可以回答你关于使用什么占位符的问题。
%F
是占位符,用于在单独的行中返回所有选定的文件。以最简单但并非万无一失的方式,您需要有纪律地先选择音频文件,然后选择图片文件(反之亦然)。然后将第一个文件读%F
入变量 AUDIO,将第二个文件读入变量 PICTURE。最后,执行命令,用“$AUDIO”替换音频文件,用“$PICTURE”替换图像文件。使用引号,以便正确处理文件名中的空格。
为了更加万无一失,您可能需要添加更多代码,让脚本在执行实际命令之前通过读取和分析文件列表来检查和准备文件。这还具有能够以任何顺序选择音频和图片文件的优势,并且可以防止在选择了不合适的文件时出现意外问题。
因此,你的脚本应该:
zenity
检查是否恰好选择了两个文件,如果不是,则退出并显示错误消息(您可以使用它);- 识别哪个是视频文件,哪个是图形(此
file
命令在这里很有用),并将每个文件名分配给适当的变量,即音乐文件为 AUDIO,图像为 PICTURE。如果所选文件(之一)无效,则抛出错误并退出。
如果一切顺利,脚本将继续执行命令。