Кто-нибудь знает о программном обеспечении, которое можно было бы установить / скомпилировать для Linux, которое может вырезать видео по кадру? Благодарю.
1 ответ
ffmpeg может это сделать. Если видеокодек интеркодирован и вам нужна точная точность кадров, вам придется перекодировать видео. Если вам не нужно перекодировать видео, ffmpeg будет вырезать от ближайшей границы GOP до указанной точки вырезания.
Вырезать и скопировать:
ffmpeg -i input -ss T -t D -c copy -fflags +genpts output
-ss
T
указывает начальную точку, выраженную в виде временного кода в формате S+[.m...]
[.m ...], например, 24
или 65.22
или [HH:]MM:SS[.m...]
например, 02:34:11.644
-t
D
указывает продолжительность в том же формате.
Это не будет с точностью до кадра, если начальная точка не находится на границе GOP.
Вырезать и перекодировать:
ffmpeg -i input -ss T -t D -fflags +genpts output
То же, что и выше, но это будет с точностью до кадра.
Если вам нужно указать точки входа и выхода по номерам кадров:
ffmpeg -i input -vf trim=start_frame=n:end_frame=m -af atrim=start=s:end=t -fflags +genpts output
n
и m
- номера кадров точек входа и выхода видео. s
и t
- временные коды для соответствующего аудио.
Кодеки, выбранные для перекодированных видео, будут соответствовать тем настройкам по умолчанию, которые ffmpeg установил для выходного контейнера, например H.264 и AAC для MP4.