使用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是完全相同的。
相关推荐
长沙红胖子Qt8 小时前
FFmpeg开发笔记(十二):ffmpeg音频处理、采集麦克风音频录音为WAV
ffmpeg·pcm·wav·录音·麦克风
音视频牛哥16 小时前
系统级超低延迟音视频直播模块时代:如何构建可控、可扩展的实时媒体底座
人工智能·音视频·大牛直播sdk·rtsp播放器·rtmp播放器·rtsp服务器·rtmp同屏推流
aqi0018 小时前
FFmpeg开发笔记(八十一)FFmpeg代码对RTSP和RTMP的推流区别
ffmpeg·音视频·直播·流媒体
却道天凉_好个秋20 小时前
音视频学习(六十八):视频采集原理
音视频·视频采集
Gigavision21 小时前
SCAMPS视频生理信号测量数据集
音视频
EasyDSS1 天前
互联网视频云平台EasyDSS无人机技术在烟火巡检场景中的的应用
音视频·无人机
千里马学框架2 天前
音频焦点学习之AudioFocusRequest.Builder类剖析
android·面试·智能手机·车载系统·音视频·安卓framework开发·audio
奔跑吧邓邓子2 天前
【C++实战(71)】解锁C++音视频开发:FFmpeg从入门到实战
c++·ffmpeg·实战·音视频
骄傲的心别枯萎2 天前
项目1:FFMPEG推流器讲解(一):FFMPEG重要结构体讲解
linux·ffmpeg·音视频·视频编解码·rv1126
fl1768312 天前
基于pyqt5实现的视频抽帧工具源码+项目说明用于目标检测图片采集
qt·目标检测·音视频