Кодування відеоданих. Формати відеофайлів
За навчальною програмою 2017 року
Урок 18
8
teach-inf.com.ua
Кодування відеоданих
Розділ 3 § 13
Надзвичайно багато інформації з навколишнього середовища людина сприймає за допомогою зору, тому саме відеоматеріали є найбільш інформативними.
8
© Вивчаємо інформатику teach-inf.com.ua
Принципи кодування відео
Розділ 3 § 13
Як ви вже знаєте, рухоме зображення — відео — отримують, демонструючи почергово окремі кадри.
Отже, щоб закодувати відео, потрібно закодувати зображення кожного його кадру приблизно так, як це описано в матеріалах раніше. Оскільки для отримання плавних рухів потрібно демонструвати 24 або більше кадрів на секунду, то обсяг відеоданих може бути значним.
8
© Вивчаємо інформатику teach-inf.com.ua
Принципи кодування відео
Розділ 3 § 13
Закодовані кадри зберігають в одному файлі, додавши за потреби закодовані дані звукового супроводу.
8
© Вивчаємо інформатику teach-inf.com.ua
Принципи кодування відео
Розділ 3 § 13
Мультфільм тривалістю 1 год 40 хв (6000 с) за частоти кадрів 24 кадри/с складається з:
6000 * 24 = 144 000 кадрів
За роздільності 720 × 400 пікселів і глибини кольору 3 байти обсяг даних одного кадру становить:
720 * 400 * 3 = 864 000 байтів
8
© Вивчаємо інформатику teach-inf.com.ua
Принципи кодування відео
Розділ 3 § 13
Отже, загальний обсяг відеоданих становить:
144 000 * 864 000 = 124 416 000 000 байтів ≈ 120 Гбайт
Цікаво, як ці дані разом зі звуковою доріжкою поміщаються у значно меншому файлі обсягом
1,6 Гбайт?
8
© Вивчаємо інформатику teach-inf.com.ua
Принципи кодування відео
Розділ 3 § 13
Існують різні методи зменшення обсягу файлу до прийнятних розмірів. Розглянемо деякі з них докладніше.
8
© Вивчаємо інформатику teach-inf.com.ua
Принципи кодування відео
Розділ 3 § 13
8
© Вивчаємо інформатику teach-inf.com.ua
Принципи кодування відео
Розділ 3 § 13
Під час скринкастингу передається через інтернет або записується до файлу те, що відбувається на екрані комп’ютера. Якщо ведучий при цьому щось пояснює, зображення може не змінюватися протягом декількох секунд.
8
© Вивчаємо інформатику teach-inf.com.ua
Принципи кодування відео
Розділ 3 § 13
А під час переміщення вказівника змінюється тільки маленька ділянка екрана поблизу нього. Тому другий метод може бути дуже ефективним.
На практиці в різних форматах відеофайлів використовують ці та інші методи, а також їх комбінації.
8
© Вивчаємо інформатику teach-inf.com.ua
Формати відеофайлів
Розділ 3 § 13
Відеофайл містить набір статичних зображень, призначених для почергового виведення з певною частотою.
Для стиснення і відтворення відео використовують спеціальні програми — кодеки (від слів кодування — декодування).
8
© Вивчаємо інформатику teach-inf.com.ua
Формати відеофайлів
Розділ 3 § 13
Формат відеофайлу визначається методом його стиснення. Більшість відеофайлів можуть містити статичні зображення, аудіо та відео різних форматів тощо. Такі файли називають медіаконтейнерами.
8
© Вивчаємо інформатику teach-inf.com.ua
Формати відеофайлів
Розділ 3 § 13
Розглянемо деякі формати відеофайлів.
AVI
Медіаконтейнер, розроблений спочатку для ОС Windows. Відтворюється на смартфонах, комунікаторах тощо
WMV
Формат компанії Microsoft, може містити аудіо- й відеодані. Відтворюється плеєрами MPlayer, Windows Media Player та ін.
MOV
Формат компанії Apple для QuickTime-плеєра, може містити відео, анімацію, графіку. Підтримує будь-які аудіо- і відеокодеки
8
© Вивчаємо інформатику teach-inf.com.ua
Формати відеофайлів
Розділ 3 § 13
(Продовження…) Деякі формати відеофайлів.
MPG
Часто вживаний формат завдяки невеликим втратам під час стиснення та сумісності з багатьма програмами і пристроями
MP4
Формат для зберігання відео, аудіо та деяких видів анімації. Підтримує багатоканальний звук. Найчастіше використовується в портативних пристроях, для передавання відеофайлів в інтернеті
ASF
Формат компанії Microsoft, використовується для передавання відео в інтернеті. Підтримує практично всі відеокодеки
8
© Вивчаємо інформатику teach-inf.com.ua
Формати відеофайлів
Розділ 3 § 13
(Продовження…) Деякі формати відеофайлів.
MKV
(Matroska)
За можливостями перевищує AVI, може зберігати інформацію про титри, навігаційні меню тощо. У контейнер MKV можна впакувати відео й аудіо найрізноманітніших форматів
WebM
Відкритий формат (не вимагає ліцензії) компанії Google для вебмедіа. Спрощений аналог MKV з функціями, потрібними для мережі. Підтримується більшістю сучасних веббраузерів і медіаплеєрів
8
© Вивчаємо інформатику teach-inf.com.ua
Формати відеофайлів
Розділ 3 § 13
Існує значно більше форматів відео- та аудіофайлів, ніж ми розглянули. Їхня кількість зростає, оскільки вони створюються для різних пристроїв і мають різне призначення. Крім того, технології опрацювання мультимедійних даних розвиваються, це також спричиняє появу нових форматів файлів і «відмирання» застарілих.
8
© Вивчаємо інформатику teach-inf.com.ua
Використання відео в програмах
Розділ 3 § 13
Для перегляду відео за допомогою програм-програвачів його зберігають в одному файлі. Якщо ж потрібно, наприклад, зробити анімаційного персонажа у власній ігровій програмі, то зручно мати відеофрагмент у вигляді окремих графічних файлів.
8
© Вивчаємо інформатику teach-inf.com.ua
Використання відео в програмах
Розділ 3 § 13
Ви вже навчилися виводити у вікно власної програми мовою Python покадрову анімацію. Цю програму можна вдосконалити так, щоб в одному вікні виводилось декілька анімацій одночасно.
8
© Вивчаємо інформатику teach-inf.com.ua
Використання відео в програмах
Розділ 3 § 13
Опишемо клас, екземпляр якого за отриманим списком імен файлів і координатами виводитиме у заданому місці вікна анімацію:
class Videosprite:
def __init__(self, frames, x, y):
# Формуємо список зображень для об’єкта...
self.images = []
for name in frames: # ...з файлів, імена яких у списку frames
self.images.append(PhotoImage(file = name))
self.id = canvas.create_image(x, y, anchor = NW, image = self.images[0])
self.cur_frame = 0 # Номер поточного кадру
self.animate() # Початок анімації
8
© Вивчаємо інформатику teach-inf.com.ua
Використання відео в програмах
Розділ 3 § 13
Продовження…
def animate(self ):
root.update() # Показуємо поточний кадр
# Готуємо наступний кадр
self.cur_frame += 1 # Коригуємо номер
if self.cur_frame >= len(self.images):
self.cur_frame = 0
# Замінюємо зображення наступним
canvas.itemconfig(self.id,image = self.images[self.cur_frame])
root.after(100, self.animate) # Продовжуємо анімацію
8
© Вивчаємо інформатику teach-inf.com.ua
Використання відео в програмах
Розділ 3 § 13
Тепер у програмі можна створювати об’єкти класу Videosprite, кожний із яких у потрібному місці виводитиме анімацію із власного списку імен файлів:
import time
from tkinter import*
root = Tk()
root.title('Відеоспрайти')
canvas = Canvas(root, width = 140, height = 280)
canvas.pack()
# Створюємо два об’єкти з різною анімацією
B = Videosprite(5, 5, ['1.gif', '2.gif', '3.gif'])
C = Videosprite(5,140, ['4.gif', '5.gif', '6.gif', '7.gif’, '8.gif'])
root.mainloop()
8
© Вивчаємо інформатику teach-inf.com.ua
Використання відео в програмах
Розділ 3 § 13
Як бачимо, розуміння принципів отримання рухомого зображення і кодування відеоданих дозволяє не тільки зберігати фільми для перегляду, але й складати цікаві власні програми з анімаційним оформленням.
8
© Вивчаємо інформатику teach-inf.com.ua
Розгадайте ребус
Відеофайл
«Ребуси українською» © rebus1.com
Розділ 3 § 13
8
© Вивчаємо інформатику teach-inf.com.ua
Розгадайте ребус
Кодек
«Ребуси українською» © rebus1.com
Розділ 3 § 13
8
© Вивчаємо інформатику teach-inf.com.ua
Питання для самоперевірки
Розділ 3 § 13
8
© Вивчаємо інформатику teach-inf.com.ua
Домашнє завдання
Проаналізувати
§ 13, ст. 89-93
Розділ 3 § 13
8
© Вивчаємо інформатику teach-inf.com.ua
Працюємо за комп’ютером
Розділ 3 § 13
Сторінка
93
8
© Вивчаємо інформатику teach-inf.com.ua
Дякую за увагу!
За навчальною програмою 2017 року
Урок 18
8
teach-inf.com.ua