I'm intrigued how does FFMpeg read a video file from a remote url (for example, an aws s3 presigned url).
- Does it download the file in chunks and then process it chunk by chunk?
- Or does it download some bytes or frames and then continues to process it?
- Or it internally streams the file content and starts processing it?
Because I've observed as soon as I trigger the command it starts processing and the progress can be seen from the very first second. It doesn't show any latency that would naturally come due to a download phase. I've even tried it for larger video files of Gigabytes.
Sample command:
ffmpeg -i "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4" -c:v libx264 -vf scale=1024:576 -c:a aac output.mp4
Just want to understand the working and behind-the-scenes. I'll appreciate if you can also point me to some resources and documentation where I can get to know more about it.