作为我的普通用户,这有效:
ffmpeg -f pulse -i default -acodec aac foo.aac
但使用sudo
运行会失败并显示以下信息:
default: No such process
由于我热衷于使用kmsgrab option并且仍然可以访问声音以进行录音,因此如何以特权用户(CAP_SYS_ADMIN)的身份运行ffmpeg?
答案 0 :(得分:0)
连接到Pulse Audio服务器有两个步骤:
服务器路径。默认情况下,PulseAudio服务器通过在$XDG_RUNTIME_DIR
下创建UNIX套接字来使其自身可被客户端访问。通过sudo
运行命令将重置环境,从而使PulseAudio客户端无法找到要连接的服务器。
身份验证。默认情况下,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
ffmpeg device option代替-server
。