从python内存中的MPEG(.ts)文件中提取音频,而不将MPEG写入文件
Posted
技术标签:
【中文标题】从python内存中的MPEG(.ts)文件中提取音频,而不将MPEG写入文件【英文标题】:Extract audio from a MPEG(.ts) file in memory in python, Without writing MPEG to a file 【发布时间】:2020-02-26 16:10:09 【问题描述】:我正在做一个项目,该项目需要从 .ts(MPEG-2 传输流)文件传输的流中提取音频。
目前我需要先将文件保存到文件系统,然后使用moivepy打开转换成WAV格式的音频。
流媒体需要实时传输,每秒需要处理多个 .ts 文件,Moivepy 太慢,无法全部打开并实时转换。
所以我想知道我是否可以在内存中完成从 MPEG 提取音频的整个过程,避免文件系统 IO 可能会加快该过程。我该怎么做?
【问题讨论】:
所以我想知道我是否可以在内存中完成从 MPEG 提取音频的整个过程,避免文件系统 IO 可能会加快该过程。 你可能可以,是的。 我该怎么做? 这不是主题,Stack Overflow 不能替代指南、教程或文档,也不是免费的代码编写服务。 【参考方案1】:您可以尝试ffmpeg-python 包,您可以在其中查看输出函数中的-target
标志并指定.wav
文件输出。 https://ffmpeg.org/ffmpeg.html#Synopsis。概要页面中的大多数标志都在包中提供。我还没有遇到不提供的。
python-ffmpeg python bindings documentation
示例代码:
import ffmpeg
audio_input = ffmpeg.input(url)
audio_output = ffmpeg.output(audio_input, save_location, target='filename.wav')
audio_output.run()
【讨论】:
以上是关于从python内存中的MPEG(.ts)文件中提取音频,而不将MPEG写入文件的主要内容,如果未能解决你的问题,请参考以下文章
通过 ffmpegwrapper 切割 MPEG-TS 文件?