【发布时间】:2018-06-30 00:46:36
【问题描述】:
我正在以我所知道的最简单的方式从 AAC 无线电流中录制音频:
r = requests.get('http://someradio.net:someport/stream.aac', stream=True)
self.new_filename()
with open(self.filename, 'wb') as f:
try:
for block in r.iter_content(self.chunk_size): f.write(block)
except KeyboardInterrupt:
pass
生成的音频文件未正确编码(我猜是这样),导致 Premiere Pro 等 Adobe 应用程序以一种有趣的方式对待它们。例如,他们将它们导入为单声道,而它们应该是立体声,最糟糕的是,音频的前半部分在整个持续时间中以 2 倍的速度拉伸,而后半部分则丢失了。
所以我使用 FFmpeg 和 AudioSegment(显然,它知道如何处理这些文件)将 AAC 转换为 MP3,这在 Premiere 中运行良好:
stream = AudioSegment.from_file('output.aac', 'aac')
stream.export('output.mp3', format='mp3')
录音很长,转换需要时间和资源。
我很确定可以对原始 AAC 做一些非常简单的事情,这样它们就可以被 Premiere 正确读取,我只是不知道它是什么。
添加 1:我认为这可能与我正在从中间录制正在进行的流的事实有关,因此 AAC 文件的标题或其他内容没有正确写入。也就是说,单声道/立体声属性似乎搞砸了。
添加 2:Adobe Premiere Pro、After Effects 和 Media Encoder 遇到的问题都是最新版本(CC 2018,4 月)。播放器(MPC、VLC、WMP)和 Vegas Pro 等所有其他应用程序都认为这些 AAC 很好。
添加 3:一个类似的问题(未回答),涉及从在线流录制、AAC 和 2 倍慢的音频损坏: AAC stream resampled incorrectly
【问题讨论】:
标签: python audio stream adobe aac