Как можно исправить увеличение количества кадров в видео при использовании функции concat в FFmpeg?

Как можно объединить два видео и сохранить качество? Хотелось бы понять, почему, несмотря на одинаковую частоту кадров 25FPS у обоих видео, на выходе получается видео с частотой кадров ~40-45FPS и с пропажей звука для второго видео. Как исправить эту проблему? В сообщении также есть информация о "Non-monotonous DTS".
  • 2 июля 2024 г. 19:22
Ответы на вопрос 2
Для исправления увеличения количества кадров при использовании функции concat в FFmpeg, вам может понадобиться использовать фильтр setpts для коррекции временных меток каждого кадра. Например, вы можете добавить "-vf setpts='N/25/TB'" в вашу команду FFmpeg, где 25 - это частота кадров в вашем видео.

Чтобы объединить два видео и сохранить качество, рекомендуется указать одинаковый битрейт и кодек для обоих видео в команде FFmpeg. Например, если ваше видео имеет кодек H.264 и битрейт 5000 kbps, вы можете задать "-b:v 5000k -c:v libx264" для каждого видео в команде.

Что касается проблемы с частотой кадров ~40-45FPS и потерей звука для второго видео, это может быть вызвано несовпадением временных меток (DTS - Decoding Time Stamp) между видео файлами или не правильным указанием частоты кадров.

Для исправления этой проблемы вам может потребоваться использовать фильтр aresample для коррекции аудио временных меток или указать корректные временные метки при конкатенации видео файлов. Также рекомендуется явно указать частоту кадров при конкатенации двух видео файлов.

Например, вы можете добавить "-r 25" перед указанием ваших видео файлов в команде FFmpeg, чтобы указать частоту кадров 25FPS для результирующего видео.

Надеюсь, эти рекомендации помогут вам исправить проблему и получить желаемый результат.
Подозреваю, что в первом видео нет аудиодорожки, поэтому в результирующем видео тоже нет (проверьте через ffprobe) . В таком случае надо добавить пустую аудиодорожку в первое видео. 

ffmpeg -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=<рейт второго видео> -i logo.mp4 -shortest -c:v copy -c:a <Кодек второго видео> new_logo.mp4

По поводу фпс задайте его явно : -c:v h264 -r 25.
Похожие вопросы