Редагування відео і ffmpeg
Трохи про редагування відео на комп'ютері. Треба було мені вирізати фрагмент із відеофайла. Я наївно відкрив Kdenlive і спробував зробити це там. Ну, здавалося б: графічний інтерфейс, розберуся. Промучився досить довго, але нічого не досяг, окрім розстановки міток і падіння програми. Плюнув і загуглив питання, що мене цікавило. І, о диво: виявилося, що в командному рядку це робиться дуже просто. Треба тільки вибрати, як описати фрагмент відео, який потрібно зберегти в окремий файл: через його початок та тривалість, чи через початок та кінець. В першому випадку вводимо в командному рядку команду
ffmpeg -i вхідний_файл.xyz -ss гг:хвхв:сс -t гг:хвхв:сс -c copy створюваний_файл.xyz
а в другому — команду
ffmpeg -i вхідний_файл.xyz -ss гг:хвхв:сс -to гг:хвхв:сс -c copy створюваний_файл.xyz
і тиснемо enter. В обох командах параметр -ss позначає якраз початок фрагменту, який слід вирізати, і його положення, виміряне в годинах, хвилинах і секундах від початку вихідного ролика (вхідного файла), а параметри -t і -to — це, відповідно, тривалість і кінець фрагмента, який вирізається і записується у створюваний_файл.xyz; параметр -c copy говорить програмі про те, що перекодовувати відео не треба.
Протилежною операцією до вирізання є послідовне склеювання кількох відео в одне. За допомогою ffmpeg така операція теж виконується нескладно. Хоча й дещо складніше, аніж за одну команду. Для об'єднання кількох відеороликів в один потрібно виконати наступну послідовність дій:
1. Розміщуємо всі файли, які будуть об'єднані, в одному каталозі.
2. Створюємо в цьому каталозі текстовий файл з переліком назв наших відеофайлів, взятих у тій послідовності, якій ми склеюватимемо їх в один файл. Це все можна зробити в тому ж командному рядку, в якому ми далі запускатимемо ffmpeg. Нехай текстовий файл з переліком називатиметься «videos». В такому разі переходимо (в командному рядку) в каталог з відеофайлами і виконуємо команду створення файла:
touch videos
після чого вписуємо туди послідовно всі наші файли командами
echo 'file відеофайл_№n.xyz' >> videos
Текст, вказаний між одиничними рядками після команди echo, буде дослівно вписано в кінці файла videos окремим рядком. Перевірити, що все записали правильно, ми можемо, прочитавши файл videos командою
cat videos
Сам список файлів, які лежать в даному каталозі, перевіряється командою
ls
3.Якщо все зроблено правильно, тоді запускаємо ffmpeg командою
ffmpeg -f concat -i videos -c copy об'єднане_відео.xyz
Зверніть увагу, що вище я скрізь припускав, що формат отриманого відео (представлений скрізь розширенням файлів .xyz) однаковий для початкових і кінцевого файла. Якщо ж це не так, і Вам потрібно змінити формат, то замість параметра -c copy слід вписати потрібні параметри перекодування відео та звуку.
У мене, правда, щось склеювання відео, на відміну від вирізання, працює некоректно. Мабуть, щось із ffmpeg в моєму дистрибутиві не так. Поки не став розбиратися, склеюю відео у програмі Shotcut, де все працює добре. Власне, відео, яке я виклав у попередньому дописі, я збирав із трьох фрагментів саме у Shotcut. Як на мене, виходить зручно і швидко. До інших відеоредакторів типу Kino, Cinelerra, Openshot та Olive руки поки не дійшли. Що там в них — не знаю.
- Щоб додати коментар, увійдіть