I shoot videos of soccer games on a Canon Vixia which records at 60fps HD with h264 compression. From the camera it results in 20GB files which I have been recompressing (to save on storage and increase upload speed) using h265 with a bitrate capped at 7000k and 60fps, which is high quality enough for my needs. I use the hevc_amf encoder with an AMD graphics card and that will recompress a 1h20m HD video in about 40m (2x), which I’m pretty happy with.
Recently, I’ve learned how to use vidstab which really cleans up my jiggly video pretty nicely. So now I would like to both stabilize with vidstab and recompress to h265 before archiving. I am looking for some recommendations on how to sequence the workflow in the most efficient manner while still getting good results. Should I 1) first do vidstab on my original 20G file (both the detect and transform passes)? Or, should I 2) recompress using the hardware accelerated hevc_amf encoder, before doing the stabilization?
- If the first option, a follow up question. I run the vidstabtransform as follows:
ffmpeg.exe -i input.mp4 -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 outputstabilized.mp4
This is according to the ffmpeg.org docs. It seems to change the bitrate from the original 30Mbps to about 10Mbps. Why is that? Can I control that and keep it at the original bitrate? Should I? (Also, do I need the unsharp mask? Is that because there’s some inherent zooming with the stabilization?).
Downside of this approach seems to be that you’d get better compression with h265 after stabilization given less movement in the pixels, but maybe it’s not a big difference.
- If the second option, can I still control the bitrate on the stabilization output?
If anyone has any other workflows they would recommend, I’d be all ears too. (I have thought about trying to use complex filtermaps but they seem… complex 🙂 and I haven’t invested the time to wrap my head around them).
Thanks in advance!