[FFmpeg-user] watch a folder for new images
Michael Koch
astroelectronic at t-online.de
Sun Jan 30 15:06:24 EET 2022
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:
>>>> Hello,
>>>>
>>>> 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
>>> line:
>>>
>>> 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:
https://stackoverflow.com/questions/11296491/change-target-for-symbolic-link-in-windows
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.
Michael
More information about the ffmpeg-user
mailing list