The Cosy Crafter application is offering a way to create custom podcasts based on selected pieces by the owner and user injected songs.
As a singlethreaded library, libmp3lame
presents issues to scale this kind of application without having to use expensive cloud based solutions. This project will allow concurrent MP3 transcoding using all (or selected) cores of a machine to be used and make it possible for personnal computer to make available their own computing power to handle more transcoding and making high demand a smaller issue.
Having a cheap solution to handle concurrent MP3 transcoding of 2+ hours, handling storage and distribution of APIs.
At this stage of the project, this is the used architecture. It will obviously evolve along with features.
- REST Api microservices:
hapi@19
- Websocket microservices:
express@4
+socket-io@3
- Transcoding microservice:
ffmpeg@4.3.2
+fluent-ffmpeg@2
- Environment:
docker
+docker-compose@2.4
Each microservice has to register to an authority through RSA
keys generated at build.
Transcoding workers and Pool service have their own set of RSA
keys also generated at build, allowing outside of newtork registering of workers (making it possible for any personnal computer to make available its own computing power to create a 'cloud' impression).
This idea comes from the creators of le Cosy Corner and has been implemented with the help of my FFmpeg expert Jean Noel Duquesne during the prototyping phase.
UI is a work in progress. You can see an idea of what it should look like right here.