我可以检测(用ffmpeg
或类似的东西)立体声文件的左右两个通道实际上是否相同,因此该文件是单声道的吗?
伪代码:
left_channel = read_left_channel_from(file)
right_channel = read_right_channel_from(file)
return left_channel.equals(right_channel)
答案 0 :(得分:2)
反转一个通道的相位,然后下混为单声道,如果有任何东西,则进行音量检测:
-filter_complex "stereotools=phasel=1[tmp];[tmp]pan=1c:c0=0.5*c0+0.5*c1,volumedetect"
答案 1 :(得分:0)
另一种解决方案是为每个通道计算 MD5 哈希值。
ffmpeg -loglevel -8 -i <INPUT> -filter_complex "[0:a]channelsplit=channel_layout=stereo[left][right]" -map "[left]" -f md5 - -map "[right]" -f md5 -
这个答案虽然比 Vit 的答案更好地复制了你的伪代码,但在大多数实际情况下更糟糕;音频通道可能过于相似(超出人类感知),但会产生不同的 MD5 哈希值。