使用FFMPEG填充原始音频UDP流的间隙

问题描述 投票:1回答:1

我有一个软件定义的无线电(SDR),可以从紧急服务中获取音频,并在软件的帮助下使用UDP传输原始音频。音频是PCM签名的16位little-endian。 UDP流也不是恒定的,仅在检测到音频时才具有数据。

我要解决的问题是,我希望录制的音频中的空白被无声或空音频填充。以下是我为解决此问题所做的一些尝试:

  1. ffmpeg -f s16le -ar 8000 -i udp://127.0.0.1:23456 -af aresample = async = 1 -acodec libmp3lame-f rtp rtp://127.0.0.1:1234
  2. ffmpeg -re -f lavfi -i anullsrc -f s16le -ar 8000 -i udp://127.0.0.1:23456 -filter_complexamix = inputs = 2:duration = first -acodec libmp3lame -f rtp rtp://127.0.0.1:1234

我想我的问题是关于解决此问题的最佳方法,以及是否可以使用ffmpeg来完成此任务?

audio ffmpeg stream vlc audio-streaming
1个回答
0
投票

为了确定差距,ffmpeg需要检查时间戳,但是原始流没有任何时间戳。因此,解决方法是让ffmpeg在接收时将壁钟时间分配为时间戳。

ffmpeg -f s16le -sample_rate 8000 -use_wallclock_as_timestamps true -i udp://127.0.0.1:23456 -af aresample=async=1 -acodec libmp3lame -f rtp rtp://127.0.0.1:1234
© www.soinside.com 2019 - 2024. All rights reserved.