Кто-нибудь знает о программном обеспечении, которое можно было бы установить / скомпилировать для 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.
