ffmpeg - mediainfo 和 ffprobe 返回的 channel 数差异

标签 ffmpeg ffprobe mediainfo

我正在检查一个音频文件,注意到 mediainfoffprobe 返回的 channel 数不同。

mediainfo 命令:

mediainfo audio.mp4

ffprobe 命令(请参阅channels 值):

ffprobe -i audio.mp4 -show_streams

有人知道发生什么事了吗? 这是audio file供您自己测试。

最佳答案

AAC 内容,宣布为单声道。但AAC可能有一个隐藏的Parametric Stereo该功能使得此公告在 99.99% 的情况下都不是现实(HE-AAC 很少用于单声道内容)。

如果在解码器初始化后检测到立体声,FFmpeg 无法从单声道切换到立体声,因此由于预期在某个时刻获得参数立体声,它会强制其输出为立体声。

MediaInfo 没有此限制,因此仅在检测到参数立体声时才显示立体声。此文件中未检测到参数立体声。

在这种情况下,MediaInfo 显示正确的值(单声道),而 FFmpeg 显示错误的值(立体声)。这里不怪罪 FFmpeg,他们的开发人员决定这样做是有充分理由的(解码和处理许多无法处理文件中间 channel 数变化的工具),只是不是您想要的。

如果您不相信,请尝试 to decode each channel in a different file ,并比较文件。两个文件之间只有 1 个字节不同,该字节表示这是左声道还是右声道。音频数据是相同的:您的文件实际上是单声道的,甚至 FFmpeg 在解码时也同意这一点(实际上它复制了单声道 channel )。

Jérôme,MediaInfo 的开发者.

关于ffmpeg - mediainfo 和 ffprobe 返回的 channel 数差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66650791/

相关文章:

使用 "-t"的 FFMPEG 输出持续时间太长了 10 毫秒

ffmpeg - 如何将 GOP 大小设置为输入帧速率的倍数?

ffmpeg - 如何使用 ffmpeg 在横向模式下制作我的视频

ffmpeg - 当文件通过标准输入给出时,ffprobe/ffmpeg 报告不同的视频持续时间

ffmpeg - p帧上的rtp解码问题

youtube - 未找到 ffprobe 或 avprobe。请安装一个

python-3.x - python中的RTMP流监控

linux - WAV 文件缺少音频和录音

python - 在 python3 中使用 mediainfo 运行 check_output 会产生错误,即使在终端中的相同调用工作正常

windows - 批量 |回显多个变量到文件