transitive-bullshit / ffmpeg-gl-transition

FFmpeg filter for applying GLSL transitions between video streams.
650 stars 126 forks source link

rendering bug for some aspect ratios #7

Closed transitive-bullshit closed 5 years ago

transitive-bullshit commented 6 years ago

There's currently an bug where some video dimensions result in warped, funky-looking transitions.

I'm not sure exactly what the bug is, but my best guess is that it has to do with how AVFrame represents its frame data. It seems that AVFrame adds padding to each line to maximize use of SIMD. We're definitely not accounting for this padding, and I think that's what's causing the issue for some video sizes.

Adding this here to track progress.

nudja commented 6 years ago

I have experienced this problem quite a lot on a mac. If I change the aspect ratio of the files then the problem can go away but I have not formulated a pattern yet.

What I have noticed, if it helps, is that the default transition seems to work on all files that otherwise fail with a more complex transition. Does that help?

transitive-bullshit commented 6 years ago

Yeah, I know why it's happening, just haven't had the time or motivation to fix it since I'm no longer actively using this in my project (switched to ffmpeg-concat).

The reason it doesn't repro for the simple fade transition is because the fade transition maps each input pixel directly to an output pixel.

The problem happens because ffmpeg internally adds padding to each row of memory with some video resolutions, and this implementation doesn't take this into consideration.