我有一个 ffmpeg 进程,它不断将PCM
数据从标准输入写入mp3
文件。我从处理用户语音的远程 UDP 语音服务器接收语音数据。如果用户正在说话 - 数据被发送。收到语音后,我立即将其写入 ffmpeg 标准输入。但如果用户不说话,我不会收到任何数据。这个漏洞可能很大,但除非手动停止接收,否则我永远不会停止 ffmpeg 进程。如果没有数据,我想让 ffmpeg 将静音写入文件。pipe:0
是否可以仅使用 ffmpeg 来做到这一点,或者我需要在我这边实现它?如果可能,那么我该怎么做?我尝试使用一些参数和过滤器,但没有找到我需要的东西。
我尝试使用lavfi
并anullsrc
使用这个命令:
ffmpeg -y -f lavfi -re -i anullsrc=r=48000:cl=mono -f s16le -ac {Channels} -ar 48000 -i pipe:0 -f segment -segment_time {SegmentSize} -segment_list \"{SegmentListPath}\" -segment_format mp3 -segment_wrap 2 -reset_timestamps 0 -shortest \"{FilePathFormat}\"
但它不起作用。
我是 ffmpeg 的新手,正在处理音频,因此很高兴看到任何帮助