Skip to content

Add video format detection and support for 4:2:2 formats#63

Closed
mserajnik wants to merge 1 commit intom1k1o:masterfrom
mserajnik:add-422-support
Closed

Add video format detection and support for 4:2:2 formats#63
mserajnik wants to merge 1 commit intom1k1o:masterfrom
mserajnik:add-422-support

Conversation

@mserajnik
Copy link
Copy Markdown

@mserajnik mserajnik commented Jul 26, 2025

Preface: I don't have much experience with Go, but this has worked for me and I figured I might as well open a PR for visibility. I don't plan on adjusting the PR. Feel free to take the code as is or use it as inspiration for a more proper implementation; or simply close the PR if this is not something that is desirabe to have.

Edit: I have closed the PR due to no reaction or feedback in over half a year, as I prefer not to keep open-ended responsibilities indefinitely.


I use go-transcode to be able to preview stock videos (many of them quite old and with now outdated video encoding) on the web as part of a larger media management system (for a custom-built DAM service). I ran into the issue that transcoding a video with a 4:2:2 format didn't work, because the high preset doesn't support 4:2:2 chroma subsampling. To fix this, I added basic video format detection and made it so that the high422 profile is used if a video with any 4:2:2 format is detected.

According to the ffmpeg docs the high422 profile only supports yuv420p, yuv422p, yuv420p10le and yuv422p10le, which is something I only realized after looking up all the 4:2:2 formats I was able to find. I still kept all of them in the is422Format check and using the high422 profile might or might not work for them.

@mserajnik mserajnik closed this Mar 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant