„Zugriff verweigert“ mit ffmpeg (über Snap) auf externem Laufwerk

„Zugriff verweigert“ mit ffmpeg (über Snap) auf externem Laufwerk

Ich habe ein neues Laufwerk und kann mit Simple problemlos Dateien cpauf das Laufwerk kopieren. Aus irgendeinem seltsamen Grund bekomme ich jedoch Probleme Permission deniedmit ffmpeg.

Die Berechtigungen scheinen in Ordnung zu sein, sofern ich nichts übersehe

> 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*
..

Aber ffmpeg beschwert sich ständig

> 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

Einfaches Kopieren wie unten beschrieben funktioniert einwandfrei.

> cp test.mp4 test.mp4.bak
'test.mp4' -> 'test.mp4.bak'

Irgendwelche Ideen, was los ist? Das ist ziemlich ärgerlich. Beachten Sie, dass ffmpeg installiert ist unter/snap/bin/ffmpeg

Antwort1

Nach einigem Suchen bin ich zu dem Schluss gekommen, dass das Problem beim Snap-Paketmanager liegt. Anscheinend kann Snap standardmäßig nicht auf das Medienverzeichnis zugreifen, daher müssen wir das manuell beheben.

Überprüfen Sie, ob ffmpeg Zugriff auf removable-mediaFolgendes hat

> 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                              -

Fügen Sie diese Berechtigung hinzu, wenn sie fehlt

sudo snap connect ffmpeg:removable-media

Antwort2

Für alle, die das Berechtigungsproblem googeln und diesen Thread sehen:

In meinem Fall bestand das Problem darin, dass ich in meinem Code die gerade mit derselben Methode erstellten Dateien nicht geschlossen habe, bevor ich sie an ffmpeg weitergegeben habe. Wenn ffmpeg also mit abstürzt permission denied, stellen Sie sicher, dass alle offenen Dateihandles geschlossen wurden.

Antwort3

ffmpeg über Snap scheint in einer Art Snap-Beschränkung zu sein, bei der nur bestimmte Verzeichnisse in Snap gebracht werden.

Aktuell (April 2023) ist fest codiert, dass /media und /home/$USER mitgebracht werden, alles andere funktioniert nicht (denken Sie an chroot).

Weitere Informationen finden Sie hier:https://askubuntu.com/a/1040278/32777, insbesondere der Kommentarbereich

Antwort4

Fügen Sie es sudovor Ihren Befehlen hinzu. Bei mir funktioniert es.

verwandte Informationen