Edytowanie wideo za pomoca FFMPEG

      Brak komentarzy do Edytowanie wideo za pomoca FFMPEG
ffmpeg-logo

ffmpeg-logo

Co to jest  FFmpeg?

Narzędzie do obróbki wszystkiego co się wiąże w dzisiejszym świecie z plikami wideo. Koduje, transkoduje, mixuje, strumieniuje i  pozwala manipulować filtrami w ścieżkach wideo 🙂 Jest parataktycznie dostępny na wszystkich platformach jakie człowiek stworzył. Za darmo i ciągle rozwijany na nowe potrzeby rynku.

W skład komponentu wchodzą cztery narzędzia :

  • ffmpeg – narzędzie konsolowe do robienia wszystkiego co nam się podoba z  pilakami video.
  • ffserver – Serwer do strumieniowania na żywo.
  • ffplay – prosty odtwarzać wideo.
  • ffprobe – Analizator plików lub strumienia wideo.

Narzędzie używamy  poprzez konsole poleceń  ( w Windows -> Uruchom jako.. -> cmd.exe ), wydajać potrzebną komendę dla danej sytuacji 🙂

Składnia programu przedstawia się następująco:

ffmpeg [ opcje dla pliku wejściowego] -i [plik/strumień wejściowy] [opcja dla pliku/strumienia wyjściowego]  plik_wyjściowy

#Ogólne 
-f wymuś format
-i wejściowy plik 
-v włączenie debugowania
-target wybranie juz gotowego typu formatu ( vcd, svcd, dvd,pal-vcd )

#Opcje dla Video
-r ustawienie  ilości klatek na sekundę, domyślnie 25.
-s ustawienie wielkości klatki (wxh ) 1920x1080.
-vn wyłączenie video.
-sameq używaj podobnego bitretu jak w źródle. 
-maxbitrate maksymalny bitrate.
-minbitrate minimalny bitrate.

# Opcje dla Audio 
-an wyłączenie audio.

informacje o dostępnych formatach i kodekach

ffmpeg -formats
# D  - możemy dekodowac z danego formatu
# E   - możemy encodowac do danego formatu 

ffmpeg -codecs
# D  - możemy dekodowac z danego kodeku
# E   - możemy encodowac do danego kodeku 
#V/A/S - informacja do czego ten kodek sie nadaje Video/Audio/Subtitle

Informacja o pliku video:

ffmpeg -i video.mp4
ffprobe video.mp4
mediainfo video.mp4

Przekształcenie video na zdjęcia i zdjęcia na video:

Nasze przykładowe video.mp4 ma 19,669 sekund, które było nagrywane  50 klatek na sekundę (fps). Wiec możemy się spodziewać 19,669*50 ~= 984 zdjęć ( zaokrągli w gore) .

%d - Generuje w wystąpieniu liczbę. Domyślnie, numeracja w gore od 1 ( img1.jpg, img2.jpg ...)

f -  wymusza użycie danego formatu 

framrate - ustawia ilość klatek na sekunde, domyślnie jest 25.
##  Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native))
ffmpeg -i video.mp4  img%d.jpg

##  Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
ffmpeg -f image2 -framerate 50 -i img%d.jpg vid.mp4
##  Stream #0:0 -> #0:0 (mjpeg (native) -> gif (native))
ffmpeg -f image2 -framerate 50 -i img%d.jpg vid.gif

Przekształcenie video do innego formatu pliku:

## AVI do MPG
ffmpeg -i video.avi video.mpg

##  mp4 do gif 
ffmpeg -i video.mp4 video.gif 

## mp4 do flv
ffmpeg -i video.mp4 video.flv

## mp4 do SVCD mpeg2 ( standard na płyty dvd )
ffmpeg -i video.mp4 -target pal-svcd vid.mpg # PAL
ffmpeg -i video.mp4 -target ntsc-svcd vid.mpg # NTSC



Wyciąganie dźwięku z video i mixowanie dodatkowego dźwięku:

vn - wyłączenie ścieżki video
## video z formatem dźwięku ACC do mp3
## Stream #0:1 -> #0:0 (aac (native) -> mp3 (libmp3lame))
ffmpeg -i video.mp4 -vn  -f mp3 audio,mp3
ffmpeg -i video,mp4 -map 0:1 -acodec copy -vn adio.mp3 # gdy jest dostępne kilka ścieżek audio 


## Mixowanie audio 
## Stream #1:0 -> #0:0 (h264 (native) -> h264 (libx264))
## Stream #0:0 -> #0:1 (mp3 (native) -> aac (native))
 ffmpeg -i audio.mp3 -i video.mp4 vid.mp4

Obniżenie / Zwiększenie prędkości odtwarzanego video:

Cala sztuczka polega na manipulacji rekordu PTS ,  dzieląc go o  polowe zwiększamy dwukrotnie prędkość odtwarzania w jednej sekundzie.

PTS () -  znacznik czasu prezentacji, wartość mówiąca o tym kiedy powinien zostać zaprezentowana klatka. 

vf  - deklaracja użycia filtru video
## Zwiększenie 
ffmpeg -i video.mp4  -vf "setpts=0.5*PTS" vid.mp4

## Zmniejszenie 
ffmpeg -i video.mp4  -vf "setpts=1.5*PTS" vid.mp4

## Analiza co sie dokładnie zmieniło w ramkach 
ffprobe -show_frames  video.mp4

Skalowanie zdjęć:

ffmpeg -i img.jpg -vf scale=320:240 out.jpg

Wycięcie kawałku obrazka/video:

## x:y:width:height
ffmpeg -i img.jpg -vf crop 0:0:600:600 out.png
ffmpeg  -i video.mp4  -vf crop=100:100:900:900 out.mp4

Odwrócenie kolorów obrazka/wideo (negatyw):

ffmpeg  -i video.mp4  -vf lutrgb="r=negval:g=negval:b=negval" out.mp4
ffmpeg  -i img.jpg -vf lutrgb="r=negval:g=negval:b=negval" out.jpg

Rysowanie box na video lub  zdjęciu:

ffmpeg  -i video.mp4  -vf drawbox=x=0:y=0:w=200:h=60:color=red@0.5  out.mp4

Wyłączenie dźwięku lub ściszenie:

## mute
ffmpeg -i video.mp4 -an out.mp4

## Zmiana głośności dźwięku
ffmpeg -i video.mp4 -af 'volume=0.5' output.mp4

Obrócenie wideo / zdjęcia:

# o 90 stopni 
ffmpeg -i video.mp4 -filter:v 'transpose=1'  vid.mp4

# o 180 stopni 
ffmpeg -i video.mp4 -vf "transpose=2" vid.mp4

 

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.