MEncoder – odwracanie video

W moim telefonie mam funkcję nagrywania filmów w podwyższonych fps (czyli krótko mówiąc: slow-motion). Oglądając dzisiaj jeden z takich filmików zapragnąłem zobaczyć go od tyłu. I… pojawił się problem – jak to, do diabła, zrobić szybko i wygodnie? No i – oczywiście – używając tylko darmowych narzędzi? Jak zwykle, skorzystałem z mencodera, ale tym razem w połączeniu z mplayerem i tworząc cały skrypt, gdyż cały proces jest kilkustopniowy. Zatem – do dzieła!

Pierwszą czynnością, jaką musimy wykonać, jest rozbiórka naszego video do pojedynczych klatek. Użyjemy do tego mplayera:

mplayer -vo png:outdir=klatki video.avi

W efekcie otrzymamy katalog klatki, a w nim pliki png z poszczególnymi klatkami z całego video. Zanim przekujemy je w video, musimy przygotować listę plików – w kolejności odwróconej. Z pomocą przyjdzie nam zwykła komenda dir:

dir klatki /b /s /o-n >> klatki.txt

W pliku zapisane zostaną pliki wraz z pełnymi ścieżkami, w porządku alfabetycznym malejącym. Taki plik może już posłużyć nam do zakodowania naszego nowego video:

mencoder mf://@klatki.txt -mf fps=30:type=png -ovc x264 .... itd.

Ja, w celu wygodnego używania, napisałem sobie mały skrypt, który przyjmuje jeden lub dwa parametry. Pierwszy, to oczywiście nazwa pliku video do obrobienia, a drugi, to docelowy fps. Jeśli drugiego parametru nie podamy, zostanie użyta wartość 30 klatek na sekundę. Na końcu, skrypt sprząta po sobie 🙂 Życzę miłego używania!

set MPLAYER="C:\Program Files (x86)\mplayer\mplayer.exe"
set MENCODER="C:\Program Files (x86)\mplayer\mencoder.exe"

mkdir %1.images
%MPLAYER% -vo png:outdir=%1.images %1
dir %1.images /b /s /o-n >> %1.frames.txt

set H264_FAST=-ovc x264 -x264encopts subq=4:bframes=2:b_pyramid=normal:weight_b
set H264_HIGH=-ovc x264 -x264encopts subq=5:8x8dct:frameref=2:bframes=3:b_pyramid=normal:weight_b
set H264_VHIGH=-ovc x264 -x264encopts subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid=normal:weight_b
set FPS=%2
if [%2] == [] set FPS=30

%MENCODER% mf://@%1.frames.txt -mf fps=%FPS%:type=png %H264_HIGH% -nosound -o %1.reversed.avi
rd /s /q %1.images
del %1.frames.txt
Facebooktwittergoogle_plusredditpinterestlinkedinmail
twitterlinkedin

MEncoder – tips&tricks

Od lat używam mencodera – a jednak wciąż potrafi zaskakiwać i zmuszać do ruszania głową… 😉 dlatego postanowiłem zgromadzić w jednym miejscu garść porad (również dla samego siebie).

 

Kodowanie H.264 szybkie:

-ovc x264 -x264encopts subq=4:bframes=2:b_pyramid=normal:weight_b

 

Kodowanie H.264 wysoka jakość:

-ovc x264 -x264encopts subq=5:8x8dct:frameref=2:bframes=3:b_pyramid=normal:weight_b

 

Kodowanie H.264 bardzo wysoka jakość:

-ovc x264 -x264encopts subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid=normal:weight_

 

Zmiana prędkości poprzez zmianę framerate’u:

-speed 8

Trzeba zauważyć, że ten efekt jest raczej słaby i niewiele jest prawdziwych zastosowań dla niego…

 

Zmiana prędkości poprzez odrzucenie ramek (tu 8x):

-fps 240 -ofps 30

A tu mała sztuczka, pozwalająca na prawdziwe przyśpieszenie filmu 🙂 MEncoder przy takiej konstrukcji zacznie odrzucać zbędne ramki.

 

Odwrócenie filmu do góry nogami (np. w nagraniu z telefonu):

-vf flip,mirror

 

Odwrócenie filmu w prawo:

-vf rotate=1

Odwrócenie filmu w lewo:

-vf rotate=2

 

Bez dźwięku:

-nosound

Podłożenie zewnętrznej ścieżki audio:

-audiofile sciezka.mp3 -oac mp3lame -lameopts mode=2:cbr:br=128:vol=0

Kodowanie MP3:

-oac mp3lame -lameopts mode=2:cbr:br=128:vol=0

Zrzut pliku MP3 z filmu:

mencoder film.avi -oac copy -of rawaudio -ovc copy -o sameaudio.mp3

 

Przycięcie filmu:

-ss 0:00:35 -endpos 0:07:47

Połączenie kilku plików:

mencoder plik1.mp4 plik2.mp4 plik3.mp4 -ovc copy -oac pcm -o joined.mp4

 

 

I na koniec mały przykład, który właśnie przed chwilą uskuteczniałem: odwrócenie filmu do góry nogami, 8-krotne przyśpieszenie, podłożenie ścieżki audio z MP3 i kodowanie całości do H.264:

mencoder filmik.mp4 -vf flip,mirror -ovc x264 -x264encopts subq=5:8x8dct:frameref=2:bframes=3:b_pyramid=normal:weight_b -fps 240 -ofps 30 -audiofile muza.mp3 -oac mp3lame -lameopts mode=2:cbr:br=128:vol=0 -o final_video.mp4

 

Miłego kodowania! 🙂

Facebooktwittergoogle_plusredditpinterestlinkedinmail
twitterlinkedin