使用pydub库操作与二进制音频数据互转

一、二进制数据转AudioSegment对象

python 复制代码
binary_data = b'...'  # 二进制音频数据
combined_audio = AudioSegment.from_file(io.BytesIO(binary_data))

二、AudioSegment对象转二进制数据

python 复制代码
    binary_data = b'...'  # 二进制音频数据
    combined_audio = AudioSegment.from_file(io.BytesIO(binary_data))

    # 直接获取二进制字节数据时,会缺失44个头部说明字节,我们需要补全
    # 获取二进制字节数据
    raw_audio = combined_audio.raw_data
    # 组装头部字节
    header = struct.pack('<4sI4s', b'RIFF', len(raw_audio) + 36, b'WAVE')
    header += struct.pack('<4sIHHIIHH', b'fmt ', 16, 1, combined_audio.channels, combined_audio.frame_rate,
                          combined_audio.frame_rate * combined_audio.channels * combined_audio.sample_width,
                          combined_audio.channels * combined_audio.sample_width, combined_audio.sample_width * 8)
    header += struct.pack('<4sI', b'data', len(raw_audio))

    # 添加上头部字节
    binary_data_comeback = header + raw_audio
    # 此时binary_data_comeback 跟 binary_data是完全相同的。
相关推荐
Ian10254 小时前
python+openCV+ffmpeg进行物联网设备拉流rtmp
python·opencv·物联网·ffmpeg·iot·rtmp
北十南五5 小时前
易我视频照片修复EaseUS Fixo Technician
音视频
AREH15 小时前
cmake 编译ffmpeg的Android 的 so文件的cmake内容
ffmpeg·android studio
ANSIOT16 小时前
QCC3040主端音频蓝牙模块在跑步机(健身车)中的应用
音视频
丘上人16 小时前
ffmpeg aac s16 encode_audio.c
ffmpeg
Hellomino_17 小时前
车载音频开发(二):对音频数据作音量调节
音视频
花里胡哨的菜只因19 小时前
关于在windows系统中编译ffmpeg并导入到自己项目中这件事
c++·windows·ffmpeg
大小先生19 小时前
记录一次FFmpeg的安装过程
ffmpeg
MavenTalk1 天前
音频合成的常见问题
ffmpeg·音视频·语音识别·tts
cuijiecheng20181 天前
音视频入门基础:RTP专题(2)——使用FFmpeg命令生成RTP流
ffmpeg·音视频