
cp
我有一個新驅動器,我可以在驅動器上輕鬆複製文件。然而由於一些奇怪的原因我使用了Permission denied
ffmpeg。
權限看起來不錯,除非我遺漏了一些東西
> ll /media/manos/6TB/
drwxrwxrwx 13 manos 4096 Apr 16 00:56 ./
drwxr-x---+ 6 manos 4096 Apr 16 00:49 ..
-rwxrwxrwx 1 manos 250900209 Apr 15 17:28 test.mp4*
..
但 ffmpeg 一直抱怨
> ffmpeg -i test.mp4 test.mov
ffmpeg version n4.1.4 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
configuration: --prefix= --prefix=/usr --disable-debug --disable-doc --disable-static --enable-avisynth --enable-cuda --enable-cuvid --enable-libdrm --enable-ffplay --enable-gnutls --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopus --enable-libpulse --enable-sdl2 --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxvid --enable-nonfree --enable-nvenc --enable-omx --enable-openal --enable-opencl --enable-runtime-cpudetect --enable-shared --enable-vaapi --enable-vdpau --enable-version3 --enable-xlib
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
test.mp4: Permission denied
只需像下面這樣複製就可以了。
> cp test.mp4 test.mp4.bak
'test.mp4' -> 'test.mp4.bak'
對正在發生的事情有什麼想法嗎?這很煩人。注意 ffmpeg 安裝在/snap/bin/ffmpeg
答案1
因此,經過大量挖掘後,我認為問題出在快照套件管理器。顯然預設情況下,snap 無法存取媒體目錄,因此我們需要手動修復此問題。
檢查 ffmpeg 是否有權存取removable-media
如下所示
> snap connections | grep ffmpeg
desktop ffmpeg:desktop :desktop -
home ffmpeg:home :home -
network ffmpeg:network :network -
network-bind ffmpeg:network-bind :network-bind -
opengl ffmpeg:opengl :opengl -
optical-drive ffmpeg:optical-drive :optical-drive -
pulseaudio ffmpeg:pulseaudio :pulseaudio -
wayland ffmpeg:wayland :wayland -
x11 ffmpeg:x11 :x11 -
如果缺少該權限,請新增該權限
sudo snap connect ffmpeg:removable-media
答案2
對於任何在谷歌上搜尋權限問題並看到此線程的人:
就我而言,問題是在我的程式碼中,在將它們傳遞給 ffmpeg 之前,我沒有關閉剛剛以相同方法建立的檔案。因此,如果 ffmpeg 因 崩潰permission denied
,請確保所有開啟的檔案句柄已關閉。
答案3
透過 snap 的 ffmpeg 似乎處於某種 snap 限制中,其中只有某些目錄被帶入 snap 中。
目前(2023 年 4 月),/media 和 /home/$USER 被硬編碼,其他一切都不起作用(想想 chroot )。
請在此處查看更多資訊:https://askubuntu.com/a/1040278/32777特別是評論區
答案4
sudo
在命令之前添加。這個對我有用。