ffmpeg(스냅을 통해) 외부 드라이브에서 "권한이 거부되었습니다"

ffmpeg(스냅을 통해) 외부 드라이브에서 "권한이 거부되었습니다"

cp새 드라이브가 있고 드라이브에 있는 파일을 쉽게 복사할 수 있습니다. 그러나 이상한 이유로 Permission deniedffmpeg를 사용하고 있습니다.

뭔가 빠진 것이 없다면 권한은 괜찮아 보입니다.

> 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은 미디어 디렉터리에 액세스할 수 없으므로 이 문제를 수동으로 수정해야 합니다.

removable-media다음과 같이 ffmpeg에 액세스 권한이 있는지 확인하십시오.

> 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

Google에서 권한 문제를 검색하여 이 게시물을 보는 모든 사람:

내 경우 문제는 내 코드에서 방금 만든 파일을 ffmpeg에 전달하기 전에 동일한 방식으로 닫지 않았다는 것입니다. 따라서 ffmpeg가 충돌하는 경우 permission denied열려 있는 모든 파일 핸들이 닫혀 있는지 확인하십시오.

답변3

스냅을 통한 ffmpeg는 특정 디렉토리만 스냅으로 가져오는 일종의 스냅 제한에 있는 것 같습니다.

현재(2023년 4월) /media 및 /home/$USER는 하드코딩되어 있으며 다른 모든 항목은 작동하지 않습니다(chroot를 생각해 보세요).

자세한 내용은 여기를 참조하세요.https://askubuntu.com/a/1040278/32777특히 댓글창이요

답변4

sudo명령 앞에 추가되었습니다. 이것은 나에게 효과적입니다.

관련 정보