DTS no monótono con bandera igndts

1

Estoy trabajando con rtmp streams, y estoy seguro de que las marcas de tiempo no serían monótonas. Entonces, agregué muchas banderas para asegurarme que eso sería un problema, pero aún lo es.

El comando que uso es:

ffmpeg -fflags +genpts+igndts+ignidx -rtbufsize 2000M -re -vsync drop -i "rtmp://input" -vsync cfr -async 1 -c copy -f flv "rtmp://output"

Sin embargo, a pesar de todas estas banderas, me envía toneladas de [flv @ 0x563303498580] Non-monotonous DTS in output stream 0:1; previous: 52544, current: 26606; changing to 52544. This may result in incorrect timestamps in the output file. Y también el flujo de salida realmente se ve dañado.

También cae los siguientes errores:

[NULL @ 0x56330347c380] illegal reordering_of_pic_nums_idc 26

[NULL @ 0x56330347c380] reference overflow 1275 > 15 or 0 > 15

[NULL @ 0x56330347c380] reference count 1 overflow

[NULL @ 0x56330347c380] illegal memory management control operation 32

Todo lo que quiero es que ffmpeg ignore las marcas de tiempo y genere nuevas para las secuencias de salida. Pero, sin embargo, todavía no alcanzo ningún éxito.

Yo uso el último ffmpeg 3.4, los encabezados son los siguientes:

 ffmpeg version 3.4-1~16.04.york0 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.5) 20160609
  configuration: --prefix=/usr --extra-version='1~16.04.york0' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
  libavutil      55. 78.100 / 55. 78.100
  libavcodec     57.107.100 / 57.107.100
  libavformat    57. 83.100 / 57. 83.100
  libavdevice    57. 10.100 / 57. 10.100
  libavfilter     6.107.100 /  6.107.100
  libavresample   3.  7.  0 /  3.  7.  0
  libswscale      4.  8.100 /  4.  8.100
  libswresample   2.  9.100 /  2.  9.100
  libpostproc    54.  7.100 / 54.  7.100
Ngoral
fuente
En lugar de fflags, utilizar -use_wallclock_as_timestamps Y cae vsync drop. Los otros errores parecen ser errores de flujo de bits.
Gyan
@Mulvya Ok, lo intentaré, gracias. ¿Y qué puedo leer / hacer acerca de esos errores de flujo de bits? Ya he buscado en la fuente ffmpeg en caso de entender cómo funciona igndts funciona, y todo lo que tengo es más malentendido después de eso (o simplemente no entiendo la palabra 'no monótono' correcto (en términos matemáticos)) =)
Ngoral
'non-monotonous - & gt; cada nuevo miembro de la secuencia es mayor o igual que el último. los strict La variedad no permite valores iguales.
Gyan
@Mulvya Siempre he pensado que lo que dices es monótono, no no -monotonous =) De todos modos, me parece que lo único que igndts La bandera que está haciendo es permitir que dts-s sean iguales, pero no menos de lo que ocurrió la última vez, lo que esperaría de ello si comprendiera lo que estoy diciendo
Ngoral
Lo siento, he copiado sin cuidado. Si deberia ser monotonous encima.
Gyan