Вопрос или проблема
Я пытаюсь конвертировать видео 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". Давайте детально рассмотрим, как можно решить эту проблему и как правильно настроить процесс конверсии.
Причины возникновения ошибки
-
Проблемы с исходным файлом: Ошибки при декодировании могут быть связаны с поврежденными данными в MPEG-2 файле. Это может произойти, если файл был неправильно записан или поврежден, например, в результате неправильного копирования или хранения.
-
Совместимость кодеков: Некоторые кодеки могут не полностью поддерживать определенные форматы или входные данные. Убедитесь, что ваша версия FFmpeg актуальна и поддерживает все необходимые кодеки.
Решения и рекомендации
-
Проверка файла:
- Используйте инструмент
ffmpeg
для проверки файла на предмет ошибок. Например, выполните команду:ffmpeg -v error -i "C:\Video\HERCEGNO_CSODAORSZAGBAN\B1_t00.mkv" -f null -
Это поможет выявить, есть ли поврежденные кадры в вашем исходном видео.
- Используйте инструмент
-
Перекодирование с опцией исправления ошибок: Попробуйте использовать опцию
-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 игнорировать некоторые из ошибок.
-
Использование промежуточного контейнера: Если проблема не решается, попробуйте сначала конвертировать ваше видео в другой формат (например, в 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"
-
Обновление FFmpeg: Иногда обновление до последней стабильной версии позволяет избежать аналогичных проблем. Убедитесь, что вы используете свежий билд FFmpeg.
-
Параметры кодирования: Попробуйте изменить параметры кодирования видео или звука. Например, вы можете поиграть с
-preset
(настройка скорости) или-crf
(параметр качества).
Заключение
Ошибки при конвертации видео могут быть неприятными, но с использованием правильных инструментов и подходов можно успешно минимизировать или устранить их. Надеюсь, предложенные выше рекомендации помогут вам решить проблему с кодированием MPEG-2 в H.264. Если у вас возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться за советом.