The transcoder is a process that will take car of media conversion including Audio & video, subtitles and any other media elements from any format to any format, for example from MP3 to AAC, from Mpeg2 to H.264 When converting from a media to another, you also must take car about the container formats, and every container can support a limited set of audio & video codecs
For example :
MKV can support any combination of OGG/MP3 /AAC for audio, and H.264/Teora/OGV for video codecs, while MP4 support AAC/MP3 for audio and MPEG4/H.264 for video
Required features :
1. Support for any possible codec including : AAC (LC/He-AAC), OGG, MP3 for audio and H.264 (every profile including Base & main & high), MPEG4, Teora, and OGV for VIDEO
2. Support for the following streaming protocols is mandatory : http, HLS (http Live Streaming), UDP, RTP, RTMP, and RTSP
3. Possibility to have any protocol for input, and any protocol for output, including for example UDP (MPEG2TS) as a input with possibility for multiple output in different resolution and different streaming protocols
4. Support for different container formats including MPEG2TS, MPEG4, MKV & 3GP, and different subtitle formats
5. If using UDP or RTP for input, we must have the possibility of having it as a output in Multicast or UNICAST
6. Hardware based H.264 encoding using CPU who support that using Intel quicksigne (OPTIONAL)
7. Low processing requirement if POSSIBLE
8. Possibility to insert own ad or logo in any logical position on the screen
9. Possibility of proxying between different protocols, for example pull RTMP stream and have it in HLS & http with respect to the different supported formats per protocol
10. The transcoding application should be a single process based on LIBVLC or FFMPEG, not a script that run some external app
11. A web server to be able to manage streams start, stop, and monitor the status of the different streams, the web server must be built-in to the transcoding process, not separate. (preferred library for web SERVER : LibWebSocket)
12. The streams can be configured preferably in different files, single file per stream in a folder called conf/stream, so conf is the main folder that will have the main config file, and stream is a subfolder that will have the streams.
13. Maybe there’s something that could be discussed or added
Required skill :
C/C++, with good experience With FFMPEG or LibVLC…
Linux (Debian 64bit), with good multi threading support
- Full documentation and source code for the project must be provided.
The bidder must have experience on transcoding video/audio stream, keep timeline and have to show us proof of concept projects
5 freelancers are bidding on average $794 for this job
Hello. I can work for you. I've experienced in C, C++, Network, OS, FFmpeg development. I think youre request is some large, we must develope it one by one. I'll do my best. Thank you.