AviSynth / AviSynthPlus

AviSynth with improvements
http://avs-plus.net
972 stars 75 forks source link

System exception - Access Violoation #175

Open PaulMartinsen opened 4 years ago

PaulMartinsen commented 4 years ago

When I use the 3.6.1 release to try to encode a .avs file with the 64 bit version of ffmpeg, or open the .avs file in the 64 bit version of MPC-HC I see a system exception: [avisynth @ 000001c73306d940] System exception - Access Violation (TimePlot.avs, line 1) TimePlot.avs: Unknown error occurred

The AVS file I am working with contains: AVISource("TimePlot.avi") Crop(3,5,-3,-2)

I'm using quite an old version of MPC-HC, but the newest version of ffmpeg (ffmpeg-20200626-7447045-win64-static.zip) from https://ffmpeg.zeranoe.com/builds/ with this command line: ffmpeg -i TimePlot.avs -c:v libx264 -preset veryslow -crf 0 -an TimePlot.mp4

The avi file is about 100k and available from: https://www.dropbox.com/s/5ot687lqckc876s/TimePlot.avi?dl=0

Opening the .avs file in the 64 bit version of AvsPmod works, as does playing it with the 32-bit version of MPC-HC and encoding with the 32-bit version of ffmpeg.

qyot27 commented 4 years ago

The problem is almost certainly due to the TechSmith codec itself (or lack thereof, as the case may be). AVISource uses the system's VfW codecs to open things, so if one of the system codecs has a problem, so will AVISource. More specifically, if the TechSmith codec has issues only in the 64-bit version, then that would explain why 32-bit is okay. Although it wouldn't seem to explain why AvsPmod is okay with the 64-bit, unless it's internally piping out to the 32-bit environment for some reason.

Using a different source filter (like FFMS2) or using ffmpeg to convert the .avi file to a different format first sidesteps it entirely. As would capturing in a different format, if you have the option of doing so.