首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PyDub时出错: WAVE格式不支持pcm_s8编解码器

使用PyDub时出错: WAVE格式不支持pcm_s8编解码器
EN

Stack Overflow用户
提问于 2019-08-30 11:59:24
回答 1查看 494关注 0票数 1

已尝试读取WAVE文件。

在过去的几个月里,Pydub一直工作得很好,直到我遇到了一种特定的WAVE文件格式,我无法导入到Python中(但在windows media player和其他播放器上播放时没有任何问题)。

代码语言:javascript
复制
from pydub import AudioSegment

file = r"NICE_Dev.wav"
print(utils.mediainfo(file))
try:
    data = AudioSegment.from_file(file)

except Exception as e:
    print(e)

错误消息为:

代码语言:javascript
复制
ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 8.3.1 (GCC) 20190414
  configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Guessed Channel Layout for Input Stream #0.0 : mono
Input #0, wav, from 'NICE_Dev.wav':
  Duration: 00:25:55.39, bitrate: 64 kb/s
    Stream #0:0: Audio: pcm_mulaw ([7][0][0][0] / 0x0007), 8000 Hz, mono, s16, 64 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (pcm_mulaw (native) -> pcm_s8 (native))
Press [q] to stop, [?] for help
[wav @ 00000265db3c1bc0] pcm_s8 codec not supported in WAVE format
Could not write header for output file #0 (incorrect codec parameters ?): Function not implemented
Error initializing output stream 0:0 -- 
Conversion failed!

我相信是由于pcm_s8编码的问题,但是我想不出如何解决这个问题,使用"utils.mediainfo“的音频文件的详细信息是:

代码语言:javascript
复制
{'index': '0', 'codec_name': 'pcm_mulaw', 'codec_long_name': 'PCM mu-law / 
G.711 mu-law', 'profile': 'unknown', 'codec_type': 'audio', 'codec_time_base': 
'1/8000', 'codec_tag_string': '[7][0][0][0]', 'codec_tag': '0x0007', 
'sample_fmt': 's16', 'sample_rate': '8000', 'channels': '1', 'channel_layout': 
'unknown', 'bits_per_sample': '8', 'id': 'N/A', 'r_frame_rate': '0/0', 
'avg_frame_rate': '0/0', 'time_base': '1/8000', 'start_pts': 'N/A', 
'start_time': 'N/A', 'duration_ts': '12443128', 'duration': '1555.391000', 
'bit_rate': '64000', 'max_bit_rate': 'N/A', 'bits_per_raw_sample': 'N/A', 
'nb_frames': 'N/A', 'nb_read_frames': 'N/A', 'nb_read_packets': 'N/A', 
'DISPOSITION': {'default': '0', 'dub': '0', 'original': '0', 'comment': '0', 
'lyrics': '0', 'karaoke': '0', 'forced': '0', 'hearing_impaired': '0', 
'visual_impaired': '0', 'clean_effects': '0', 'attached_pic': '0', 
'timed_thumbnails': '0'}, 'filename': 'NICE_Dev.wav', 'nb_streams': '1', 
'nb_programs': '0', 'format_name': 'wav', 'format_long_name': 'WAV / WAVE 
(Waveform Audio)', 'size': '12443174', 'probe_score': '99'}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-24 17:01:38

问题已解决-不确定原因,但标准输入不适用于某些WAV编码,通过使用未记录的方法from_file_using_temporary_files()解决了此问题。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57720320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档