FFmpeg çok hızlı bir görsel ve işitsel veri çeviricisidir. Ayrıca canlı ses/görüntü kaynağında (akım) anında işlem yapabilir. Komut satırı arayüzü sezgi yolu ile anlaşılabilecek şekilde tasarlandı. FFmpeg olası parametreleri hissedebilir. Sadece hedef örnekleme hızını belirtmek zorundasınız. FFmpeg ayrıca herhangi bir örnekleme oranından diğerine dönüşüm yapabilir ve yüksek kaliteli çok evreli filtresi ile görüntüyü anında boyutlandırır.
FFmpeg girdi biçemini ve aygıtını belirttiğiniz görüntü ve sesi yakalayabilir
ffmpeg -f oss -i /dev/dsp -f video4linux2 -i /dev/video0 /tmp/out.mpg
FFmpeg'i Gerd Knorr'un yazdığı xawtv (http://http://linux.bytesex.org/xawtv/) gibi bir TV gösterici ile devreye sokmadan önce doğru görüntü kaynağını ve kanalını etkinleştirmeniz gerektiğini unutmayınız. Ayrıca, standart bir ses karıştırıcısı ile ses kayıt seviyelerini de ayarlamalısınız.
FFmpeg X11 görüntüsünü yakalayabilir.
ffmpeg -f x11grab -s cif -i :0.0 /tmp/out.mpg
0.0 değeri DISPLAY(EKRAN) ortam değişkenindeki değerle aynı olan X11 sunucunun uçbirim ekran numarasıdır.
ffmpeg -f x11grab -s cif -i :0.0+10,20 /tmp/out.mpg
0.0 değeri DISPLAY(EKRAN) ortam değişkenindeki değerle aynı olan X11 sunucunun uçbirim ekran numarasıdır. 10 değeri yakalanacak görüntünün yataydaki başlangıç konumu, 20 ise düşeydeki başlangıç konumudur (benek sayısı cinsinden).
Örnek:
ffmpeg -i /tmp/test%d.Y /tmp/out.mpg
Bu, şu dosyaları kullanacaktır:
/tmp/test0.Y, /tmp/test0.U, /tmp/test0.V, /tmp/test1.Y, /tmp/test1.U, /tmp/test1.V, vs...
Y dosyaları U ve V dosyalarının 2 katı çözünürlük kullanır. Bunlar başlıkları olmayan ham dosyalardır. Bütün yeterli görüntü çözücüler tarafından oluşturulabilirler. Eğer FFmpeg tahmin edemezse, siz resim boyutunu -s seçeneği ile belirleyin.
ffmpeg -i /tmp/test.yuv /tmp/out.avi
Buradaki test.yuv düzlemsel ham YUV verisi içeren bir dosyadır. Her resim karesi ardından yatay ve düşeyde yarım çözünürlüklü U ve V düzlemleri gelen Y düzleminden oluşur.
ffmpeg -i mydivx.avi hugefile.yuv
ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg
Bu komut satırı a.wav ses dosyasını ve a.yuv ham YUV video dosyasını a.mpg MPEG dosyasına çevirir.
ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2
Bu komut satırı a.wav ses dosyasını 22050Hz örnekleme hızıyla MPEG ses dosyasına çevirir.
ffmpeg -i /tmp/a.wav -ab 64k /tmp/a.mp2 -ab 128k /tmp/b.mp2 -map 0:0 -map 0:0
Bu komut, a.wav ses dosyasını 64 kilobitlik a.mp2 dosyasına ve 128 kilobitlik b.mp2 dosyasına dönüştürür. -map dosya:sıra ile duraksız görüntü çıktıları için sırasıyla hangi duraksız görüntü girişlerinin kullanılacağı (akım numarası olarak) belirtilir.
ffmpeg -i snatch_1.vob -f avi -vcodec mpeg4 -b 800k -g 300 -bf 2 -acodec libmp3lame -ab 128k snatch.avi
Bu bir tipik DVD güzelleştirme örneğidir; giriş bir VOB dosyasıdır, çıkış MP3 sesli ve MPEG-4 görüntülü AVI dosyasıdır. Bu komutta MPEG-4 duraksız görüntüsünün DivX5 uyumlu olması için B-karelerini kullandığımıza ve GOP boyutunu, 29.97 kare/s görüntü girdisi için 10 saniyede bir, bir iç kare anlamına gelen 300 değeriyle belirttiğimize dikkat ediniz. Ek olarak, duraksız ses akışının MP3 olarak kodlanmasını istiyorsanız FFmpeg paketini LAME desteği sağlamak için --enable-libmp3lame seçeneği ile yapılandırarak derlemelisiniz. Eşleme işlemi (-map) DVD kodlarken istediğiniz ses dilini elde etmek için önemlidir.
NOT: Desteklenen girdi biçimlerini ögrenmek için ffmpeg -formats komutunu kullanınız.
Genel yazım tarzı şöyledir:
ffmpeg [[girdi dosyası seçenekleri ][-i girilen dosya adı]]... {[çıkan dosya seçenekleri] çıktı dosyası adı}...
Eğer giriş dosyası verilmemişse, ses/görüntü yakalama tamamlanmıştır. Genel bir kural olarak, kurallar belirtilen bir sonraki dosyaya uygulanır. Bu yüzden sıra önemlidir ve komut satırında aynı seçenek birden fazla görülebilir. Her oluşum bir sonraki giriş ve çıkış dosyasına uygulanır.
ffmpeg -i input.avi -b 64k output.avi
ffmpeg -r 24 -i input.avi output.avi
ffmpeg -i input.avi -r 24 output.avi
ffmpeg -r 1 -i input.avi -r 24 output.avi
Biçim seçeneği ham girdi dosyaları için gerekli olabilir. Öntanımlı olarak, FFmpeg mümkün olduğunca az kayıplı dönüşüm yapmaya çalışır: çıktılar için girdide belirtilenle aynı ses ve görüntü parametrelerini kullanır.
-L
-h
-version
FFmpeg version SVN-r9116, Copyright (c) 2000-2007 Fabrice Bellard, et al. Compiled with gcc 3.4.6 ffmpeg SVN-r9116 libavutil 3212288 libavcodec 3352580 libavformat 3345409 |
-formats
-f biçim
-i dosyaismi
-y
-t süre
-fs dosyaboyu Dosya boyutunu sınırlar. -ss konum
-itsoffset süre
-title dizge
-timestamp zaman
-author dizge
-copyright dizge
-comment dizge
-album dizge
-track sayı
-year sayı
-v ayrıntı
-target hedef -türü
ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg
ffmpeg -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg
-dframes sayı
-scodec kodek
-newsubtitle
-slang kod
-b bithızı
-vframes sayı
-r sayı
-s boyut
ffmpeg -i kaynak.uzt -lmax 21*QP2LAMBDA hedef.uzt
Sayıları B-kareler olarak kullanın ( MPEG-1, MPEG-2 ve MPEG-4 için desteklenir).
Standartları izlemedeki kararlılık belirtilir.
İç dc hassasiyeti.
Görüntü fourcc/tag 'ı için zorlar.
QP histogramını göster.
Olası bit akımı filtreleri: dump_extra, remove_extra, noise.
-aframes number
Kayıt edilecek ses karelerinin sayısını ayarla.
-ar freq
ses örnekleme frekansını ayarla (ön tanımlı = 44100 Hz).
-ab bitrate
ses bitrate'ini kbit/s olarak ayarla (ön tanımlı = 64).
-ac channels'
Ses kanalı sayısnı ayarla (ön tanımlı = 1).
-an
Ses kayıtını engelle.
-acodec codec
Ses kodekini kodek'e zorla. Özel değer kopyala özelliğini kullanarak ham kodek verilerinin olduğu gibi kopyalanmasını sağlayın.
-newaudio
Çıktı dosyasına yeni ses dosyası ekleyin. Eğer parametreleri belirlemek istiyorsanız, -newaudio (-acodec, -ab, etc..)den önce yapın. Çıktı sayısı girdi dosya sayısına eşitse haritalama otomatik olarak yapılır, değilse ilk eşleşen alınır. -map ile Haritalamanın üstüne yazabirsiniz. Örneğin:
ffmpeg -i file.mpg -vcodec copy -acodec ac3 -ab 384 test.mpg -acodec mp2 -ab 192 -newaudio
-alang code
şimdiki ses akışının ISO 639 dil kodunu ayarla.
-atag fourcc/tag
Sesi tag/fourcc'ye zorla.
-absf bitstream filter
Mümkün olan Bitstream filitreleri "dump_extra", "remove_extra", "noise", "mp3comp", "mp3decomp".
-scodec codec
Alt yazı kodekini zorla (akışı kopyalamak için 'copy').
-newsubtitle
Şuanki çıkıtı akışına yeni bir alt yazı akışı ekle.
-slang code
şimdiki ses akışının ISO 639 dil kodunu ayarla.
-vc channel
video yakalama kanalını ayarla (sadece DV1394).
-tvstd standard
Televizyon standartını ayarla (NTSC, PAL (SECAM).
-isync
girişte senkronizasyonu oku.
-map input stream id[:girdi akışı id'si]
Akış haritalanmasını girdi dosyasından çıktı dosyasına yap. Girdi akışlarını çıktıda istediğiniz sıra ile sıralayın . sync'ye karşı [girdi akışı id'si] girdi akışını ayarlar.
-map_meta_data outfile:infile
giriş dosyasından çıkış dosyasın meta veri bilgilerini ayarlar.
-debug
Özel debug bilgisini yazdır.
-benchmark
benchmarking için süreleri ekle.
-dump
Her girdi paketini dump et.
-hex
Paketleri dump ederken, ayrıca pay loadıda dump et.
-bitexact
Sadece tam bit algoritmelarını kullan (kodek testi için).
-ps size
Paket boyutu bit olarak.
-re
Yerel kare hızında girdiyi oku. genelde yakalama sihazını taklit etmek için kullanılır.
-loop_input
Girdi dosyasını tekrar et. şimdilik sadece görüntü akışları ile çalışır. Otomatik ffserver testi için kullanılır bu seçenek.
-loop_output number_of_times
Canlandırılmış gif gibi desteklenen biçinlerde sürekli çıktıyı tekrar et (0 sozsuza dek çıktıyı tekrar eder.)
-threads count
Başlık sayar.
-vsync parameter
Video sync metodu. zaman etiketleri ile eşleşmesi için video uzatır/sıkıştırılır. bu kareleri çoğaltarak yada azaltarak yapılır. -map ile hangi akışın zaman etiketlerinin alınacagını belirleyebilirsin. video veya sesi değiştirmeden veya kalan akışları değiştirilmemişle senkronize edebilirsiniz.
-async samples_per_second
Ses senkronizasyon metodu. aman etiketleri ile eşleşmesi için ses akışı uzatır/sıkıştırılır, parametre değiştirilen dosyada saniyedeki en fazla örnek sayısıdır. -async 1 özel bir durumdur ses akışını başlatılmasını düzeltir sonrasını deiştirmez.
Metinde geçen terimlerin tanımları
Bitrate: sıkça video ve ses kalitesi hakkında kullanılır - bir saniyelik ses veya videonun ne kadar fiziksel boşluk kapladığını bit(byte değil) olarak tanımlar. örneğin 3 dakikalık 128kbit/sec CBR bitrate MP3 ses dosyası 2.81 megabyte fiziksel boşluk kaplar (1,024x128/1,024/1,024x180/8)
B kare: (bi-directional frame kısaltması) Çift yönlü kare, MPEG standartı tarafından kullanılan bir sıkıştırma tipidir . Not: bir b kare içeriğini sadece bir önceki kareden değişen veriden veya bir sonraki kareden farkı veri olarak alınır. B kare oluşturmak I veya P kare oluşturmaktan daha fazla bilgisayar gücü gerektirir. B kare kullanımı 200:1 sıkıştırma oranına ulaşılmasını sağlar.
P kare: (predictive frame kısaltması) Tahmin edilebilir kare, MPEG standartı tarafından kullanılan bir sıkıştırma tipidir. P kareler I-kareleri izler ve sadece önceki I-karenin(renk ve içerik değişimleri gibi) değişen verilerini içerir. bu nedenler P-kareler veri içeriğini çoğunu doldurmak için I-karelere bağımlıdırlar.
I kare: (intraframe kısaltması) İç kare, PEG standartı tarafından kullanılan bir sıkıştırma tipidir. anahtar kare (keyframe) olarakda adlandırılır, tipik olarak sıkıştırılmış bir videoda I-kareler P-kareler ve B-kareler arasına serpiştirilir. Çok I-kare bulunan videolar daha kalitelidir ancak I-kareler çok bit içeririr ve çok yer kaplar.
ALGO: ALGO bir cebirsel programla dilidir. (1959–1961)de Bendix G-15 bilgisayarı için geliştirilmiştir.
Macroblock: Bir resim grubudur genelde 4lüdür(başatan başa 16 x 16 piksel), MPEG kodlaması esnasında analiz edilir ve kareler arasında resimde hareket eden cisimlerin tahmini yapar. Bu çözümlenen resimlerin içine makrobloklar yerleştirerek hareket vektörleri oluşturur.
Dump: Döküm
Çağatay Oltulu
belgeler.gen.tr'nin yol göstericiliği ve yardımları için teşekkür ederim.
Orijinal kaynak sayfa: http://ffmpeg.mplayerhq.hu/ffmpeg-doc.html
kaynak: belgeler.gen.tr (bire bir orijinal kaynağın tercümesidir)
bu wikide ise pratik uygulama örnekleri ekleyerek kılavuzu daha kullanışlı hale getirelim