【问题标题】:Recording pulse audio as CAP_SYS_ADMIN with ffmpeg使用 ffmpeg 将脉冲音频记录为 CAP_SYS_ADMIN
【发布时间】:2018-12-03 02:42:43
【问题描述】:

作为我的普通用户,这是可行的:

ffmpeg -f pulse -i default -acodec aac foo.aac

但使用sudo 运行失败:

default: No such process

我如何以特权用户 (CAP_SYS_ADMIN) 运行 ffmpeg,因为我热衷于使用 kmsgrab option 并且仍然可以访问声音以进行录制?

【问题讨论】:

  • 这可能最好在 unix.stackexchange.com 上询问

标签: ffmpeg sudo pulseaudio


【解决方案1】:

连接到 Pulse Audio 服务器有两个步骤:

  1. 服务器路径。默认情况下,PulseAudio 服务器通过在$XDG_RUNTIME_DIR 下创建一个 UNIX 套接字来使客户端可以访问自己。通过sudo 运行命令将重置环境,从而使 PulseAudio 客户端无法找到要连接的服务器。

  2. 身份验证。默认情况下,PulseAudio 服务器在 ~/.pulse-cookie 中创建一个身份验证 cookie,客户端必须在连接时将其中继到服务器。如果 $HOME$PULSE_COOKIE 未设置为 cookie 的位置,客户端将无法进行身份验证。

这样通过sudo运行ffmpeg的完整命令如下:

sudo env \
    PULSE_COOKIE=$HOME/.pulse-cookie \
    PULSE_SERVER=$XDG_RUNTIME_DIR/pulse/native \
    ffmpeg -y -f pulse -i default -acodec aac foo.aac 

您可以将PULSE_SERVER 替换为-server ffmpeg device option

【讨论】:

    猜你喜欢
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 2020-08-25
    • 2017-07-10
    • 2012-09-02
    • 2011-09-28
    • 1970-01-01
    相关资源
    最近更新 更多