FFserver-FFmpeg 缺少所需的音频流

FFserver-FFmpeg 缺少所需的音频流

我一直在尝试使用 ffserver 和 ffmpeg 为我的网络摄像头设置实时流。我曾经(实际上是 4-5 次)成功过,但现在每次我尝试启动服务器时都会出现此错误:缺少此 ffm 所需的音频流。

以下是我启动它的方法:

ffserver -f ffserver.conf & ffmpeg -i /dev/video0 http://localhost:8090/feed1.ffm

我尝试修改ffserver.conf文件中的许多内容,例如使用不同的视频格式/编解码器,添加 NoAudio 行,将其删除等...我甚至尝试使用包含音频而不是摄像头的视频文件,但它并没有改变任何东西...我无法再让它工作了。

我非常绝望,因为我在网上搜索答案,但没有找到任何东西......我希望这里的一些人可以提供帮助,或者至少提交想法或想法,此时我会采取一切措施!

答案1

所以我自己找到了解决方案!所以你必须在块中添加 NoAudio 以确保它是否强制执行,这取决于你使用的格式。问题是,如果你尝试启动 ffserver 并且它没有工作,由于 ffserver.conf 文件中的一些错误,仅仅纠正它们是不够的,你需要关闭你尝试启动它的 shell,重新打开一个新的 shell 并重试,否则错误会因为一些非常奇怪的原因再次发生。

对于所有错误都一样,您必须更正 ffserver.conf,关闭您尝试启动它的 shell,然后打开一个新的 shell 以尝试再次启动服务器。

希望这可以为大家提供一些帮助。

答案2

就我而言,问题在于我使用的是默认设置ffserver.conf(在doc源发行版的目录中以及/etc/ffserver.confUbuntu FFmpeg 包中)。默认设置ffserver.conf有两个<Stream>使用 的不同块feed1.ffm,而我之前没有意识到这一点,因此即使我将第一个流块标记为NoAudio,第二个流块仍然需要它。

切换到ffserver.conf仅包含我需要的块和指令的最小版本解决了这个问题。

答案3

您不需要终止 shell 本身(很可能是 bash),只需终止进程ffserver,然后重新启动它。这通常相当于(在该 shell 窗口中)使用Control- CUp-Arrow(或Control- P),然后返回。

我使用 Launch(在 Feed 部分)ffmpeg从文件内部运行,因此重新启动即可。基本的 Launch 行可能如下所示:/etc/ffserver.confffserver

Launch ffmpeg -r 5 -i /dev/video0

要查看是否有任何流浪者在奔跑,请在第二个窗口中使用此命令(相当随意的命令): ps -ef | grep ff

相关内容