Видео, конвертированное с помощью FFMPEG, имеет различную продолжительность, почему?

Я конвертирую видео с помощью FFMPEG. Моя цель - преобразовать их в формат контейнера MP4 (MPEG-4, часть 14) с помощью аудиопотока, кодированного AAC, и потока видео, закодированного в MPEG-4, часть 10.

Я использую следующую строку для преобразования видео:

ffmpeg -y -i "{inputFile}" "{outputFile}"

Преобразованное видео выглядит нормально, однако длительность потоков в преобразованном файле и входном файле не всегда совпадает.

Я провел несколько экспериментов, и разница в продолжительности, несомненно, есть, но она не так уж и велика - во всяком случае, я тестирую небольшие видео. Вот мои результаты:

| InputFile  | InputAudio | InputVideo | OutputAudio | OutputVideo  |
|------------|------------|------------|-------------|--------------|
| h.avi      | 3s 631ms   | 3s 567ms   | 3s 668ms    | 3s 567ms     |
| h.flv      | 3s 631ms   | 3s 558ms   | 3s 668ms    | 3s 567ms     |
| h.mov      | 3s 532ms   | 3s 533ms   | 3s 682ms    | 3s 534ms     |
| h.mp4      | 3s 605ms   | 3s 534ms   | 3s 682ms    | 3s 567ms     |
| h.mpg      | 3s 605ms   | 3s 533ms   | 3s 563ms    | 3s 534ms     |
| h.wmv      | 3s 620ms   | 3s 633ms   | 3s 659ms    | 3s 567ms     |

Поскольку я собирал программное обеспечение на основе FFMPEG, я был бы счастлив, если бы хотя бы мог понять причину этой разницы. Это из-за ненужного перекодирования?

В этом случае можно ли отключить эту транскодировку, чтобы FFMPEG не выполнял повторную выборку входного видеофайла?

Если я не могу его отключить, как я могу быть уверен (помимо тестирования), что эта разница не пропорциональна размеру видео?

Если я конвертирую, например, 10-часовое видео, разница в несколько секунд или даже минут мне не подходит.

0 ответов

Другие вопросы по тегам