%20auf%20externem%20Laufwerk.png)
Ich habe ein neues Laufwerk und kann mit Simple problemlos Dateien cp
auf das Laufwerk kopieren. Aus irgendeinem seltsamen Grund bekomme ich jedoch Probleme Permission denied
mit 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-media
Folgendes 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 sudo
vor Ihren Befehlen hinzu. Bei mir funktioniert es.