offers innovative video solutions, live streaming, VOD and a platform meant to help its users monetize their videos
Our client is ITWorksMe, a company from Lebanon that offers innovative video solutions, including live streaming, VOD (video on demand) and a platform meant to help its users monetize their videos. The company owns more than 80% of the video services market in Lebanon and GCC (UAE, Saudi Arabia, Qatar, Bahrain, Kuwait, Dubai, Iraq and Egypt).
Our client wanted an application in which users could create videos online by using a mix of photos, music, text and special effects. They wanted a web-based application that the users would run in the web browser, without having to download or install any software.
The project aimed to simplify audio and video editing by turning these processes into a series of shell commands, and then overseeing their execution. Media inputs can be downloaded from remote hosts and rendered outputs can be uploaded as well. Using the same request mechanisms, external systems can be alerted by callbacks triggered when a job is started, during its processing and/or when it's completed. In addition to the raw media assets (video, audio and images), jobs can contain mash inputs that describe more complex compositing, tilting and other effects. The Movie Masher project can be used to generate and display JSON formatted mash descriptions within a web browser, and Angular – Movie Masher can be used to package these into job descriptions.
Our team needed to translate Ruby to C# and adapt an existing open source project to the client’s needs.
Using FFmpeg for video operations with specific parameters
FFmpeg is a suite of libraries and programs for handling video, audio, and other multimedia files and streams. At its core is the FFmpeg program itself, designed for command-line-based processing of video and audio files, widely used for format transcoding, basic editing (trimming and concatenation), video scaling, video post-production effects, and standards compliance (SMPTE, ITU). It can also convert between arbitrary sample rates and resize video very fast, with a high quality polyphase filter.
Completing this project took 1000 hours. We studied similar solutions and decided with the client the solution’s specifications. We decided to start from an open source project, translate Ruby language to C# and adapt an existing open source code to our client’s needs.
Our team provided the design, architecture and technical solution.
Video Builder Diagram
The application met all of the customer’s needs and was delivered on time. Instead of building a solution from scratch or purchase libraries to meet the client’s needs, we customized an open source solution, which saved them both time and money.