我正在尝试从我的Pi Zero和我的I2s MEMS麦克风中传输音频。我想使用FFMPEG和ALSA(我已编译过)进行流式处理,但我遇到了口吃问题。
FFMPEG + ALSA
~/special/ffmpeg/ffmpeg -report -f alsa -ar 48000 -ac 2 -acodec pcm_s32le -i mic_sv -f lavfi -i testsrc -c:v h264_omx -c:a aac -ab 32k -bufsize 32k -f flv rtmp://209.85.230.23/live2/KEY
这导致持续的口吃和波动。
Arecord直接传送到FFMPEG
arecord -Dmic_sv -c2 -r48000 -fS32_LE | ~/special/ffmpeg/ffmpeg -report -acodec pcm_s32le -i - -f lavfi -i testsrc -c:v h264_omx -acodec aac -ab 32k -bufsize 32k -f flv rtmp://209.85.230.23/live2/KEY
这会产生一致的音频流,但每隔5秒就会跳过一次。
将Arecord录制到wav文件中,通过管道输入FFMPEG
arecord -Dmic_sv -c2 -r48000 -fS32_LE -twav temp.v &
~/special/ffmpeg/ffmpeg -report -re -i temp.v -f lavfi -i testsrc -c:v h264_omx -ac 2 -acodec aac -ab 32k -bufsize 32k -async 2 -f flv rtmp://209.85.230.23/live2/KEY
这会产生完美的音频流。
我不知道为什么#3有效,但#2和#1会导致问题。有什么建议?