Skip to content

Many combinations of squeezev+easing+reverse produce access violations. #16

@Qriist

Description

@Qriist

I had first noticed that there was a critical issue when a file kept coming up corrupt. Ffmpeg wasn't spewing its normal error messages but instead simply exiting abruptly. I started by gathering the error code: -1073741819 (AKA 0xC0000005).

After checking my inputs I managed to narrow down the issue to transition=squeezev not cooperating with reverse=1. I looked at the front page and didn't see anything these lines. Since this seems novel I decided to do a thorough test of as many combinations as was realistic to give you proper comprehensive data. I used default values for all options where possible; I arbitrarily chose steps(4) and cubic-bezier(0.5,1.5,0.5,-0.5) for those since they required a passed value.

Anyways, the results: nearly all failed combinations occur with squeezev, though hblur had an additional single failure. All failures were access violations (as opposed to some other error code). Those error combos and the generating commands are in the table below. I've also attached a comprehensive zip of all the test results for sake of completeness.

ffmpeg-easing-error testing.zip

TRANSITION EASING REVERSE ERROR
hblur elastic 2 -1073741819
squeezev back 1 -1073741819
squeezev back 3 -1073741819
squeezev bounce 1 -1073741819
squeezev bounce 3 -1073741819
squeezev circular 1 -1073741819
squeezev circular 3 -1073741819
squeezev cuberoot 1 -1073741819
squeezev cuberoot 3 -1073741819
squeezev cubic 1 -1073741819
squeezev cubic 3 -1073741819
squeezev 'cubic-bezier(0.5,1.5,0.5,-0.5)' 1 -1073741819
squeezev 'cubic-bezier(0.5,1.5,0.5,-0.5)' 3 -1073741819
squeezev ease 1 -1073741819
squeezev ease 3 -1073741819
squeezev ease-in 1 -1073741819
squeezev ease-in 3 -1073741819
squeezev ease-in-out 1 -1073741819
squeezev ease-in-out 3 -1073741819
squeezev ease-out 1 -1073741819
squeezev ease-out 3 -1073741819
squeezev exponential 1 -1073741819
squeezev exponential 3 -1073741819
squeezev quadratic 1 -1073741819
squeezev quadratic 3 -1073741819
squeezev quartic 0 -1073741819
squeezev quartic 1 -1073741819
squeezev quartic 2 -1073741819
squeezev quartic 3 -1073741819
squeezev quintic 0 -1073741819
squeezev quintic 1 -1073741819
squeezev quintic 2 -1073741819
squeezev quintic 3 -1073741819
squeezev sinusoidal 1 -1073741819
squeezev sinusoidal 3 -1073741819
squeezev squareroot 1 -1073741819
squeezev squareroot 3 -1073741819
squeezev step-end 1 -1073741819
squeezev step-end 2 -1073741819
squeezev step-end 3 -1073741819
squeezev step-start 0 -1073741819
squeezev step-start 3 -1073741819
squeezev steps(4) 1 -1073741819
squeezev steps(4) 2 -1073741819
squeezev steps(4) 3 -1073741819
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=hblur:easing=elastic:reverse=2:duration=3:offset=5[vout] -map "[vout]" output\hblur_elastic_2.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=back:reverse=1:duration=3:offset=5[vout] -map "[vout]" output\squeezev_back_1.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=back:reverse=3:duration=3:offset=5[vout] -map "[vout]" output\squeezev_back_3.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=bounce:reverse=1:duration=3:offset=5[vout] -map "[vout]" output\squeezev_bounce_1.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=bounce:reverse=3:duration=3:offset=5[vout] -map "[vout]" output\squeezev_bounce_3.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=circular:reverse=1:duration=3:offset=5[vout] -map "[vout]" output\squeezev_circular_1.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=circular:reverse=3:duration=3:offset=5[vout] -map "[vout]" output\squeezev_circular_3.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=cuberoot:reverse=1:duration=3:offset=5[vout] -map "[vout]" output\squeezev_cuberoot_1.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=cuberoot:reverse=3:duration=3:offset=5[vout] -map "[vout]" output\squeezev_cuberoot_3.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=cubic:reverse=1:duration=3:offset=5[vout] -map "[vout]" output\squeezev_cubic_1.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=cubic:reverse=3:duration=3:offset=5[vout] -map "[vout]" output\squeezev_cubic_3.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing='cubic-bezier(0.5,1.5,0.5,-0.5)':reverse=1:duration=3:offset=5[vout] -map "[vout]" output\squeezev_'cubic-bezier(0.5,1.5,0.5,-0.5)'_1.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing='cubic-bezier(0.5,1.5,0.5,-0.5)':reverse=3:duration=3:offset=5[vout] -map "[vout]" output\squeezev_'cubic-bezier(0.5,1.5,0.5,-0.5)'_3.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=ease:reverse=1:duration=3:offset=5[vout] -map "[vout]" output\squeezev_ease_1.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=ease:reverse=3:duration=3:offset=5[vout] -map "[vout]" output\squeezev_ease_3.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=ease-in:reverse=1:duration=3:offset=5[vout] -map "[vout]" output\squeezev_ease-in_1.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=ease-in:reverse=3:duration=3:offset=5[vout] -map "[vout]" output\squeezev_ease-in_3.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=ease-in-out:reverse=1:duration=3:offset=5[vout] -map "[vout]" output\squeezev_ease-in-out_1.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=ease-in-out:reverse=3:duration=3:offset=5[vout] -map "[vout]" output\squeezev_ease-in-out_3.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=ease-out:reverse=1:duration=3:offset=5[vout] -map "[vout]" output\squeezev_ease-out_1.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=ease-out:reverse=3:duration=3:offset=5[vout] -map "[vout]" output\squeezev_ease-out_3.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=exponential:reverse=1:duration=3:offset=5[vout] -map "[vout]" output\squeezev_exponential_1.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=exponential:reverse=3:duration=3:offset=5[vout] -map "[vout]" output\squeezev_exponential_3.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=quadratic:reverse=1:duration=3:offset=5[vout] -map "[vout]" output\squeezev_quadratic_1.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=quadratic:reverse=3:duration=3:offset=5[vout] -map "[vout]" output\squeezev_quadratic_3.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=quartic:reverse=0:duration=3:offset=5[vout] -map "[vout]" output\squeezev_quartic_0.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=quartic:reverse=1:duration=3:offset=5[vout] -map "[vout]" output\squeezev_quartic_1.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=quartic:reverse=2:duration=3:offset=5[vout] -map "[vout]" output\squeezev_quartic_2.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=quartic:reverse=3:duration=3:offset=5[vout] -map "[vout]" output\squeezev_quartic_3.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=quintic:reverse=0:duration=3:offset=5[vout] -map "[vout]" output\squeezev_quintic_0.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=quintic:reverse=1:duration=3:offset=5[vout] -map "[vout]" output\squeezev_quintic_1.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=quintic:reverse=2:duration=3:offset=5[vout] -map "[vout]" output\squeezev_quintic_2.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=quintic:reverse=3:duration=3:offset=5[vout] -map "[vout]" output\squeezev_quintic_3.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=sinusoidal:reverse=1:duration=3:offset=5[vout] -map "[vout]" output\squeezev_sinusoidal_1.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=sinusoidal:reverse=3:duration=3:offset=5[vout] -map "[vout]" output\squeezev_sinusoidal_3.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=squareroot:reverse=1:duration=3:offset=5[vout] -map "[vout]" output\squeezev_squareroot_1.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=squareroot:reverse=3:duration=3:offset=5[vout] -map "[vout]" output\squeezev_squareroot_3.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=step-end:reverse=1:duration=3:offset=5[vout] -map "[vout]" output\squeezev_step-end_1.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=step-end:reverse=2:duration=3:offset=5[vout] -map "[vout]" output\squeezev_step-end_2.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=step-end:reverse=3:duration=3:offset=5[vout] -map "[vout]" output\squeezev_step-end_3.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=step-start:reverse=0:duration=3:offset=5[vout] -map "[vout]" output\squeezev_step-start_0.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=step-start:reverse=3:duration=3:offset=5[vout] -map "[vout]" output\squeezev_step-start_3.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=steps(4):reverse=1:duration=3:offset=5[vout] -map "[vout]" output\squeezev_steps(4)_1.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=steps(4):reverse=2:duration=3:offset=5[vout] -map "[vout]" output\squeezev_steps(4)_2.mp4
ffmpeg-easing\ffmpeg-easing.exe -hide_banner -loglevel error -y -i input\input1_lowres.mp4 -i input\input2_lowres.mp4 -filter_complex [0:v][1:v]xfade=transition=squeezev:easing=steps(4):reverse=3:duration=3:offset=5[vout] -map "[vout]" output\squeezev_steps(4)_3.mp4

Sorry the ticket's so complex, but hopefully it was helpful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions