LINUX.ORG.RU

История изменений

Исправление CrX, (текущая версия) :

Я же говорю, попробуй указать свой -ss не до, а после -i "file.avi".

А это что такое?

Ух, это долго объяснять, лучше почитать что-нибудь. Но если прям совсем упрощённо (для большинства кодеков, а не всех, не так просто, и прочие оговорки), то не каждый кадр в видеопотоке сохранён как картинка. Сохраняются лишь некоторые кадры, они иногда называются ключевыми, а между ними сохраняется разница — изменившиеся пиксели (там посложнее, чем «пиксели», но для упрощения пойдёт). И так до следующего ключевого кадра, который тоже сохранён полностью. Их кодек выбирает по более значимой смене кадра (обычно смена сцены и т.д.), но также задаётся и минимальное и максимальное расстояние между ними, чтоб не было такого, что один ключевой кадр на всё видео. Соответственно, когда ты обрезаешь что-то без перекодирования (-c copy), невозможно начать видео не с ключевого кадра — потому что следующие кадры это разница между несуществующим ключевым кадром и последующим, далее с ним и последующим и т.д. То есть, резать при таком обрезании можно только по ключевым кадрам — по выше описанным причинам, неключевой это разница между тем, информации о чём нет, если её отрезать, то есть бессмыслица.

На деле всё несколько сложнее, есть i-frame, p-frame и b-frame. Но для общего понимания сойдёт.

Исходная версия CrX, :

Я же говорю, попробуй указать свой -ss не до, а после -i "file.avi".

А это что такое?

Ух, это долго объяснять, лучше почитать что-нибудь. Но если прям совсем упрощённо (для большинства кодеков, а не всех, не так просто, и прочие оговорки), то не каждый кадр в видеопотоке сохранён как картинка. Сохраняются лишь некоторые кадры, они иногда называются ключевыми, а между ними сохраняется разница — изменившиеся пиксели (там посложнее, чем «пиксели», но для упрощения пойдёт). И так до следующего ключевого кадра, который тоже сохранён полностью. Их кодек выбирает по более значимой смене кадра (обычно смена сцены и т.д.), но также задаётся и минимальное и максимальное расстояние между ними, чтоб не было такого, что один ключевой кадр на всё видео. Соответственно, когда ты обрезаешь что-то без перекодирования (-c copy), невозможно начать видео не с ключевого кадра — потому что следующие кадры это разница между несуществующим ключевым кадром и последующим, далее с ним и последующим и т.д. То есть, резать при таком обрезании можно только по ключевым кадрам — по выше описанным причинам, неключевой это разница между тем, информации о чём нет, если её отрезать, то есть бессмыслица.