我有一个软件定义的无线电(SDR),可以从紧急服务中获取音频,并在软件的帮助下使用UDP传输原始音频。音频是PCM签名的16位little-endian。 UDP流也不是恒定的,仅在检测到音频时才具有数据。
我要解决的问题是,我希望录制的音频中的空白被无声或空音频填充。以下是我为解决此问题所做的一些尝试:
我想我的问题是关于解决此问题的最佳方法,以及是否可以使用ffmpeg来完成此任务?
为了确定差距,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