为啥立体声 mp3 文件在使用 ffmpeg 从 mp4 转换时会丢失一个通道?

Posted

技术标签:

【中文标题】为啥立体声 mp3 文件在使用 ffmpeg 从 mp4 转换时会丢失一个通道?【英文标题】:Why the stereo mp3 file lost a channel when converted from mp4 with ffmpeg?为什么立体声 mp3 文件在使用 ffmpeg 从 mp4 转换时会丢失一个通道? 【发布时间】:2020-11-11 09:21:23 【问题描述】:

我正在关注本教程https://hackernoon.com/audio-handling-basics-how-to-process-audio-files-using-python-cli-jo283u3y,当我从 mp3 文件中提取数据时,它只是一个一维数组,而来自 wav 文件的数据是二维的。我用 ffmpeg 从同一个 mp4 文件转换它们。

# read WAV file using scipy.io.wavfile
fs_wav, data_wav = wavfile.read("data/music_8k.wav")

# read MP3 file using pydub
audiofile = Audiosegment.from_file("data/music_8k.mp3")
data_mp3 = np.array(audiofile.get_array_of_samples())
fs_mp3 = audiofile.frame_rate

print(data_wav.shape) #(9835520, 2)
print(fs_wav) #44100
print(data_mp3.shape) #(19671040,)
print(fs_mp3) #44100

当我检查 mp3 文件的信息时,它显示 Stereo,但 data_mp3 只是一维数组这一事实是否意味着它实际上是单声道的?转换过程中是否丢失了一个频道?如果我想确认这两个文件具有相同的信号,我应该如何重塑数据?

【问题讨论】:

【参考方案1】:

但是 data_mp3 只是一维数组这一事实是否意味着它实际上是单维数组?

没有。

如果我想确认这两个文件具有相同的信号,我应该如何重塑数据?

将其解码回 wav

【讨论】:

以上是关于为啥立体声 mp3 文件在使用 ffmpeg 从 mp4 转换时会丢失一个通道?的主要内容,如果未能解决你的问题,请参考以下文章

如何解释 MP3 文件中的原始 pcm 数据

FFmpeg 可以“编码”为 mp3,但不接受“输入”mp3 [关闭]

用于从 MP3 文件中提取音频信息的 Java 库

谁知道mp3单声道怎么转立体声

FFMPEG:如何使用 FFMPEG 将附加图片 (APIC) 从源 mp3 文件转码到目标 mp3 文件?

修剪mp3文件时ffmpeg不精确