LINUX.ORG.RU

Видеомонтаж для начинающих. Помогите в KDEnlive

 , , , ,


1

1

Всем хорошего настроения, друзья! Никогда не занимался видеомонтажом, а тут понадобилось сделать несколько простых операций, и вот уже скачал популярную программу под Linux - KDEnlive.

Задача совсем простая. Есть видео в форматах mkv и mp4. Надо обрезать эти видео - удалить кусочек в начале и в конце, оставив середину. При этом качество и формат видео оставить как есть. Только обрезка.

Где можно найти простое руководство, как побыстрее это сделать в KDEnlive? Чтобы понятно было, по шагам, что открывать, куда нажимать, где кадр наглядно просмотреть…

Ответ на: комментарий от deep-purple

Почему? Просто отрезать кусок от видео, без переконвертации и потери качества - это что, такая невыполнимая задача? Я думал редакторы умели это еще 100 лет назад…

boris_delaet_site
() автор топика

Задача совсем простая. Есть видео в форматах mkv и mp4. Надо обрезать эти видео - удалить кусочек в начале и в конце, оставив середину. При этом качество и формат видео оставить как есть. Только обрезка.

Я бы порекомендовал Avidemux для этой задачи. Там довольно очевидно как сделать обрезку. Чтобы сохранить качество - просто выбрать кодеки «copy» по аудио и по видео надо.

James_Holden ★★★
()
Ответ на: комментарий от boris_delaet_site

Тебе будет достаточно даже консольного ффмпег: вырезать кусок и даже объеденить куски и всё это безпрохода через конвертацию.Но если ты лошпет в консоли вцелом и в ффмпег в частности, то бери что тут посоветовали из кнопкожмачных.

deep-purple ★★★★★
()
Ответ на: комментарий от boris_delaet_site

А что значит просто отрезать кусок?

Насколько я помню, если ты хочешь вырезать не по ключевым кадрам, а по произвольным, то без конвертации это этого никто сделать не сможет.

anonymous
()
Ответ на: комментарий от anonymous

А это уже нюансы. Судя по его вопросам — он, конечно, не в курсе как часто у него ключевые кадры в источнике присутствуют.

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

ну нюансы, но вдруг он решит про них почитать.

Я в первый раз был немного удивлен, что на выходе получился файл обрезанный не там, где указано, а +/- какой-то промежуток времени. Зато без конвертации, да.

anonymous
()
Ответ на: комментарий от deep-purple

Тебе будет достаточно даже консольного ффмпег: вырезать кусок и даже объеденить куски и всё это безпрохода через конвертацию.Но если ты лошпет в консоли вцелом и в ффмпег в частности, то бери что тут посоветовали из кнопкожмачных.

А как я увижу нужный кадр в консоли? Нужный переход от одной сцены к другой. Буду подгонять сидеть несколько часов каждое видео? Я так понимаю нормальные видеоредакторы подволяют увидеть видео покадрово, и уже у нужного кадра выставить обрезку, вот это мне надо.

Потому что так устроен кденлайв.

Как он устроен? При обрезке видео насильно снижает битрейт у исходника? Насильно меняет формат? Я честно говоря не представляю, что какой-нибудь современный редактор может себя так вести, а главное зачем.

boris_delaet_site
() автор топика
Ответ на: комментарий от anonymous

А что значит просто отрезать кусок?

Это значит отрезать начало и конец. Вырезать intro и credits. Казалось бы, что может быть проще. Вроде бы на профессиональном языке эта процедура называется cut. Зачем мне какая-то конвертация или снижение битрейта?

boris_delaet_site
() автор топика
Ответ на: комментарий от boris_delaet_site

Ты определись что тебе надо: чтобы видео не переконвертировалось, или чтобы параметры были поближе к исходным? Или может быть чтобы качество не пострадало и размер остался примерно тем же?

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

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

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

boris_delaet_site
() автор топика
Ответ на: комментарий от MrClon

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

Что под этим подразумевается? Если я взял 2 видеоролика в mkv и mp4, обрезал их в KDEnlive по краям и пересохранил - что конкретно случится? Битрейт немного снизится? На сколько? На 1%? На 10%? Почему никто конкретно не пишет что произойдет, а какие-то пространные фразы применяете.

boris_delaet_site
() автор топика
Ответ на: комментарий от boris_delaet_site

