You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用python-vlc将m3u音频流录制为MP3格式?

修正后的Python-VLC录制M3U音频流代码

我来帮你把这段录制音频流的代码补全并修正问题~你的思路是对的,但有几个小细节需要调整,比如语法错误、工具选择和资源释放逻辑,下面是完善后的版本:

import vlc
import time

# 初始化VLC实例,配置转码规则与输出文件
instance = vlc.Instance(
    "--sout=#transcode{vcodec=none,acodec=mp3,ab=128,channels=2,samplerate=44100}:file{dst=test.mp3,no-overwrite}"
)

# 创建媒体对象,注意流地址要加引号(字符串必须用引号包裹)
media = instance.media_new("http://82.135.234.195:8000/opus3.mp3.m3u")

# 单流录制用普通MediaPlayer更简洁,没必要用media_list_player
player = instance.media_player_new()
player.set_media(media)

# 开始播放的同时,VLC会自动按照配置转码并写入文件
player.play()

# 录制30秒,你可以根据需求修改时长
time.sleep(30)

# 停止录制与播放
player.stop()

# 释放资源,避免内存泄漏
player.release()
instance.release()

关键调整说明:

  • 修复语法错误:原代码中的流地址没有加引号,会直接触发Python语法错误,必须把字符串用引号括起来。
  • 更换播放器类型:media_list_player是用于播放多文件列表的工具,单音频流录制用普通MediaPlayer逻辑更清晰、更轻量。
  • 补全停止与资源释放:原代码的p...应该是停止播放器的操作,这里补充了player.stop(),同时添加了资源释放步骤,避免长期运行导致内存占用过高。

额外小提示:

如果需要长时间录制,不建议用time.sleep()硬等,可以考虑监听播放器状态,或者结合信号处理(比如捕获Ctrl+C来停止录制),这样更灵活。

内容的提问来源于stack exchange,提问作者user3443710

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:07:24