
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 ffmpeg
nicht an PATH
der Aufgabe von Jenkins.
Führen Sie es type ffmpeg
in Ihrem Terminal aus, um zu sehen, wo ffmpeg
es sich in Ihrem Jenkins-Job befindet, echo $PATH
und vergleichen Sie.