使用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是完全相同的。
相关推荐
_Cherry|18 分钟前
Unity中使用AVPRO播放视频
unity·c#·音视频
wuk99822 分钟前
基于帧差分法的视频运动检测MATLAB实现
开发语言·matlab·音视频
Yutengii14 小时前
b站视频下载到电脑本地的方法有哪些
音视频
summerkissyou198715 小时前
Android13-Audio-AudioTrack-播放流程
android·音视频
千里马-horse16 小时前
FFmpeg 工具文档
ffmpeg
Black蜡笔小新17 小时前
安防监控/录像存储EasyCVR视频汇聚平台无法启动的原因排查
音视频
xingqing87y17 小时前
祝寿视频怎么制作:4步制作创意祝寿视频
音视频
qq_2562470518 小时前
Spring Boot + NATS 实战:如何让 IM 系统处理图片/视频像处理文本一样快?
spring boot·后端·音视频
何包蛋H19 小时前
医疗视频播放组件开发实战:支持病灶标注、缓存播放与性能优化
微信小程序·音视频·notepad++
好游科技19 小时前
使用WebRTC开发直播系统源码与音视频语聊房实践指南
音视频·webrtc·im即时通讯·社交软件·社交语音视频软件