Cygwin's ffmpeg incorrectly reports missing input file on a network drive

0

I'm writing a shell script in cygwin to extract frames from a list of videos located on a network drive.

I have assigned the network drive the letter L: on Windows and thus the root of the drive is accessible in cygwin through /cygdrive/l. Essentially the script looks like this :

cat list | while read path
do
    mkdir -p $path
    echo ffmpeg -hide_banner -i /cygdrive/l/$path/video.mov ./$path/frame_%04d.png
    ffmpeg -hide_banner -i /cygdrive/l/$path/video.mov ./$path/frame_%04d.png
done

The output of the script looks like this for each file

ffmpeg -hide_banner -i /cygdrive/l/<path>/video.mov ./<path>/frame_%04d.png 
/cygdrive/l/<path>/video.mov: No such file or directory

However, the file is right there, as I can easily add a file command to check that the file exists in the do loop

do
    mkdir -p $path
    file /cygdrive/l/$path/video.mov
    echo ffmpeg -hide_banner -i /cygdrive/l/$path/video.mov ./$path/frame_%04d.png
    ffmpeg -hide_banner -i /cygdrive/l/$path/video.mov ./$path/frame_%04d.png
done

Which outputs :

/cygdrive/l/<path>/video.mov: Apple QuickTime movie (unoptimized)
ffmpeg -hide_banner -i /cygdrive/l/<path>/video.mov ./<path>/frame_%04d.png 
/cygdrive/l/<path>/video.mov: No such file or directory

The problem persists if I launch the command myself from the shell. However, if I copy the video to the local directory, it does work, but this is a solution I would like to avoid (as the video files are huge).

Is there a reason why cygwin's ffmpeg behaves that way over netork drives ?

Louen

Posted 2019-04-09T22:05:41.643

Reputation: 113

there is no ffmpeg cygwin package. From where have you taken it ? – matzeri – 2019-04-11T07:45:35.917

I think I compiled it myself at some point – Louen – 2019-04-11T20:54:05.377

No answers