Základní zpracování videa na Linuxu

Vzhledem k tomu že jsem si vzal na starosti natáčení a následné zpracování videa z pravidelných setkání CZJUGu, musel jsem se po podívat na základní zpracování videa pod Linuxem - kdysi dávno jsem toto prováděl ve Windows v Adobe Premiere, a hledal jsem jsem něco obdobně komfortního a flexibilního. Předpokládám že nejsem sám kdo podobný problém řeší, takže si dovoluji v krátkosti popsat "své řešení" založené na nástrojích ffmpeg a kdenlive.

Video natáčím na kameru Panasonic VDR-D250 (na DVD-RAM), zvuk na diktafon Philips LFH 0662 (ve formátu MP3, s využitím klopového mikrofonu). Při zpracování je tedy potřeba udělat zhruba toto:

  1. připravit video z DVD-RAM (ffmpeg)
  2. připravit audio z MP3 (Audacity)
  3. sestříhat a vyexportovat video (kdenlive)

Podívejme se tedy stručně na jednotlivé kroky - cílem článku ale rozhodně není vyčerpávající popis postupů, spíše stručný nástin a upozornění na problémy na které jsem narazil.

Připrava videa z DVD-RAM

Teoreticky vzato by video z DVD-RAM disku mělo jít přímo použít v editoru, a víceméně to skutečně funguje (stačí prostě načíst DVD_RTAV/VR_MOVIE.VRO), nicméně zjistil jsem že důsledkem je rozhození synchronizace audio a video stopy ve výsledném videu.

Je tedy potřeba vhodným způsobem překonvertovat video do vhodného formátu - osobně se mi osvědčila konverze do DV pomocí ffmpeg:

$ ffmpeg -i /mnt/cdrom/DVD_RTAV/VR_MOVIE.VRO -deinterlace \
         -target dv ~/working.dv

Každopádně ale upozorňuji že po této dekompresi video zabere cca 15x více místa (např. cca 11,5GB namísto původních 800MB), ale editor s ním dokáže pracovat výrazně rychleji než s původním DVD-RAM formátem. Konverze také zabere určitý čas - na mém domácím  počítači s AMD Athlon64 X2 4400+ (což je dnes spíše podprůměrná konfigurace) zabere zpracování 1 hodiny videa cca 20 minut čistého času.

Update: Pokud na konci zpracování potřebujete získat video v jiném rozlišení než je na vstupu (v mém případě je na vstupu standardní PAL video o rozlišení 768x576 a na výstupu chci video např. 600x450), potom může být lepší provést přeškálování už v této fázi. Lze to samozřejmě udělat až na konci během "renderování" ve video editoru, ale dle mých zkušeností je výsledek znatelně horší (čtverečky na hranách, apod.). Stačí mírně upravit volání ffmpeg, např. takto:

$ ffmpeg -i /mnt/cdrom/DVD_RTAV/VR_MOVIE.VRO -deinterlace \
         -s 600x450 -sws_flags bicubic -vcodec libxvid \
         -acodec libmp3lame -vb 500000 -ab 128000 -ar 44100 \
         ~/working.avi

Což přeškáluje video do rozlišení 600x450, pro kódování videa použije Xvid codec a bitrate 500kbps a pro audio MP3 se vzorkovací frekvencí 44,1kHz a bitrate 128kbps.

Připrava audia z MP3

Stejně jako v případě videa by s MP3 audiem z diktafonu mělo jít bez problémů pracovat přímo ve video editoru - problém ale nastává pokud s ním potřebujete provádět něco složitějšího.

Například já jsem zjistil že ačkoliv by záznamy z videokamery i diktafonu měly časově "sedět," tak záznam z diktafonu je trochu pomalejší - na 1 hodině záznamu se audio stopa z videokamery a audio z diktafonu rozejdou cca o 7 vteřin (a to je sakra hodně). Je tedy potřeba audio "zpomalit" což v mém videoeditoru (kdenlive, viz. další odstavec) udělat nelze (nebo alespoň nevím jak).

Proto k tomuto účelu používám audio editor Audacity, ve kterém provádím toto

  1. Natvrdo nastavím samplovací frekvenci tak abych dosáhl požadovaného zpomalení (experimentálně jsem zjistil že v mém případě je potřeba nastavit 44191 namísto standardní hodnoty 44100, což je zpomalení cca o 0.2%).
    zpomalení audia - nastavení jiné frekvence

  2. Přesampluji audio zpět do standardní frekvence 44100.


  3. Vyexportuji audio ve formátu WAV (kvůli rychlejší práci během střihu - viz. následující odstavec)

Výsledkem tedy je nekomprimované audio ve formátu WAV.

Upozorňuji že ve vašem případě může být zpomalení jiné - hodnota 44191 je prostě nejlepší v mém konkrétním případě (kombinaci kamery / diktafonu), takže budete muset chvilku zjišťovat co je nejlepší pro vás. Nejjednodušší způsob jak zjistit potřebnou frekvenci je zarovnat si začátek audio a video stopy ve videoeditoru, podívat se o kolik se liší konce, a následně si spočítat o kolik je potřeba zpomalit audio (a nastavit frekvenci odpovídajícím způsobem).

Stříh a export videa

Poslední co je potřeba udělat je sestříhat video, což se v mém případě redukuje na odstřižení začátku a konce, tak aby zůstala jen samotná prezentace, doplnění audiostopy vytvořené v předchozím kroku, zarovnání proti videu a export do vhodného formátu (např. Xvid4).

Toto vše dělám v editoru kdenlive, který je dle mého názoru přehledný (viz. screenshot níže), má všechny potřebné vlastnosti ale není ani příliš komplikovaný ani příliš jednoduchý, a je velmi stabilní.

video editor Kdenlive

Pro export (render) videa jsem si lehce upravil jeden z vytvořených profilů (Xvid4 800k 2 pass) - doplnil jsem do něj tento kousek

ab=96k ar=22050 ac=1

který říká že výsledné audio je mono (ac=1) se vzorkovací frekvencí 22050Hz a bitrate 96kbps - pro přednášky to naprosto postačuje.

Shrnutí

Pokud bych to měl stručně shrnout, potom jsem musel vyřešit tyto problémy

  • problém: špatná sychronizace audia a videa v případě použití přímo videa z DVD-RAM, řešení: konverze do formátu DV pomocí ffmpeg (a aplikace deinterlace filtru)
  • problém: špatná synchronizace audia z diktafonu a videa z kamery (lehce jiná rychlost), řešení: úprava (zpomalení) pomocí audio editoru Audacity

Snad vám to nějak pomůže ;-)

Komentáře

K tomuto článku zatím žádné komentáře neexistují (nebo čekají na schválení).

Nový komentář

Všechny komentáře podléhají schválení - mezi odesláním komentáře a jeho zobrazením na této stránce tedy může být prodleva. Vyplníte-li e-mailovou adresu, budete o schválení či neschválení komentáře informováni.

V titulku ani v textu nejsou povoleny HTML tagy - budou automaticky odstraněny. Odstavec ukončíte prázdným řádkem.

(nepovinné)