외부 드라이브의 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-mediaffmpeg가 아래와 같이 액세스할 수 있는지 확인하세요 .

> 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

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

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

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

답변4

sudo명령 앞에 추가하세요 . 그것은 나를 위해 작동합니다.

관련 정보