Různé úpravy videa (DVB-T, DVD, liteAVCHD)
Milan Knížek dne 1. Leden 2010, v rubrice Postupy
Poslední dobou se čím dál více setkávám s ozvučenými pohyblivými obrázky, byť vůbec nevlastním klasickou video kameru: záznam z digitální televize (prozatím MPEG2 stream), zrcadlovky (Full HD H.264 v MOV kontejneru), kompaktu (lite AVCHD) a zálohování občasných DVD pro použití v HTPC.
Pro účely archivace se snažím vše konvertovat do formátu H.264 + AAC v kontejneru MP4. Kontejneru MKV jsem zatím nepřišel na chuť, vlastnosti MP4 mi úplně stačí a tento formát je lépe podporován různými zařízeními. Skripty lze spouštět z příkazové řádky nebo asociovat se souborovou příponou (pak je vhodné použít zápis: „xterm -hold -e /path/to/script.sh“ – otevře se terminál s výstupem ze skriptu).
Z pohledu funkcí pro editaci videa mi zatím stačí střih, změna velikosti, rotace, doplnění černých okrajů, odstranění prokládání, stmívačka a roztmívačka – tyto základy bez problémů zvládá Avidemux.
Konverze lite AVCHD z kompaktního fotoaparátu
lite AVCHD je používán kompaktními fotoaparáty Panasonic, video je ukládáno do složky se strukturou:
PRIVATE / AVCHDTN / THUMB.TDT
THUMB.TID
/ BDMV / CLIPINF / 00000.CPI
00001.CPI
...
/ PLAYLIST / 00000.MPL
/ STREAM / 00000.MTS
00001.MTS
...
/ INDEX.BDM
/ MOVIEOBJ.BDM
/ IISVPL / 00000.VPL
Soubory *.MTS obsahují samotné video. Identifikace dle ffmpeg je následující:
$ ffmpeg -i 00000.MTS Seems stream 0 codec frame rate differs from container frame rate: 100.00 (100/1) -> 25.00 (25/1) Input #0, mpegts, from '00000.MTS': Duration: 00:00:10.91, start: 0.366667, bitrate: 15283 kb/s Program 1 Stream #0.0[0x1011]: Video: h264, yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 25 tbr, 90k tbn, 100 tbc Stream #0.1[0x1100]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s
Avidemux ve verzi 2.5 má problémy s editací formátu H.264, takže jako mezikrok jej konvertuji. Skript pro konverzi do XviD + MP3 v AVI kontejneru:
#!/bin/bash
if [ "${1}x" == "x" ]; then
echo "Usage: $0 input_video.MTS"
exit 1
fi
INFILE="${1}"
OUTFILE="${INFILE%\.*}.avi"
if [ -f "${OUTFILE}" ]; then
echo "Output file ${OUTFILE} already exists, exiting..."
exit 1
fi
ffmpeg -i "${INFILE}" -threads 2 -vcodec libxvid -b 18000k -acodec libmp3lame -ac 2 -ab 192k -s 1280x720 -f
dvd "${OUTFILE}"
echo ""
echo "AVCHD video converted."
echo "The new video parameters are:"
ffmpeg -i "${OUTFILE}"
Po střihu video znovu překóduji v Avidemuxu do H.264 formátu.
TODO:
Ostatní skripty jsou uvedeny v článku Notebook IBM Lenovo Z60m a MythTV. Časem je přesunu sem.
Naučit se nelineární editory: Blender (zjevně příliš komplikovaný a nepodporuje mnoho formátů videa), Kdenlive (padá a padá; nepodařilo se mi otočit video o 90°, zmenšit a přidat černé okraje, na druhou stranu – lze v něm editovat H.264 videa), Cinelerra.