-
Notifications
You must be signed in to change notification settings - Fork 20
Description
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.