我想实现的目标:
通过操作扩展我的 Nautilus 上下文菜单,只需选择一个 JPG 文件和一个 MP3 文件,然后将它们组合成一个 MP4 文件,就像我已经在终端中通过以下命令执行的操作一样:
ffmpeg -r 1 -loop 1 -i image.jpg -i audio.mp3 -acodec copy -r 1 -shortest -vf scale=1920:1080 video.mp4
––––––––––––––––––––––––––
这是我所做的:
我创建了一个文件composite_video.sh
并保存了它/opt/lampp/htdocs/git/nautilus-scripts
(以便也将其与我的 GitHub 同步)
#!/bin/bash
if [ "$#" -ne 2 ]; then
echo "Call the script with ./$(basename "$0") (path to image) (path to video)"
else
ffmpeg -r 1 -loop 1 -i "$1" -i "$2" -acodec copy -r 1 -shortest -vf scale=1920:1080 video.mp4
fi
然后我创建了一个新的 FileManager-Action,如下所示:
––––––––––––––––––––––––––
这不起作用。如果我选择 JPG 和 MP3 并在 Nautilus 上下文菜单中选择操作,则没有任何反应。我做错了什么?
答案1
首先...你没有传递参数。你没有给它任何文件来处理。
我在 Flashback 中使用 ubuntu 20.04......所以您可能需要研究一些其他差异......但它对我来说有效。
仅供参考...此外文件管理器操作,我还安装了 nautilus 动作和nautilus-扩展-fma因为我正在使用 nautilus...我不知道这有什么影响,因为我起初认为它对我没有作用。
我之前根本没注意到它起作用了nautilus -q
然后当我这样做时,我发现我必须运行 nautilus,无论是从终端还是在执行选项卡下选择“显示输出”,这样我就可以查看日志以了解它为什么没有执行......在单独的终端上对 /var/log/syslog 运行连续尾部也提供了相同的输出。
弄清楚之后,我的主要问题是(首先,右键单击图标)在命令选项卡上使用 %F 参数类型(%F=文件列表...或 %U=uri 列表),它按字母顺序读取参数列表...尚未找到“正确”的解决方法。因此,解决方法是,我必须重命名这首歌,以便最后读取它....正如您在图片中看到的那样。