I am creating this automator script for macOS that receives videos and extract a frame at a given time in seconds.
After receiving the videos from finder, it runs this applescript asking for the time in seconds, to extract the frame.
The time is stored into the Applescript variable "seconds".
When the applescript ends, I have 3 variables:
- inputVideo, containing the POSIX input video path
- outputVideo, containing the POSIX output video path
- seconds, containing the time in seconds.
The applescript ends with these lines
return fileInputPosix & fileOutputPosix & seconds
end run
and passes the variables to a shell script that starts with these lines:
fileInput=${@[0]}
fileOutput=${@[1]}
seconds=${@[2]}
/usr/local/bin/ffmpeg -i $fileInput -vf "select=eq(n\,$seconds)" -vframes 1 $fileOutput
The last line extracts a frame using FFMPEG.
I am having this error
The action “Run Shell Script” encountered an error: “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_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 libavformat 58. 20.100 / 58. 20.100 libavdevice 58. 5.100 / 58. 5.100 libavfilter 7. 40.101 / 7. 40.101 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 3.100 / 5. 3.100 libswresample 3. 3.100 / 3. 3.100 libpostproc 55. 3.100 / 55. 3.100 /Users/fireball/Desktop/HD/aaa.mp4/Users/fireball/Desktop/HD/aaa.png1000[0]: Not a directory”
I think I am having some concatenation error on the command line string
If I would type this last line on terminal I would type like this:
ffmpeg -i aaa.mp4 -vf "select=eq(n\,1000)" -vframes 1 aaa.png
where aaa.mp4 is the input video and aaa.png is the frame at t=1000s.
any ideas?