networking - 使用 ffmpeg 录制/捕获不连续的音频流

标签 networking audio ffmpeg streaming rtp

我想使用 ffmpeg 录制音频流。问题是,该流在我想要记录的整个时间范围内不可用。
我有一个设备,它从麦克风获取输入,对其进行编码并广播 rtp 流。可以通过按钮(或 telnet 命令)控制该设备启动和停止该流。

所以基本上我想开始录制 session 。如果该流可用,ffmpeg 应该捕获此 rtp 流。否则,应记录静音音频,并且当流再次可用时,应再次记录该流,依此类推。

我怎样才能实现这个目标?当我启动 ffmpeg 时,它总是在流结束时中止。

现在我的 ffmpeg 命令如下所示:

ffmpeg -i rtp://192.168.2.255:3131 out.wav

如果使用 ffmpeg 命令无法做到这一点,那么最好(或最简单)的方法是什么。

最佳答案

如果我正确理解问题,您想使用 ffmpeg 在有音频时进行录制,而不是在无声时进行录制。请尝试以下操作:

ffmpeg -i rtp://192.168.2.255:3131 -af silenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-30dB output-file.mp3

更多详细信息请参见:https://ffmpeg.org/ffmpeg-filters.html

希望有帮助。

关于networking - 使用 ffmpeg 录制/捕获不连续的音频流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18506399/

相关文章:

java - TCP 上的对象或字符串 (xml)

audio - DAC 在 Raspbian 中的歌曲开始/停止时弹出

android - 比较android中的两个音频文件

ffmpeg - 向视频添加mp3时音质低,为什么?

python - Ubuntu 16.04 python 安装第 3 方模块 ffmpeg-3.0.2

树莓派中通过 wifi 的 Python 套接字

linux - 如何使用 netfilter 等 native Linux 工具按内容过滤数据包?

java - 多播支持在 Java 交易系统中可能有哪些用途?

java - 使用Java下载当前正在播放的音频

ubuntu - 如何加快视频转换