mozilla / aom

Alliance for Open Media Video Codec reference implementation (Mozilla branch)
http://aomedia.org/
BSD 2-Clause "Simplified" License
144 stars 28 forks source link

Segmentation fault in aomenc, can't find common factor #12

Open netlore opened 3 years ago

netlore commented 3 years ago

I appreciate that this is not as much information as you would like, but this is what I have, so I hope it helps.

$ time ~/build2/aomenc Input.y4m --width=720 --height=552 --fps=25000/1000 --passes=2 --lag-in-frames=25 --end-usage=vbr --target-bitrate=950 --threads=16 --cpu-used=3 --kf-min-dist=60 --buf-sz=2000 --maxsection-pct=200 --kf-max-dist=60 -o Output.webm Pass 1/2 frame 147925/147926 30768608B 1664b/f 41600b/s 7659861 ms (19.31 fps) Pass 2/2 frame 633/608 1792796B 8962660 ms 4.24 fpm [ETA 610:08:33] Segmentation fault

real 170m47.089s user 118m19.541s sys 18m1.843s $

This crash appears to be tied to the input file or the settings, and not the particular build or version of aomenc, since it happened in exactly the same place with 2.01, and also after I recompiled the encoder with with 2.1.0rc1 from GIT, but only for these file/settings as I completed several 2+ hour streams at different resolutions prior to this crash.

I reviewed the original, and tightened up the crop just a little to alter the input slightly, and re-ran the encoder, and it still crashed in exactly the same place.

IE:- $ffmpeg -i Input.mkv -vf "yadif, crop=716:550:2:12" Input.y4m $ time ~/build2/aomenc Input.y4m --width=716 --height=550 --fps=25000/1000 --passes=2 --lag-in-frames=25 --end-usage=vbr --target-bitrate=950 --threads=16 --cpu-used=3 --kf-min-dist=60 --buf-sz=2000 --maxsection-pct=200 --kf-max-dist=60 -o Output.webm Pass 1/2 frame 147925/147926 30768608B 1664b/f 41600b/s 5494870 ms (26.92 fps) Pass 2/2 frame 633/608 1790326B 6218393 ms 6.11 fpm [ETA 423:20:37] Segmentation fault

real 115m19.786s user 116m58.766s sys 18m21.942s $

I also changed the bitrate and saw the same result, yet I have another video which is almost identical, but has no issue... and I'm starting to wonder if it's some kind of system resource, as I've not tried to encode 4 streams concurrently before... unfortunately it will be several days before I can reduce the number running to test this. There's plenty of RAM and other obvious resources available.

Will continue to test different configuration.

The package was compiled with the following options:- cmake path/to/aom -DENABLE_CCACHE=1 -DCONFIG_AV1_ENCODER=1 -DBUILD_SHARED_LIBS=1

$ gcc --version gcc (Ubuntu 10.2.1-20ubuntu1) 10.2.1 20210220 Copyright (C) 2020 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

netlore commented 3 years ago

Update: Applying a de-noise filter to the input stream before encoding stopped the crash (without changing any other settings), so it has to be something in the input stream.