Создание файла TS из файла MP4 - разная продолжительность - PullRequest
0 голосов
/ 02 мая 2018

Я запускаю следующую команду, чтобы обрезать файл MP4

-i "C:\FFMPEG\Temp\S3\2ad239d1-f4b9-4854-afe4-7e28157893daHighRes.mp4" -q:v 0 -y -ss 00:00:01.000 -to 00:00:29.834 -vf "fade=t=out:st=29.334:d=0.500, scale=iw*min(1080/iw\,720/ih):ih*min(1080/iw\,720/ih),pad=1080:720:(1080-iw)/2:(720-ih)/2" "C:\FFMPEG\Temp\Crops\5ae9806e32ab040978d97013_0.ts"

Как видите, я хочу обрезать видео длиной ровно 28834 миллисекунды. Однако созданный файл при проверке через ffprobe имеет длину 28873 миллисекунды. Почему это?

1 Ответ

0 голосов
/ 02 мая 2018

Потому что ваши кадры в секунду не 1000.

Видео не кодирует миллисекунды, оно кодирует кадры. Они могут кодировать только целое количество кадров. Если запрашиваемая длительность не делится равномерно с длительностью кадров, тогда длительность вывода будет немного больше.

Для длительности 28834 мс возможны частоты кадров: 1000, 500, 1000/13 ≈ 76.9, 500/13 ≈ 38.5, 1000/1109, 500/1109, 1000/14417 и 500/14417.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...