Як зробити з картинок відео

20061121

Як зробити відео з серії картинок

Мені часто доводиться робити відеофайл з послідовності зображень. Це дуже просто робиться за допомогою mencoder (входить в проект mplayer) або ffmpeg. Спочатку про mencoder.

Варіант 1: робимо відео з mencoder

Припустимо, є набір зображень однакового дозволу у форматі JPEG, і файли із зображеннями названі таким чином, що перераховує майбутні «кадри» в потрібному порядку.

Зібрати «кадри» в «фільм» можна так:

Ця команда створює відео-файл output.avi. з шириною кадру 320 пікселів і збереженням пропорцій кадру (-11). Відеопотік стискається кодеком msmpeg4, це дозволить переглядати ваш відеофайл користувачам Windows, у яких додаткових кодеків не встановлено, для цього ж служить і ключ -ffourcc MP43. Без нього Windows Media Player не здогадається про свою здатність відтворити файл. Величина бітрейта (vbitrate = 2000) впливає на якість відео: чим більше значення, тим менше будуть помітні артефакти стиснення, але і тим більше буде розмір отриманого файлу.


Файли отримані таким чином відтворюються, наскільки мені відомо, без проблем будь-яким відео-програвачем та в Linux, і в Windows.

Варіант 2: робимо відео з ffmpeg

Можна теж саме зробити і за допомогою ffmpeg. Спочатку можна одноманітно перейменувати всі вихідні файли, щоб імена були, наприклад, frame0000.jpg. Потім можна зробити власне відео. Наприклад, щоб зробити відео в форматі Flash (FLV): Тут -r 2 вказує частоту кадрів у вхідному потоці (дві картики в секунду), -i frame% 04d.jpg визначає шаблон для імен файлів з окремими кадрами, -s 320×240 масштабує кадри , -y говорить мовчки перезаписати файл з результатом, -an говорить не писати звук, -r 24 встановлює частоту кадрів в відеопотоці на виході. Можна в середині вказати ще -sameq. щоб зберігати якість картинки наскільки це можливо.

Щоб зробити відео в іншому форматі, міняємо ім’я файлу на виході, наприклад, можливі такі варіанти:

Користувачам Ubuntu для цього, ймовірно, буде потрібно поставити пакети з повноцінним, неурізані ffmpeg. На сьогодні (2009-04) вони називаються libavcodec-unstripped -51 і libavcodec-unstripped -52.

Прочитати повністю: тут

Share →