FakeOutdoorsman在utuforums.org上回答了"如何制作无声mp3或wave文件"的问题,提供了以下方法:
另一种方法是使用FFmpeg。60秒WAV格式的无声音频:
ffmpeg -ar 48000 -t 60 -f s16le -acodec pcm_s16le -ac 2 -i /dev/zero -acodec copy output.wav
60秒无声音频MP3:
ffmpeg -ar 48000 -t 60 -f s16le -acodec pcm_s16le -ac 2 -i /dev/zero -acodec libmp3lame -aq 4 output.mp3
我怎么能做类似的事情来创建一个沉默的。ogg音频文件?
对于web应用程序,我想创建一个非常短的文件,用于测试浏览器是否会预加载音频文件,或者是否会等到文件实际播放后才开始流式传输。
静音音频
那是过时的方法。你现在可以使用anullsrc
过滤器代替,它将在任何操作系统上工作:
ffmpeg -f lavfi -i anullsrc -t 5 -c:a libvorbis output.ogg
默认采样率为44100,默认通道布局为立体声。如果你想要不同的东西,你可以这样做:
anullsrc=r=48000:cl=mono
(或使用cl=1
单声道)。对于Vorbis一般来说,如果可能的话,避免使用本地编码器
vorbis
;libvorbis
将提供更好的输出(尽管它与静音输出无关)。
其他一些相关的例子
测试语气
使用sine
滤波器可以发出恼人的声音或蜂鸣声。产生220 Hz的正弦波,每秒880 Hz的蜂鸣声,持续5秒:
ffmpeg -f lavfi -i sine=f=220:b=4:d=5 -c:a libvorbis output.oga
Just black video
使用color
过滤器
ffmpeg -f lavfi -i color=d=5 -c:v libtheora output.ogv
默认帧率为25,默认视频大小为320x240。修改:
color=r=24:s=1280x720:d=5
.但是谁还在用Theora呢?WebM:
-c:v libvpx output.webm
中的VP8/VP9 + Vorbis可能是一个更现代的替代方案。
测试模式+ 440 Hz音调
使用testsrc
和sine
过滤器:
ffmpeg -f lavfi -i testsrc -f lavfi -i sine -t 10 -c:v libtheora -c:a libvorbis
-q:v 5 -q:a 5 output.ogv
改变
color
过滤器的帧率和视频大小。请参阅FFmpeg Filter Documentation: Video Sources获取许多其他视频源过滤器的列表,如
smptehdbars
。
- FFmpeg Wiki:一个简短的理论和Vorbis编码指南
- FFmpeg编解码器文档:libtheora
- FFmpeg编解码器文档:libvorbis
- Hydrogen Audio:推荐的Vorbis编码器设置
- FFmpeg Wiki: VP8 Video in WebM Encoding Guide
将-acodec
指定为vorbis
(而不是libmp3lame
),并将.ogg
放在输出文件的末尾(代替.mp3
)。