为什么ffmpeg会出现“Guessed Channel Layout for Input Stream #0.0 : mono”的警告?

4
我正在使用ffmpeg来读取和写入原始音频到/从我的python脚本。我使用的保存和加载命令都会产生警告信息"Guessed Channel Layout for Input Stream #0.0 : mono",尽管在输入和输出之前我都使用了-ac 1指令告知ffmpeg只有一个通道。我看到其他答案中提到可以设置-guess_layout_max 0,但这似乎是一种hack方法,因为我已经用-ac 1明确告诉ffmpeg有几个通道,它不应该需要做任何猜测。
我的保存命令格式如下,其中r是采样率,f是我想要将原始音频保存到的文件名。我通过管道从Python发送原始音频到stdin。 ffmpeg_cmd = 'ffmpeg -hide_banner -loglevel warning -y -ar %d -ac 1 -f u16le -i pipe: -ac 1 %s' % (r, shlex.quote(f)) 同样,我的加载命令如下,其中ffmpeg从f读取并将原始音频写入stdout。 ffmpeg_cmd = 'ffmpeg -hide_banner -loglevel warning -i %s -ar %d -ac 1 -f u16le -c:a pcm_u16le -ac 1 pipe:' % (shlex.quote(f), r)
1个回答

8

-ac 设置的是声道数,而不是它们的布局,对于每个声道数值,可能会有多个布局。

请使用选项-channel_layout

ffmpeg -hide_banner -loglevel warning -y -ar %d -ac 1 -channel_layout mono -f u16le -i pipe: ...


谢谢,看起来好像可以用。对于我的读取命令,即使我正在读取一个mp3文件,我仍然需要在-i之前添加它。难道ffmpeg不应该知道mp3中的通道数吗?ffmpeg -hide_banner -loglevel warning -channel_layout mono -i %s -ar %d -ac 1 -f u16le -c:a pcm_u16le pipe: - chasep255
无论位置如何,-channel_layout mono-channel_layout stereo 都没有任何效果(ffmpeg v6.0)。 - undefined

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