mypopydev / FFmpeg

mirror of git://source.ffmpeg.org/ffmpeg.git
http://ffmpeg.org
Other
2 stars 1 forks source link

VP8 DEC fail with 52 threads #11

Open mypopydev opened 6 years ago

mypopydev commented 6 years ago

make fate-lavf-fate-ogg_vp8 THREADS=52 fail

./ffmpeg -y -threads 52 -i /home/barry/Sources/umd_dev/FFmpeg/./tests/data/lavf-fate/lavf.ogv -acodec copy -f null /dev/null get error like

barry@barry-HP-ENVY-Notebook:~/Sources/umd_dev/FFmpeg$ ./ffmpeg -y -cpuflags all -threads 52 -i /home/barry/Sources/umd_dev/FFmpeg/./tests/data/lavf-fate/lavf.ogv -acodec copy -f null /dev/null 
ffmpeg version N-91593-gb085f369c2 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
  configuration: --enable-libx264 --enable-libx265 --enable-gpl --enable-libwebp --disable-optimizations --samples=../fate-suite --enable-opencl --enable-openssl --enable-nonfree
  libavutil      56. 18.102 / 56. 18.102
  libavcodec     58. 22.101 / 58. 22.101
  libavformat    58. 17.101 / 58. 17.101
  libavdevice    58.  4.101 / 58.  4.101
  libavfilter     7. 26.100 /  7. 26.100
  libswscale      5.  2.100 /  5.  2.100
  libswresample   3.  2.100 /  3.  2.100
  libpostproc    55.  2.100 / 55.  2.100
Input #0, ogg, from '/home/barry/Sources/umd_dev/FFmpeg/./tests/data/lavf-fate/lavf.ogv':
  Duration: 00:00:04.46, start: 0.000000, bitrate: 170 kb/s
    Stream #0:0(eng): Video: vp8, yuv420p(progressive), 640x360, SAR 1:1 DAR 16:9, 23.98 tbr, 23.98 tbn, 23.98 tbc
    Metadata:
      LANGUAGE        : eng
      TITLE           : lavftest
    Stream #0:1: Audio: vorbis, 44100 Hz, stereo, fltp, 128 kb/s
    Metadata:
      TITLE           : lavftest
[vp8 @ 0x55f98a859dc0] Application has requested 52 threads. Using a thread count greater than 16 is not recommended.
Stream mapping:
  Stream #0:0 -> #0:0 (vp8 (native) -> wrapped_avframe (native))
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
Too many packets buffered for output stream 0:1.
Conversion failed!
mypopydev commented 6 years ago

But add max_muxing_queue_size >=219, this function will work: /ffmpeg -y -threads 52 -i /home/barry/Sources/umd_dev/FFmpeg/./tests/data/lavf-fate/lavf.ogv -max_muxing_queue_size 219 -acodec copy -f null /dev/null

./ffmpeg_g -y -threads 52 -i /home/barry/Sources/umd_dev/FFmpeg/./tests/data/lavf-fate/lavf.ogv -an -f null /dev/null -loglevel 99

./ffmpeg -y -threads 51 -i /home/barry/Sources/umd_dev/FFmpeg/./tests/data/lavf-fate/lavf.ogv -max_muxing_queue_size 116 -acodec copy -f null /dev/null

sungn commented 6 years ago

The reason for the abnormal exit of the program is that when writepacket, the number of audio entries into the queue exceeds the upper limit of 128, so the program chooses to exit abnormally.

When max_muxing_queue_size is set too small, the got_output parameter returned to the decode function by the 52 decoding threads that are started is always 0, so video cannot writepacket, causing the queue to be handled abnormally. When the number of bytes written by audio exceeds the upper limit, it will exit abnormally.