Когда у вас слишком низкая частота кадров, что возникает соблазн сделать при объединении звука с изображением "постера", ffmpeg сталкивается с проблемами.
Время вывода оказывается неверным. У меня все еще было неправильное время вывода с «-shortest -fflags + short -max_interleave_delta 100M» (хотя это улучшило его), поэтому мне пришлось сократить вывод с помощью команды «-t».
А затем, если вы возьмете результат и скопируете его с помощью "ffmpeg -i output.mp4 output-copy.mp4", это вызовет следующую проблему: "https://trac.ffmpeg.org/ticket/6375?Cversion=0"
(
Too many packets buffered for output stream 0:1.
[aac @ 0x7ffda6818c00] Qavg: 65179.457
[aac @ 0x7ffda6818c00] 2 frames left in the queue on closing
)
Что решается с помощью "-max_muxing_queue_size 9999" (до вывода, после ввода)
И опять же, если вы установите fps (или «-r») выше, все проблемы исчезнут.
Глядя на документ ffmpeg для "max_muxing_queue_size", я понял:
-max_muxing_queue_size пакетов (вывод, на поток)
При перекодировании аудио- и / или видеопотоков ffmpeg не начнет запись в вывод, пока не получит по одному пакету для каждого такого потока. Пока это произойдет, пакеты для других потоков буферизуются. Эта опция устанавливает размер этого буфера в пакетах для соответствующего выходного потока.
Я думаю, что ffmpeg должен захватывать один видеокадр и много звуковых кадров одновременно, поэтому ему необходимо одновременно буферизовать много звуковых кадров, и он не привык к этому, он используется для ... буферизации 1/30 (для 30 кадров в секунду) этих аудиокадров, соедините их с видеокадром и двигайтесь дальше. Может быть.
Я думаю, что ffmpeg должен работать, чтобы это было более плавно, может быть ... но idk, может быть, вам просто нужно раз и навсегда прочитать всю документацию ffmpeg.
Может быть, добавьте подсказку, "буфер мультиплексора должен быть увеличен, обнаружен, хотите чтобы поднять его? чтобы предварительно установить это, см. документацию для "max_muxer (etc)" ".
Я не знаю, почему существует неправильное время вывода, но что-то похожее.
person
Debrune e brune
schedule
16.06.2020