I'm writing an app that uses ffmpeg to convert audio/video files. I can call ffmpeg and specify it's options, I can see that it's working. I want to be able to check how much of the job is done, so I can present it to user. As I've read ffmpeg doesn't support any progress bar or percentage and ffmpeg console output is not very friendly, so I cannot simply show it's output to user, because it will look awful. I am not using any wrapper and do not plan to use any because I need to write my own backend that call ffmpeg and frontend to communicate with user.
I'm using System.Threading to start ffmpeg in new process, I can say if the process is running, or get it's exit code, but I don't see any way to get info about how much of the job is done. I thought I can simply measure input file size and check periodically output file size, but it won't be any accurate, because the output file will have different size depending on what codec and container we use. I've read I can also use frame progress, but the way of obtaining it is still not clear to me. I also need to do it for audio files.
Is there any reasonable way to do so?