使用 FileManager-Actions 和 shell 脚本将 JPG 和 MP3 合并为 MP4(Ubuntu 18.04)

使用 FileManager-Actions 和 shell 脚本将 JPG 和 MP3 合并为 MP4(Ubuntu 18.04)

我想实现的目标:

通过操作扩展我的 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 列表),它按字母顺序读取参数列表...尚未找到“正确”的解决方法。因此,解决方法是,我必须重命名这首歌,以便最后读取它....正如您在图片中看到的那样。

在此处输入图片描述

相关内容