我在运行ubuntu 14的服务器上安装了ffmpeg。我的烧瓶app项目根位于/ var / www / project / 我能够上传文件,我的python脚本能够写入新文件,但是当我在我的脚本中运行ffmpeg时,它会拒绝权限。 还在终端
中运行以下行ffmpeg -i path/to/inputfile /path/to/outputfile & ps aux | grep ffmpeg
gives the user running the process is "ubuntu" which has write access to the project folder and its subfolders. As i told you other python script run by user "ubuntu" is able to create file.
权限被拒绝在两种情况下都会发生错误(python脚本和直接在终端中)
更新: 还看着与权限混淆,有没有办法从/ home / ubuntu / project而不是/ var / www / project运行应用程序。我正在使用带有apache的mod_wsgi来获取我的flask-app。
答案 0 :(得分:0)
现在我添加了sudo并且它工作正常,但我不确定运行ffmpeg,因为sudo会导致任何安全问题。有人请澄清一下。
cmd='sudo ffmpeg -i '+f_name+' -acodec '+job['audio_ff']+' -b:a '+job['audio_bps']+'k - b:v '+job['video_bps']+'k -s '+job['res_width']+'x'+job['res_height']+' '+new_file
p=subprocess.Popen(shlex.split(cmd),stdout=subprocess.PIPE)
答案 1 :(得分:0)
您的应用创建的文件驻留在var / www / project中,如果您想要读取/访问它们,这些文件需要管理权限。如果不使用sudo,则无法访问受管理的受保护文件。
您可以更改您的应用创建的文件的权限,以便在没有sudo的情况下通过ffmpeg访问,或者使用chown将所有权更改为您的用户名。
您是否检查过您的ffmpeg可执行文件是否具有所有用户的权限?