Выше уже объясняли что без переконвертации нельзя обрезать видео по произвольному кадру. Бери avidemux и не сношай мозг ни себе ни людям, он вроде выдаёт подсказки про ключевые кадры и предлагает варианты если ты хочешь резать не по ним

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

Ты усиленно не хочешь говорить, что понимается под конвертацией. Если битрейт снизится в порядках погрешности, то это не имеет значения, и тогда KDEnlive вполне подойдет.

boris_delaet_site
() автор топика
Ответ на: комментарий от boris_delaet_site

что конкретно случится?

В kdenlive (или любом другом софте для видеомонтажа)? Видео будет отрендерен (создан) новый поток несжатых кадров который будет сжат енкодером и упаковано в контейнер. Параметры видеопотока (разрешение, частота кадров, цветовое пространство, метод развёртки) будут зависеть от параметров проекта. Параметры работы енкодера (собстверрно используемый кодек, режим его работы, битрейт и ещё дохрилион параметров) и используемый контейнер будут зависеть от параметров выставленных при экспорте видео.

Важно понимать что подобное редактирование видео похоже скорее не на стирание одного символа с меловой доски и замену его другим, а на переписывание всего написанного на доске с одновременным внесением нужных тебе правок. Ты не редактируешь видео, ты создаёшь новое видео используя уже готовое. Для редактирования в стиле меловой доски используются другие инструменты, например ffmpeg и avidemux. У такого подхода больше ограничений, но есть и свои плюсы

MrClon ★★★★★
()
Ответ на: комментарий от boris_delaet_site

Конвертация это когда видеопоток сжатый в формате например H.264 декодируют в несжатый поток в формате например YUV, а потом снова кодируется в формат H.264 (или какой-нибудь другой)

MrClon ★★★★★
()

Анал-монтаж?

anonymous
()
Ответ на: комментарий от MrClon

Вот это другое дело, понятное сравнение, спасибо! Попробую и KDEnlive, и avidemux, сравню что получится.

boris_delaet_site
() автор топика
Ответ на: комментарий от boris_delaet_site

Обрати внимание на «например» которые я раскидал по тексту. Все названия условны. Мне впадлу снова закапываться в тему и вспоминать конкретику

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

Раз речь пошла о камерах то у меня тоже есть вопрос: известные мне программы для захвата видео с вебкамер сохраняют его в ОЗУ и только после окончания записи сбрасывают записанное в фаил.
При этом если программа исчерпывает ОЗУ то в лучшем случае она просто прекращает запись, в худшем падает с потерей записанного.

И у меня вопрос, есть такие средства захвата что будут сразу писать видео на диск?
Если что то вебкамера умеет в YUV.

torvn77 ★★★★★
()
Ответ на: комментарий от torvn77

Декодирование (если декодер не косячит) не вносит искажений. Для кодирования без потерь нужно кодировать в lossless формат (например ffv1). У H.264 и H.265 типа как есть «lossless режим», но как я слышал у H.264 это нифига не lossless. Про H.265 не знаю. Я использую ffv1 (в тех редких случаях когда это нужно и я могу это себе позволить). Lossless видео весит ДОФИГИЩА и пригодно только как промежуточный формат. Ну либо если ты кинотеатр и крутишь фильмы в DCP, хотя ХЗ в каком режиме там jpeg2000 используется. Конвертация «без потерь» которая не lossless это либо не конвертация (перепаковка в другой контейнер например) либо «я не вижу разницу».

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

либо «я не вижу разницу».

А есть какие либо средства чтобы сравнить два участка видео из двух разных файлов и оценить разницу или потери?

Вообще, как можно объективно, не на глаз оценить потери?

torvn77 ★★★★★
()
Ответ на: комментарий от torvn77

ffmpeg скорее всего спасёт отца русской демократии. Помнится когда-то давно писал длиннющее (часа что-ли 4) видео с вебки с помощью vlc (молодо, зелено). Было это на скорее всего нетбуке с двумя гигами рамы, так что видимо писалось сразу на диск. OBS (которой обычно стримят в ютубы) умеет писать на диск, но ХЗ умеет-ли она при этом не стримить в сеть. Наверное умеет

MrClon ★★★★★
()
Ответ на: комментарий от torvn77

