Der Find-Befehl schlägt in Jenkins fehl, aber nicht im Terminal

Der Find-Befehl schlägt in Jenkins fehl, aber nicht im Terminal

Ich möchte alle Frames aus vielen Videodateien automatisch in einem Jenkins-Build-Job mit ffmpeg exportieren.

Dieses Skript läuft einwandfrei, wenn ich mich per SSH mit dem Slave in Verbindung setze und es im selben Ordner ausführe:

find . -name "*.mp4" -exec ffmpeg -i {} -qscale:v 1 -vf fps=6 {}_exportedFrame_%d.jpg \;

Es sollte alle MP4-Dateien finden und ffmpeg auf ihnen ausführen.

Es schlägt mit dieser Meldung fehl, wenn Jenkins es ausführt (Shell-Plugin ausführen):

08:51:32 find: ffmpeg: No such file or directory
08:51:32 find: ffmpeg: No such file or directory
08:51:32 find: ffmpeg: No such file or directory
08:51:32 find: ffmpeg: No such file or directory
...many more lines of the same error

Ausgabe vom Terminal (es läuft einwandfrei):

bash-3.2$ find . -name "*.mp4" -exec ffmpeg -i {} -qscale:v 1 -vf fps=6 {}_exportedFrame_%d.jpg \;
ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers
  built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gpl --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-opencl --enable-videotoolbox
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
...

Auf dem Build-Slave läuft die neuste Version von Mac OS. FFMPeg ist installiert.

edit: Ich habe ffmpeg zur Pfaddatei hinzugefügt

bash-3.2$ cat /etc/paths
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin/ffmpeg
bash-3.2$ type ffmpeg
ffmpeg is /usr/local/bin/ffmpeg

Ich erhalte immer noch den gleichen Fehler.

Antwort1

Liegt wahrscheinlich ffmpegnicht an PATHder Aufgabe von Jenkins.

Führen Sie es type ffmpegin Ihrem Terminal aus, um zu sehen, wo ffmpeges sich in Ihrem Jenkins-Job befindet, echo $PATHund vergleichen Sie.

verwandte Informationen