鱼C论坛

 找回密码
 立即注册
查看: 224|回复: 2

怎么用python来探查当前的播音设备,并把这个参数传给ffmpeg来录屏和录系统发出的s...

[复制链接]
发表于 2025-3-28 11:23:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
怎么用python来探查当前的播音设备,并把这个参数传给ffmpeg来录屏和录系统发出的声音呢?

我用python调用ffmpeg来录视频,怎么声音录得是麦克风的输入!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-3-28 20:51:32 | 显示全部楼层
问AI
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-4-2 20:45:00 | 显示全部楼层
解决方案:使用Python+FFmpeg录制系统声音(非麦克风)

关键思路:通过FFmpeg的dshow获取Windows系统声音设备名,再传递给Python脚本

  • 1. 查看系统声音设备名称
    在cmd运行:
    1. ffmpeg -list_devices true -f dshow -i dummy
    复制代码

    在输出中找到类似这样的系统声音设备(不同电脑名称不同):
    「DirectShow audio devices」
    「虚拟音频采集器」

  • 2. Python获取设备名示例代码
    [code=python]
    import subprocess
    import re

    # 获取所有音频设备
    cmd = 'ffmpeg -list_devices true -f dshow -i dummy'
    result = subprocess.run(cmd, capture_output=True, text=True, encoding='gbk')

    # 提取音频设备(注意中文系统用gbk解码)
    audio_devices = re.findall(r'\"(.*?)\" \(audio\)', result.stderr)
    print("找到的音频设备:", audio_devices)

    # 假设选择第一个设备(根据实际情况修改索引)
    system_audio = audio_devices[0]
    [/code]
  • 3. 最终录制命令模板

    1. ffmpeg -f gdigrab -i desktop -f dshow -i audio="设备名称" output.mp4
    复制代码

  • 4. Python完整调用示例
    [code=python]
    import subprocess

    device_name = "虚拟音频采集器"  # 替换为实际设备名

    cmd = [
        'ffmpeg',
        '-f', 'gdigrab', '-i', 'desktop',
        '-f', 'dshow', '-i', f'audio={device_name}',
        '-vcodec', 'libx264',
        '-crf', '23',
        '-preset', 'ultrafast',
        'output.mp4'
    ]

    subprocess.run(cmd)
    [/code]


常见问题:
1. 若没有系统声音设备,需安装虚拟声卡(如VB-Cable)或启用"立体声混音"
2. macOS/Linux需改用其他采集方式(avfoundation/pulse)
3. 确保ffmpeg.exe在系统PATH环境变量中

参考链接:
https://ffmpeg.org/ffmpeg-devices.html#dshow

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-25 22:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表