我第一次运行 FFmpeg 命令时出现错误:
“输出文件 #0 不包含任何流”
…但我可以看到 Tux 会话并连接到它。
然后添加了 FFmpeg 可执行文件的完整路径并降低了 FFmpeg 命令的复杂性,但现在什么都没有发生,甚至没有创建 tmux 会话。
sh rec.sh
以下是 的内容rec.sh
:
#!/bin/bash
tmux new-session -d /usr/bin/ffmpeg -f pulse -i 0 -acodec libmpelame out.mp3
答案1
通常,当您在 Bash 脚本中运行 FFmpeg 时,-nostdin
应该使用该选项。因此,shell 脚本中的命令将更改为:
tmux new-session -d /usr/bin/ffmpeg -nostdin -f pulse -i 0 -acodec libmp3lame out.mp3
处理此问题的另一种类似方法是附加< /dev/null
到命令中,如下所示:
tmux new-session -d /usr/bin/ffmpeg -f pulse -i 0 -acodec libmp3lame out.mp3 < /dev/null
尝试其中任何一种,并使用有效的方法,如解释的那样FFmpeg 文档-stdin
;粗体强调部分是我所加的:
启用标准输入上的交互。除非使用标准输入作为输入,否则默认启用。要明确禁用交互,您需要指定
-nostdin
。禁用标准输入上的交互很有用,例如,如果 ffmpeg 位于后台进程组中。大致可以达到相同的结果,
ffmpeg ... < /dev/null
但是需要一个外壳。