[FFmpeg-user] watch a folder for new images
astroelectronic at t-online.de
Sun Jan 30 15:32:29 EET 2022
Am 30.01.2022 um 14:06 schrieb Michael Koch:
> Am 30.01.2022 um 09:49 schrieb Michael Koch:
>> Am 30.01.2022 um 05:28 schrieb Gyan Doshi:
>>> On 2022-01-30 02:11 am, Michael Koch wrote:
>>>> Am 29.01.2022 um 20:36 schrieb Michael Koch:
>>>>> is it possible to watch a folder for new images (like
>>>>> fileSystemWatcher in C#), and if a new image appears, then load it
>>>>> in FFmpeg? The question is for Windows.
>>>>> Very large PNG images (about 30 Megapixels) are written to the
>>>>> folder every 5 seconds. I want to load these images, extract the
>>>>> four corners, enlarge them by a factor 10, stack the four images
>>>>> together and show the result on the screen, until the next image
>>>>> appears. The filtering is no problem, the question is only how to
>>>>> watch the folder for new images.
>>>> I did try to read the same image again and again with this command
>>>> ffmpeg -loop 1 -i input.png -window_x 0 -window_y 0 -f sdl2 -
>>>> I was hoping that I could overwrite the input image by another
>>>> image, but that doesn't work. Access denied, because the file is
>>>> open in FFmpeg.
>>> Use -stream_loop -1 instead of loop. Update the image atomically
>>> i.e. not during a read window.. Best way to update is to create a
>>> symlink and use that as input. Repoint the symlink when the new
>>> image file is ready.
>> I did create a symlink which is pointing to a PNG image. When I
>> double click on the symlink, the image is shown.
>> But something must be wrong in my FFmpeg command line.
>> ffmpeg -framerate 1 -stream_loop -1 -i symlink.lnk -window_x 0
>> -window_y 0 -f sdl2 -
>> I get this error message:
>> symlink.lnk: Invalid data found when processing input
> In the meantime I found out that the symlink has to be created with
> administrator rights and mklink.
> Now FFmpeg does read the symlink and show the image.
> I found your answer here:
> The problem is that FFmpeg seems to read the link only one time. When
> I change the link target (while FFmpeg is running) with the copy
> command, the link is actually changed but FFmpeg is still showing the
> first image.
> When I stop and restart FFmpeg, then it shows the new image.
The problem is solved. It works after I added -f image2 to the command
ffmpeg -framerate 1 -stream_loop -1 -f image2 -i symlink.lnk -window_x 0
-window_y 0 -f sdl2 -
Now it's possible to change the symlink in realtime.
More information about the ffmpeg-user