Options for implementing image and video transcoding
When it comes to transcoding media, you have two main options you can choose from in terms of how to implement it: using a premade solution, or doing it yourself. There are merits to either approach, but don't try the DIY approach unless you know what you're doing.
Option 1: Using a premade solution
Some cloud providers offer a built-in image transcoding solution (for example, as part of their CDN offering). While this is convenient, it also has a lot of pitfalls and downsides that need to be considered.
Pros
- No coding effort required to implement
- Won't require any active maintenance from your developers or yourself
- Doesn't present any issues if you decide to move to another provider later on
Cons
- Likely to cost more and be less efficient at compression
- Some resizing tools don't allow you to specify important parameters, like chroma subsampling, and do not let you choose an encoder to use (which can matter a lot for e.g. JPGs)
- Usually involves lazy 'on-demand' resizing, which isn't always desirable
Option 2: Doing it yourself
Implementing image and video transcoding yourself isn't easy, but can be well worth the pain provided it's done correctly.
Pros
- Allows much better control and customisation of how the media is transcoded
- Lets you resize proactively
- Will generally result in better filesizes and quality, reducing your CDN costs
- Will cost less to resize a given number of images compared to a premade solution
Cons
- A lot more effort than using a pre-built solution, both implementing it and maintaining it
- More effort involved if you migrate to another provider, since you'll have to move your code over as well, which may need some tailoring for the new provider's infrastructure/APIs
- Isn't going to perform well unless you use the correct libraries
- Requires knowledge of media formats and encoders for good results