> On Mar 8, 2022, at 10:32 AM, Michael Koch <[email protected]> wrote:
> 
> Am 08.03.2022 um 19:09 schrieb Steven Kan:
>> After 7.5 years of waiting, my banana plant is finally flowering! I want to 
>> do a time-lapse capture of the flowering and fruiting process. Due to its 
>> location, the easiest way for me to get a camera out there is to use a 
>> little WyzeCam v3 with the RTSP firmware and the Wyze lamp socket. 
>> Unfortunately the WyzeCam doesn’t (yet) have a externally accessible JPG 
>> snapshot feature, so I have a cron job set up to:
>> 
>> ./ffmpeg -rtsp_transport tcp -i rtsp://anonymous:password@$IPAddress/live 
>> -frames:v 1 $outfile
>> 
>> every hour. The results are OK, but not fantastic:
>> 
>> https://www.kan.org/pictures/BananaTimeLapseFirstImage.jpg 
>> <https://www.kan.org/pictures/BananaTimeLapseFirstImage.jpg>
>> 
>> Is there a way to tell ffmpeg to collect N frames of video and output one 
>> single averaged image to improve the SNR? Even if there’s some wind, the 
>> flower stalk shouldn’t be moving much.
>> 
>> I tried:
>> 
>> ./ffmpeg -rtsp_transport tcp -i rtsp://anonymous:[email protected]/live 
>> -frames:v 10 ~/BananaLapse/MultiFrame%03d.jpg
>> 
>> and that results in N JPGs. I suppose I could have a second ffmpeg command 
>> that averages those 10 JPGs, but can this all be done in one pass? Thanks!
> 
> You can use the "tmix" filter before you extract the images from the video.
> 
> Michael

Thanks! Can I get a little help on the syntax? Right now it’s still expecting 
to output multiple images:

./ffmpeg -rtsp_transport tcp -i rtsp://anonymous:[email protected]/live 
-frames:v 10 -vf tmix=frames=10:weights="1" ~/BananaLapse/MultiFrame.jpg
ffmpeg version N-102535-g6ff2aba088-tessus  https://evermeet.cx/ffmpeg/  
Copyright (c) 2000-2021 the FFmpeg developers
  built with Apple clang version 11.0.0 (clang-1100.0.33.17)
  configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg 
--extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl 
--enable-libaom --enable-libass --enable-libbluray --enable-libdav1d 
--enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame 
--enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb 
--enable-libopenh264 --enable-libopenjpeg --enable-libopus 
--enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr 
--enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab 
--enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx 
--enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs 
--enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi 
--enable-version3 --pkg-config-flags=--static --disable-ffplay
  libavutil      57.  0.100 / 57.  0.100
  libavcodec     59.  1.100 / 59.  1.100
  libavformat    59.  2.100 / 59.  2.100
  libavdevice    59.  0.100 / 59.  0.100
  libavfilter     8.  0.101 /  8.  0.101
  libswscale      6.  0.100 /  6.  0.100
  libswresample   4.  0.100 /  4.  0.100
  libpostproc    56.  0.100 / 56.  0.100
Guessed Channel Layout for Input Stream #0.1 : mono
Input #0, rtsp, from 'rtsp://anonymous:[email protected]/live':
  Metadata:
    title           : Session streamed by the WYZE Media Server
    comment         : live
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: h264 (Main), yuv420p(tv, bt709, progressive), 1920x1080, 
20 fps, 20 tbr, 90k tbn
  Stream #0:1: Audio: pcm_alaw, 16000 Hz, mono, s16, 128 kb/s
File '/Users/steven/BananaLapse/MultiFrame.jpg' already exists. Overwrite? 
[y/N] y
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native))
Press [q] to stop, [?] for help
[swscaler @ 0x10e418000] deprecated pixel format used, make sure you did set 
range correctly
Output #0, image2, to '/Users/steven/BananaLapse/MultiFrame.jpg':
  Metadata:
    title           : Session streamed by the WYZE Media Server
    comment         : live
    encoder         : Lavf59.2.100
  Stream #0:0: Video: mjpeg, yuvj420p(pc, progressive), 1920x1080, q=2-31, 200 
kb/s, 20 fps, 20 tbn
    Metadata:
      encoder         : Lavc59.1.100 mjpeg
    Side data:
      cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
[image2 @ 0x7fa809c0adc0] Could not get frame filename number 2 from pattern 
'/Users/steven/BananaLapse/MultiFrame.jpg'. Use '-frames:v 1' for a single 
image, or '-update' option, or use a pattern such as %03d within the filename.
av_interleaved_write_frame(): Invalid argument
[image2 @ 0x7fa809c0adc0] Could not get frame filename number 2 from pattern 
'/Users/steven/BananaLapse/MultiFrame.jpg'. Use '-frames:v 1' for a single 
image, or '-update' option, or use a pattern such as %03d within the filename.
av_interleaved_write_frame(): Invalid argument
[image2 @ 0x7fa809c0adc0] Could not get frame filename number 2 from pattern 
'/Users/steven/BananaLapse/MultiFrame.jpg'. Use '-frames:v 1' for a single 
image, or '-update' option, or use a pattern such as %03d within the filename.
av_interleaved_write_frame(): Invalid argument
[image2 @ 0x7fa809c0adc0] Could not get frame filename number 2 from pattern 
'/Users/steven/BananaLapse/MultiFrame.jpg'. Use '-frames:v 1' for a single 
image, or '-update' option, or use a pattern such as %03d within the filename.
av_interleaved_write_frame(): Invalid argument
[image2 @ 0x7fa809c0adc0] Could not get frame filename number 2 from pattern 
'/Users/steven/BananaLapse/MultiFrame.jpg'. Use '-frames:v 1' for a single 
image, or '-update' option, or use a pattern such as %03d within the filename.
av_interleaved_write_frame(): Invalid argument
[image2 @ 0x7fa809c0adc0] Could not get frame filename number 2 from pattern 
'/Users/steven/BananaLapse/MultiFrame.jpg'. Use '-frames:v 1' for a single 
image, or '-update' option, or use a pattern such as %03d within the filename.
av_interleaved_write_frame(): Invalid argument
[image2 @ 0x7fa809c0adc0] Could not get frame filename number 2 from pattern 
'/Users/steven/BananaLapse/MultiFrame.jpg'. Use '-frames:v 1' for a single 
image, or '-update' option, or use a pattern such as %03d within the filename.
av_interleaved_write_frame(): Invalid argument
[image2 @ 0x7fa809c0adc0] Could not get frame filename number 2 from pattern 
'/Users/steven/BananaLapse/MultiFrame.jpg'. Use '-frames:v 1' for a single 
image, or '-update' option, or use a pattern such as %03d within the filename.
av_interleaved_write_frame(): Invalid argument
[image2 @ 0x7fa809c0adc0] Could not get frame filename number 2 from pattern 
'/Users/steven/BananaLapse/MultiFrame.jpg'. Use '-frames:v 1' for a single 
image, or '-update' option, or use a pattern such as %03d within the filename.
av_interleaved_write_frame(): Invalid argument
frame=   10 fps=0.0 q=24.8 Lsize=N/A time=00:00:00.50 bitrate=N/A dup=10 drop=1 
speed=2.27x    
video:1549kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing 
overhead: unknown
Conversion failed!

_______________________________________________
ffmpeg-user mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".

Reply via email to