Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Agreeing with this. Unless you have very specific performance codec or packaging needs i think external ffmpeg process etc will work fine. In my experience with transcoding the cpu/memory/etc overhead of an external process is usually dwarfed by the actual transcoding workload. Also the extra process overhead is not typically a problem as you can't really do that many concurrent transcodings on one host anyway. If you want some inspiration you can have a look at https://github.com/wader/ydls
Ok think i would either use some metadata library like https://github.com/dhowden/tag or ffprobe with JSON output to read metadata and then use cli ffmpeg to transcode and write metadata. Maybe later if you feel it does not give you enough control maybe concider using some cgo libavformat/libavcodec wrapper.