Erinevus lehekülje "FFmpeg" redaktsioonide vahel

Allikas: Kuutõrvaja
1. rida: 1. rida:
 +
===Sissejuhatus===
 +
 
===Kasutamine===
 
===Kasutamine===
  

Redaktsioon: 16. juuni 2011, kell 14:20

Sissejuhatus

Kasutamine

http://www.ffmpeg.org/

ffmpegi toetatud formaate saab vaadata käsurealt, vastavalt:

$ ffmpeg -codecs
$ ffmpeg -formats

Videokohta infot saab

$ ffmpeg -i video.avi

Muudame aktiivses kataloogis olevad jpg failid mpg failiks

$ ffmpeg -f image2 -i image%d.jpg video.mpg

Lammutame vastupidi videofaili jpg failideks

$ ffmpeg -i video.mpg image%d.jpg

(This will create 25 images for every 1 second, but it may serve us to have more or less images, this can be achieved with the parameter -r, -r fps Set frame rate [default 25])

Eemaldame videost heli ja salvestame mp3 formaati

$ ffmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 sound.mp3

Pakime avi faili divx koodekiga

$ ffmpeg -i source_video.avi -s 320x240 -vcodec msmpeg4v2 final_video.avi

Konverdime avi faili mpg formaati

$ ffmpeg -i video_origine.avi video_finale.mpg

Konverdime avi faili dvd mängijatele sobivaks mpeg failiks

$ ffmpeg -i source_video.avi -target pal-dvd -ps 2000000000 -aspect 16:9 finale_video.mpeg

Ffmpeg suudab salvestada X11 pilti

$ ffmpeg -f x11grab -r 24 -s cif -i :0.0 /tmp/out.mpg

0.0 is display.screen number of your X11 server, same as the DISPLAY environment variable.

Kopeeri ainult lõik vieost

$ ffmpeg -vcodec copy -acodec copy -i orginalfile -ss 00:01:30 -t 0:0:20 newfile

Salvesta lõik veebikaamerast

$ ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 out.mpg

Nii heli kui video salvestamiseks

$ ffmpeg -f oss -i /dev/dsp -f video4linux2 -s 320x240 -i /dev/video0 out.mpg

Kodeerime tihendamata video kokku x264 formaati ja .mkv konteinerisse ffmpeg abil

$ ffmpeg -i 00000.m2ts -vf "crop=1920:816, scale=1280:544" -vcodec libx264 -preset veryfast -tune film -crf 18 \
-acodec ac3 -ab 256k -sn -threads 0 Videofail.3.crf18.mkv

Algfailiks 00000.m2ts ja lõppfailiks Videofail.3.crf18.mkv

Crop ja scale tuleb iga konkreetse video puhul järgi vaadata. Kui mustad ääred ei häiri siis lihtsalt -vf "scale=1280:720"

Audio 5 kanaliga saamiseks muuta parameetrit -ab 448k

FFmpeg server

Eesmärk, jagada veebikaamera streami võrku

Avame selleks faili /etc/ffserver.conf

Ja kirjutame sinna järgneva info

Port 8090 
# bind to all IPs aliased or not 
BindAddress 0.0.0.0 
# max number of simultaneous clients 
MaxClients 1000 
# max bandwidth per-client (kb/s) 
MaxBandwidth 10000 
# Suppress that if you want to launch ffserver as a daemon. 
# NoDaemon

<Feed feed1.ffm> 
File /tmp/feed1.ffm 
FileMaxSize 5M 
</Feed> 

# FLV output - good for streaming 
<Stream test.flv> 
# the source feed 
Feed feed1.ffm 
# the output stream format - FLV = FLash Video 
Format flv 
VideoCodec flv 
# this must match the ffmpeg -r argument 
VideoFrameRate 15 
# generally leave this is a large number 
VideoBufferSize 80000 
# another quality tweak 
VideoBitRate 200 
# quality ranges - 1-31 (1 = best, 31 = worst) 
VideoQMin 1 
VideoQMax 5 
VideoSize 352x288 
# this sets how many seconds in past to start 
PreRoll 0 
# wecams don't have audio 
Noaudio 
</Stream> 

# ASF output - for windows media player 
<Stream test.asf> 
# the source feed 
Feed feed1.ffm 
# the output stream format - ASF 
Format asf 
VideoCodec msmpeg4 
# this must match the ffmpeg -r argument 
VideoFrameRate 15 
# generally leave this is a large number 
VideoBufferSize 80000 
# another quality tweak 
VideoBitRate 200 
# quality ranges - 1-31 (1 = best, 31 = worst) 
VideoQMin 1 
VideoQMax 5 
VideoSize 352x288 
# this sets how many seconds in past to start 
PreRoll 0 
# wecams don't have audio 
Noaudio 
</Stream> 

Stardime tehtud konfiga ffserveri, selleks

# ffserver


Ning seejärel paneme kliendi pumpama ffserveri peale videpilti

# ffmpeg -r 15 -s 352x288 -f video4linux -i /dev/video0 http://localhost:8090/feed1.ffm 

Video vaatamiseks tuleb enda lemmik videomängijaga avada url http://localhost:8090/test.flv või http://localhost:8090/test.asf.

Windows playeri puhul mms://<ip adress of ffserver machine>:8090/test.asf in IE

Võimalik on videot kodeerida ka swf, mpg või mõnda teise formaati. Dokumentatsioonis seletakse pikemalt Juhul kui interneti ühendus on aegnale võib seadistada VideoFrameRate madalamaks (1-5).

Selleks, et streamida flashi mängijale (swf)

Tuleb lisada ffserver.conf faili järgnevad read

<Stream test.swf>
Feed feed1.ffm
Format swf
VideoCodec flv
VideoFrameRate 2
VideoBufferSize 80000
VideoBitRate 100
VideoQMin 1
VideoQMax 5
VideoSize 352x288
PreRoll 0
Noaudio
</Stream>

Algses näites on nii server kui klient ühes masinas aga tüüpiliselt võib neid kasutada ka täiesti eraldi.

Soovides kiiremat reaktsiooniaega ning olles kvaliteetsemas võrgus võib buffreid väiksemaks keerata.