Проблема с mpeg2 в FFmpeg

Вопрос или проблема

Я пытаюсь конвертировать видео mpeg2 в h264, используя команду:

ffmpeg -i “C:\Video\HERCEGNO_CSODAORSZAGBAN\B1_t00.mkv” -ss 00:00:00 -to 00:04:18 -c:v libx264 -preset fast -crf 23 -c:a aac -b:a 192k -ac 2 “C:\Users\user\Videos\Princessa\PIDRKN01.mp4”

Однако, когда я начинаю конвертацию, ffmpeg начинает показывать сообщения об ошибках “invalid frame_pred_frame_dct”:

[mpeg2video @ 0000017145339bc0] invalid frame_pred_frame_dctitrate= 27.0kbits/s скорость=1.95x

Последнее сообщение повторилось 58 раз

[mpeg2video @ 0000017145339bc0] invalid frame_pred_frame_dctbitrate= 0.2kbits/s скорость=4.63x

Последнее сообщение повторилось 48 раз

[mpeg2video @ 0000017145339bc0] invalid frame_pred_frame_dctbitrate= 0.1kbits/s скорость= 4.2x

Последнее сообщение повторилось 40 раз

[mpeg2video @ 0000017145339bc0] invalid frame_pred_frame_dctbitrate= 355.0kbits/s скорость=3.87x

Последнее сообщение повторилось 38 раз

[mpeg2video @ 0000017145339bc0] invalid frame_pred_frame_dctbitrate= 279.3kbits/s скорость= 3.7x

Последнее сообщение повторилось 41 раз

[mpeg2video @ 0000017145339bc0] invalid frame_pred_frame_dctbitrate= 455.2kbits/s скорость=3.64x

Последнее сообщение повторилось 64 раз

[mpeg2video @ 0000017145339bc0] invalid frame_pred_frame_dctbitrate= 356.2kbits/s скорость=3.88x

Последнее сообщение повторилось 59 раз

[mpeg2video @ 0000017145339bc0] invalid frame_pred_frame_dctbitrate= 444.2kbits/s скорость=4.01x

Последнее сообщение повторилось 37 раз

[mpeg2video @ 0000017145339bc0] invalid frame_pred_frame_dctbitrate= 399.1kbits/s скорость= 3.9x

Последнее сообщение повторилось 33 раз

[mpeg2video @ 0000017145339bc0] invalid frame_pred_frame_dctbitrate= 369.1kbits/s скорость=3.74x

Последнее сообщение повторилось 31 раз

[mpeg2video @ 0000017145339bc0] invalid frame_pred_frame_dctbitrate= 457.8kbits/s скорость=3.61x

Последнее сообщение повторилось 31 раз

[mpeg2video @ 0000017145339bc0] invalid frame_pred_frame_dctbitrate= 427.0kbits/s скорость=3.52x

Последнее сообщение повторилось 40 раз

[mpeg2video @ 0000017145339bc0] invalid frame_pred_frame_dctbitrate= 490.6kbits/s скорость=3.52x

Последнее сообщение повторилось 43 раз

[mpeg2video @ 0000017145339bc0] invalid frame_pred_frame_dctbitrate= 454.7kbits/s скорость= 3.5x

Последнее сообщение повторилось 37 раз

Как я могу решить эту проблему?

Ответ или решение

Ваша проблема с конвертацией MPEG-2 видео в H.264 с помощью FFmpeg действительно может быть связана с ошибками декодирования, которые проявляются в виде сообщения "invalid frame_pred_frame_dct". Давайте детально рассмотрим, как можно решить эту проблему и как правильно настроить процесс конверсии.

Причины возникновения ошибки

  1. Проблемы с исходным файлом: Ошибки при декодировании могут быть связаны с поврежденными данными в MPEG-2 файле. Это может произойти, если файл был неправильно записан или поврежден, например, в результате неправильного копирования или хранения.

  2. Совместимость кодеков: Некоторые кодеки могут не полностью поддерживать определенные форматы или входные данные. Убедитесь, что ваша версия FFmpeg актуальна и поддерживает все необходимые кодеки.

Решения и рекомендации

  1. Проверка файла:

    • Используйте инструмент ffmpeg для проверки файла на предмет ошибок. Например, выполните команду:
      ffmpeg -v error -i "C:\Video\HERCEGNO_CSODAORSZAGBAN\B1_t00.mkv" -f null -

      Это поможет выявить, есть ли поврежденные кадры в вашем исходном видео.

  2. Перекодирование с опцией исправления ошибок: Попробуйте использовать опцию -err_detect, добавив ее в вашу команду:

    ffmpeg -err_detect ignore_err -i "C:\Video\HERCEGNO_CSODAORSZAGBAN\B1_t00.mkv" -ss 00:00:00 -to 00:04:18 -c:v libx264 -preset fast -crf 23 -c:a aac -b:a 192k -ac 2 "C:\Users\user\Videos\Princessa\PIDRKN01.mp4"

    Это позволит FFmpeg игнорировать некоторые из ошибок.

  3. Использование промежуточного контейнера: Если проблема не решается, попробуйте сначала конвертировать ваше видео в другой формат (например, в AVI), а затем уже из него в MP4:

    ffmpeg -i "C:\Video\HERCEGNO_CSODAORSZAGBAN\B1_t00.mkv" -c:v libx264 -preset fast -crf 23 "C:\Video\output.avi"
    ffmpeg -i "C:\Video\output.avi" -ss 00:00:00 -to 00:04:18 -c:a aac -b:a 192k -ac 2 "C:\Users\user\Videos\Princessa\PIDRKN01.mp4"
  4. Обновление FFmpeg: Иногда обновление до последней стабильной версии позволяет избежать аналогичных проблем. Убедитесь, что вы используете свежий билд FFmpeg.

  5. Параметры кодирования: Попробуйте изменить параметры кодирования видео или звука. Например, вы можете поиграть с -preset (настройка скорости) или -crf (параметр качества).

Заключение

Ошибки при конвертации видео могут быть неприятными, но с использованием правильных инструментов и подходов можно успешно минимизировать или устранить их. Надеюсь, предложенные выше рекомендации помогут вам решить проблему с кодированием MPEG-2 в H.264. Если у вас возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться за советом.

Оцените материал
Добавить комментарий

Капча загружается...