如何创建无声的.ogg音频文件

9
作为回答"ubuntuforums.org上如何制作无声mp3或wav文件的问题",FakeOutdoorsman提供了以下方法:

使用FFmpeg的另一种方法。 WAV格式的60秒无声音频:

ffmpeg -ar 48000 -t 60 -f s16le -acodec pcm_s16le -ac 2 -i /dev/zero -acodec copy output.wav

MP3格式的60秒无声音频:

ffmpeg -ar 48000 -t 60 -f s16le -acodec pcm_s16le -ac 2 -i /dev/zero -acodec libmp3lame -aq 4 output.mp3

我该如何创建一个类似的无声.ogg音频文件?

对于一个Web应用程序,我想创建一个非常短的文件,以测试浏览器是否会预加载音频文件,或者它是否会等到实际播放文件之前才开始流式传输。

2个回答

16

无声音频

这是一种过时的方法。现在,你可以使用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

只有黑色视频

使用color滤镜

ffmpeg -f lavfi -i color=d=5 -c:v libtheora output.ogv
  • 默认帧率为25,视频大小默认为320x240。要更改它:color=r=24:s=1280x720:d=5

  • 但是谁还使用Theora呢?一个更现代的替代品可能是VP8/VP9 + Vorbis在WebM中:-c:v libvpx output.webm

测试图案+440 Hz音调

使用testsrcsine过滤器:

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滤镜文档:视频源,了解其他许多视频源滤镜的列表,例如smptehdbars

另请参阅


谢谢!您的命令输出如下:size= 4kB time=00:00:04.98 bitrate=7.3kbits/s video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:4kB muxing overhead: 2004.608276% 是否有可能创建没有全局头的.ogg文件,以获得最小可行的输出文件? - James Newton
如果你想在将静音与其他声音连接时避免问题,请使用与你要混合的声音相同的参数来创建静音(单声道/立体声和赫兹)。 - Rub

5

指定-acodecvorbis(而不是libmp3lame),并在输出文件结尾添加.ogg(取代.mp3)。


1
谢谢!我需要使用libvorbis而不是vorbis。30毫秒的输出为3,694字节。我可以获得一个30毫秒的MP3文件,大小为333字节。在wittnl的GitHub页面上,我找到了一个静音ogg的dataURL,包括base64编码,小于300字节... - James Newton
不错。我很高兴你知道如何填写空白处。关于你观察到的大小差异,我打赌FFmpeg可能会将元数据块写入文件中,而你发现的较小文件可能会省略它。 - Multimedia Mike

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接