Simple Live Video Encoder
Budget: $250 – $750 USD
I seek a programmer to help me with a proof of concept live video encoder app. The overall idea is to start with one or two live video encoding workflows with an intuitive modern UI. This would be the first of many steps of an ongoing project. I have a very broad long-term goal of a full featured product to solve the needs of many use-cases in the domain of live video encoding and live content authoring.
The requirements are:
1. Build a desktop App that uses Open Source video libraries to perform capture, encoding and packaging of live video streams. This could be FFMPEG, libVLC or other components we find will shorten the work.
2. Dev Platform QT C++ to target Windows x64 Desktop App.
a. NOTE: I am thinking QT will ease future porting to other OS/processors (Mac, Linux, Mobile, MCU…)
b. I will provide either UI wireframes or can provide UI design elements via QT Design Studio
3. The libraries will be compiled into the App so it does not require a prerequisite install of the open-source package.
a. There is a high desire for a self-contained app – single file or no install.
b. If self-contained is not possible then all components need to be part of the App’s install package.
4. Workflows are based on provided CMD scripts that perform the desired scope of work.
The desire is the process runs under the the app vs calling a 3rd party executable.
a. This internal process would allow the encoding statistics to be output to a graph in the UI for visual confirmation of the performance.
b. We can start with one or two workflows with the addition of new workflows in future versions.
5. Set-up User Experience:
a. UI Select: local video device (camera or capture card)
b. UI Select or Enter: Encode profile (codec, bitrate, frame size, etc…)
c. UI Select: Output protocol (file, rtmp, rtp, rtsp…), Enter: protocol options
d. UI Enter: Destination (path, local host:port or server address:key)
e. NOTE: It would be a desire to allow selection of record to file in parallel with network output.
6. Operation User Experience:
a. Status: Configured/Standby
b. Status: Running <- Important ->
i. Display performance graphs of data from encoding process (Bitrate out, frame per second, dropped frames, etc..) Processor and GPU utilization.
ii. Display any non-critical error messages, network or messages from destination server.
c. Status: Error -> Display: Error message
d. Status: Stopping – Ending stream/Completing file write
I am flexible - the idea is to have a working proof of concept app that will provide the basis for a roadmap to a full product release.
The requirements are:
1. Build a desktop App that uses Open Source video libraries to perform capture, encoding and packaging of live video streams. This could be FFMPEG, libVLC or other components we find will shorten the work.
2. Dev Platform QT C++ to target Windows x64 Desktop App.
a. NOTE: I am thinking QT will ease future porting to other OS/processors (Mac, Linux, Mobile, MCU…)
b. I will provide either UI wireframes or can provide UI design elements via QT Design Studio
3. The libraries will be compiled into the App so it does not require a prerequisite install of the open-source package.
a. There is a high desire for a self-contained app – single file or no install.
b. If self-contained is not possible then all components need to be part of the App’s install package.
4. Workflows are based on provided CMD scripts that perform the desired scope of work.
The desire is the process runs under the the app vs calling a 3rd party executable.
a. This internal process would allow the encoding statistics to be output to a graph in the UI for visual confirmation of the performance.
b. We can start with one or two workflows with the addition of new workflows in future versions.
5. Set-up User Experience:
a. UI Select: local video device (camera or capture card)
b. UI Select or Enter: Encode profile (codec, bitrate, frame size, etc…)
c. UI Select: Output protocol (file, rtmp, rtp, rtsp…), Enter: protocol options
d. UI Enter: Destination (path, local host:port or server address:key)
e. NOTE: It would be a desire to allow selection of record to file in parallel with network output.
6. Operation User Experience:
a. Status: Configured/Standby
b. Status: Running <- Important ->
i. Display performance graphs of data from encoding process (Bitrate out, frame per second, dropped frames, etc..) Processor and GPU utilization.
ii. Display any non-critical error messages, network or messages from destination server.
c. Status: Error -> Display: Error message
d. Status: Stopping – Ending stream/Completing file write
I am flexible - the idea is to have a working proof of concept app that will provide the basis for a roadmap to a full product release.