The expectation is to write a program (more like a function) in C# that could be easily embedded into a more general software.
The function would have 2 objectives:
1. convert 1080p / 60 fps video to other resolutions / framerate
2. add watermark logo to the output
- As Input the function would take the path to the 1080p/60fps video (local disk), watermark logo image and position coordinates of the logo on the video
- As Output it would generate videos in [url removed, login to view] standard:
> 1080p 30fps (slow motion of the 60fps)
> 720p 60 fps with watermark
> (potentially) also 1080p 60fps i.e. same as original but for consistency of used codeck - perhaps a bit smaller in size
[url removed, login to view] encoding used should be most standard and compatible with all popular/default players and devices (browser players, mobile, PC, Mac, editing software etc.)
This project is a "video conversion" part of a bigger solution where 6-8 cameras (samsung FullHd industrial cameras) record and send small video files (10s - 120s) to a local server, where they get pre-processed and then they are sent to the Azure cloud. Videos can be watched locally via dedicated browser-based site (and dedicated video player) as well as they can be watched online via similar site but hosted on azure cloud.
Cameras are working around 12h during the day but they are user activated (which means they can all work at the same time but would not record constantly like that). Nevertheless, there will be a lot of videos coming in and a single PC server (Windows - intel i7) should be able to convert efficiently and fast so that all the videos from one day can be uploaded to the cloud before start of the following day.
Encoded video files with the watermark should have the size no bigger than the original (currently ~15Mbps at FullHD 60 fps). Potentially lower size if possible to keep the high image quality.
Out of scope (already exists):
- capturing videos from cameras and storing them on the server disk
- sending videos to the cloud
- browser application and player (online / offline)
- integration of this code with the bigger project