Видеорез с отсутствующими кадрами в FFmpeg

Я пробовал каждую возможную команду, чтобы вырезать часть (1-3 минуты) видео H.264 mp4, но он получается неплохим и плохим. Мое видео – 29,97 FPS, 1080p, ~ 80 минут, ~ 3,5 ГБ и скорость передачи ~ 6200 КБ / с. Проблема в том, что мой вывод начинается без видео в течение 1-2 секунд, а затем прекращается, но звук начинается с 0 секунд. Он воспроизводится хорошо синхронизированным (аудио и видео) в любом медиаплеере, но при использовании его в другом месте (рендеринг для производственных целей), например, в Adobe AE, медиакодере или видео конвертере, готовое видео FINAL начинается с 0 секунд, когда звук начал. Поэтому звук заканчивается на 1-2 секунды вперед, и я не хочу этого. Это также происходит при обрезке видео YouTube в Интернете по адресу http://clipconverter.cc

Моя команда выглядит следующим образом:

  • Аудиопоток со вторичного компьютера
  • Windows 7 - Несколько клавиатур
  • Surround в Windows 7 с Soundmax
  • Ffmpeg добавить аудио, но сохранить длину видео одинаковой (не-шутка)
  • Монитор мигает, когда я подключаю аудиоразъем
  • Как разделить HDMI-видео и аудио?
  • ffmpeg -ss 01:19:22.000 -t 00:1:43.000 -i "in.mp4" -acodec copy -vcodec copy out.mp4

    Я даже попытался положить -ss после -i, но я получаю те же результаты. Кроме того, если у меня уже есть видео с этой проблемой, что я могу сделать, чтобы исправить это? Что я мог бы сделать в Adobe AE для этого? Этот сайт: https://ubuntuforums.org/showthread.php?t=1824250 говорит, что его нужно разрезать на «ключевые кадры». Если да, то как это сделать в FFmpeg? Как их найти? Кто они такие? Я не собираюсь EVER повторно кодировать (с -c: v x264), он занимает слишком много времени и повторно сжимает видео с артефактами.

    Я использовал как статические, так и общие сборки FFmpeg. Также используются стабильные версии 3.2.2 и ffmpeg-20170112-6596b34-win64-static, не повезло.

    TLDR: у моего видео, которое я разрезал в FFMPEG, вначале отсутствовали фреймы (даже не черные или пустые), что приводит к несинхронизированному аудио / видео при окончательном рендеринге в любом программном обеспечении для рендеринга видео.

  • Как я могу проверить, работает ли порт USB 3,5 мм с микрофоном?
  • Как я могу нормализовать уровни звука в нескольких разных аудио / MP3-файлах?
  • FFmpeg аудио и видео не синхронизированы
  • Монитор мигает, когда я подключаю аудиоразъем
  • Компьютер зависает и звучит заикается
  • Играть в mp3 или wav-файл через командную строку Linux
  • One Solution collect form web for “Видеорез с отсутствующими кадрами в FFmpeg”

    использование

     ffmpeg -ss 01:19:22 -t 00:1:43 -i "in.mp4" -c copy -avoid_negative_ts make_zero out.mp4 

    В большинстве сжатых видео используется временное сжатие, поэтому кадры полагаются на другие кадры для полного декодирования. Если вы обрезаете видео с использованием режима copy , некоторые кадры после вашей точки могут полагаться на фреймы перед точкой для декодирования. Если да, то эти рамки должны быть включены. Этим кадрам назначаются отрицательные временные метки, поэтому хорошие видеоплееры используют их для декодирования, но не для представления. Видео отображается с точки входа далее. Поскольку все звуковые кадры являются ключевыми кадрами, то настройка звука является точной и сохраняется синхронизация A / V.

    Видимо, видеоредакторы, похоже, не обращают внимания на PTS, поэтому они отображают все фреймы, хранящиеся в файле. Моя команда выше обеспечивает положительный TS для всех сохраненных кадров, поэтому видео / аудио будет оставаться в синхронизации *.

    * Не совсем верно. Для аудиокодеков на базе MDCT, таких как MP3 / AAC, предыдущий кадр включен с отрицательным PTS, так как он необходим для декодирования. Возможно, ваш NLE будет декодировать этот кадр, что приведет к асинхронному доступу 21-23 мс. Обходным путем является перекодирование звука.

    Давайте будем гением компьютера.