Q: Performance #9
Description
Hi, I need to transcode video streams from multiple sources to "normalize" them into single codec and container and whatnot so that I can pass them down the pipeline. ffmpeg is essentially the only player on the market so I have to use it and there is no native Go library for things like this. So I am wondering, from performance point of view, is it better to use CGO and one of the go libraries that map to ffmpeg's C api or to use your project that just uses cli commands to standalone ffmpeg library? I would assume that using the cgo version would be faster but since the cgo is known to be slower than prue go due to the way go and c communicate, maybe talking with standalone ffmpeg binary will be faster? Also how is the concurrency performance? I'll be needeing to process multiple streams at once so I am not sure how standalone ffmpeg handles this. Lastly, is it possible to pipe data through sockets or does it have to go through files or stdout? The examples use directories which concerns me from performance point of view.