Есть метрики отличия двух кадров. PSNR и SSIM. Числовой показатель говорящий о том на сколько кадр А отличается от кадра Б. Если кадр А — исходный материал, а кадр Б результат его конвертации то чем бем выше метрика тем сильнее конвертация убила качество (ну или наоборот воскресила, но это вряд-ли :). Например ffmpeg может покадрово сравнить два видео и выдать результаты PSNR и SSIM для каждой пары кадров и среднее значение. Про разницу между PSNR и SSIM гугли (в википедии вроде было понятно написано). готовую строку для ffmpeg с ходу в истории не нагрепал, если сам не нагуглишь — кастани, попробую найти в залежах. Но потом, сейчас убегаю

MrClon ★★★★★
()
Ответ на: комментарий от boris_delaet_site

Казалось бы, что может быть проще.

это просто, если тебе надо резать по ключевым кадрам. Если разрезать надо где-то между ключевыми кадрами, то все становится непросто и без перекодирования никак (ну, насколько я знаю)

anonymous
()
Ответ на: комментарий от anonymous

ну и да, если там статичная картинка в кадре (черный фон, например), то можно не парится

anonymous
()

В общем @boris_delaet_site если просуммировать всё, что тут написали про ключевые кадры, то делай так: Сначала разрежь по ключевым кадрам на три куска:

  1. первый кусок до участка который тебе надо разрезать
  2. второй кусок с разрезаемым участоком
  3. третий кусок после разрезаемого участка

Потом режешь второй кусок с разрезаемым участком с перекодированием, после чего приклеиваешь его обратно к третьему куску(или второму).

Незнаю, могут ли тут быть подводные камни, по этому исходники никуда не девай.

torvn77 ★★★★★
()
Ответ на: комментарий от MrClon

Любой видео-кодек кодирует с потерями. Потому что иначе это RAW-фрейм с представлением N бит напиксель * разрешение и весить это будет огого. А так просто глаз не видит и это считается лослес. Кодирнём раз сто и будут шакалы.

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

Есть видеокодеки сжимающие без потерь. Например тот же FFV1. Это аналог FLAC-а для звука, ну или gzip-а для произвольных данных. Весит — мама не горюй, но меньше нежатого YUV. Конечному потребителю такой поток конечно не отдают, такие кодеки бывают полезны как промежуточный формат в процессе работы с видео.

MrClon ★★★★★
()
Ответ на: комментарий от torvn77

Чёт я не понял что за эквилибристику ты предлагаешь. ТСу вроде надо всего лишь отрезать от видео чужие ©опирайны или что-то такое

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

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

На выходе в худшем случае будет видео с падением качества в месте монтажа, но не всего видео в целом.

torvn77 ★★★★★
()
Последнее исправление: torvn77 (всего исправлений: 1)
Ответ на: комментарий от deep-purple

Любой видео-кодек кодирует с потерями. Потому что иначе это RAW-фрейм с представлением N бит напиксель * разрешение и весить это будет огого.

Не совсем так, кадры – это не белый шум, на них информация в той или иной мере дублируется, поэтому ищутся схожие части внутри одного фрейма или между ними. Сдвиг между найденными соответствиями записывается в виде motion vector, а сама процедура поиска называется motion vector prediction. Но это первое приближение, а для точного соответствия вычисляется абсолютная разница (residual) между найденными соответствиями, которая по определению маленькая, а потому хорошо сжимается (энтропийное сжатие). И все это делается без потерь.

iVS ★★★★★
()
Ответ на: комментарий от iVS
#!/bin/bash


TIMES=100


for (( c=0; c<=$TIMES; c++ ))
do
    let "b = c - 1"
    if [[ 0 -lt $c ]]
    then
        ffmpeg -y \
            -i "result/${b}.mp4" \
            -pix_fmt yuv420p \
            -s 32x24 \
            -r 30 \
            -an \
            -vcodec h264 \
            -preset slow \
            -crf 0 \
            -map_metadata -1 \
            "result/${c}.mp4"
    else
        ffmpeg -y \
            -loop 1 \
            -i source.bmp \
            -t 10 \
            -pix_fmt yuv420p \
            -s 32x24 \
            -r 30 \
            -an \
            -vcodec h264 \
            -preset veryslow \
            -crf 0 \
            -map_metadata -1 \
            result/0.mp4
    fi
done


diff result/0.mp4 "result/${TIMES}.mp4"

Оба не правы — "-preset slow" даёт разницу, "-preset veryslow" не даёт.

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

А где вывод хотя бы такого?

ffprobe video.mp4 -show_frames | grep pict_type

Если там идут типы I/P/B, то кодек уже сжал видео.

P.S. Сжимать 264-м кодеком в 2020 году не комильфо.

iVS ★★★★★
()
Последнее исправление: iVS (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.