У меня есть коллекция видео AVI (скажем, A).

Сначала я конвертирую их в MPEG4 Part2 (скажем, B), используя ffmpeg -i ${inname} -vf scale=340:256,setsar=1:1 -q:v 1 -c:v mpeg4 -g 12 -f rawvideo ${outname} . Общий размер файла 3.5G.

Затем, используя B в качестве входных данных, я применяю ту же команду, чтобы снова перекодировать B в C, который имеет размер 3,1G.

Я думал, что B и C имеют одинаковый формат и, следовательно, должны иметь одинаковый размер файла? Почему бы и нет, и как я могу решить эту проблему, чтобы избежать потери информации во втором процессе транскодирования?

1 ответ1

1

Ваша процедура похожа на:

  1. (источник) A & rightarrow; Б (результат)
  2. (источник) B & rightarrow; C (результат)

Кодирование с потерями производит видео, которое отличается от его источника, поэтому кадры B отличаются от кадров A. Это означает, что два источника в вышеописанной процедуре отличаются.

Я думал, что B и C имеют одинаковый формат и, следовательно, должны иметь одинаковый размер файла? Почему бы и нет?

Потому что они производятся из разных источников видео.

Как я могу решить это, чтобы убедиться, что нет потери информации во втором процессе транскодирования?

  • Используйте кодирование без потерь
  • или не транскодировать более одного раза.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .