1

Я хочу использовать ffmpeg, чтобы вырезать видеофайл в определенном кадре.

Давайте возьмем это видео. Сначала я получаю кадр через 25 секунд:

ffmpeg -i sintel_trailer-1080p.mp4 -ss 25 -vframes 1 25.png

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

Затем я вырезал видео за 25 секунд, используя потоковое копирование, и проверил его первый кадр:

ffmpeg -i sintel_trailer-1080p.mp4 -ss 25 -c copy cut.mp4
ffmpeg -i cut.mp4 -vframes 1 0.png

Первый кадр отличается:

Но если я заменю опцию потокового копирования на другой формат или видеокодек, первый кадр будет правильным:

ffmpeg -i sintel_trailer-1080p.mp4 -ss 25 -f avi cut.avi
ffmpeg -i cut.avi -vframes 1 0_1.png

Можно ли вообще получить точный поиск кадров в режиме потокового копирования?

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

0