Haberler

:::::  YENİ  :::::
ARCHKUR

ffmpeg

hsngrms · 3610

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı hsngrms

    • İleti: 1.707
: 12 Ocak 2013 - 20:33:16
ffmpeg Linux için vazgeçilmez bir multimedya yazılımıdır.

Windows'taki zilyon tane yazılıma tek başına alternatif olacak kadar kalitelidir.



Şuan ffmpeg ile masaüstü görüntüsünü kaydetme üzerine yoğunlaşacağız. (Masaüstümüzün videosunu çekeceğiz.)



Grafiksel araç kullanmayacağız, yani ffmpeg'i komut satırından idare edeceğiz. Bunun için haklı sebeplerimiz var.

 1. Kaydımız, ekran çözünürlüğünüz neyse o kalitede olacak. (Farklı çözünürlükte de olabiliyor elbette.)

    Yani videoyu paylaştıklarınız izlerken siz ne görüyorsanız aynısını görecekler.

    (NOT: YouTube gibi video paylaşım siteleri flash formatına dönüştürürken kaliteyi düşürüyorlar.)

 2. Müthiş kaliteli görüntüye rağmen videonun boyutu çok küçük olacak.

    YouTube'a yüklediğinizi varsayalım;

    240p formatındaki boyutu bile orjinal videomuzdan daha yüksek boyutta olacaktır. :)

    Mesela 1366x768 çözünürlükte 30 fps videonun 21 saniyesi sadece 766 kb.



Eksi yönlerinden bahsedecek olursak, kayıt yaparken ara verememek ve sesi ffmpeg ile kayıt edememektir.

Ancak az olan bu eksi yönlerini de yine ffmpeg'in çok işlevli olması sayesinde kapattığını söyleyebiliriz.

Mesela videoya sonradan ses gömebilirsiniz, ffmpeg yardımı ile yapılabilir.

(Ses gömmek bence senkron kayıt almaktan çok iyi bir yöntem, videoyu izleyerek yorumlamak daha akıcı olacaktır.)

Keza ara verememek dezavantaj gibi görünsede durdurup yeni kayıt almak ve bunları ffmpeg ile birleştirmek mümkün.



http://ffmpeg.org/ffmpeg-logo.png" alt="" class="bbc_img" />



İcraate gelecek olursak. Öncelikle kayıt almak için vereceğimiz komutu öğrenmekle başlayalım.  
Kod: [Seç]
ffmpeg -f x11grab -s 1366x768 -i :0.0 kayit.mp4

1366x768 benim ekran çözünürlüğüm. Eğer sizin ekranınız farklı bir çözünürlüğe sahip ise onu yazın.

kayit.mp4 kaydedeceğimiz videonun adı, bu şekilde yazdığımızda ev dizinine kaydedilir. En uygun format mp4'tür.



Yukarıdaki komutu girer girmez kayıt başlar, uçbirimdeki çıktısı biraz karmaşıktır buna fazla takılmayınız.

Kaydı sonlandırmak için uçbirimi kapatmak veya CTRL + C kombinasyonu ile komutu iptal etmek gerekir.

CTRL + C kombinasyonu komutu iptal eder fakat videoya zararı yoktur bozulmaya sebep olmaz, sadece kaydı durdurur.



Ses gömmeyi aşağıdaki komut ile yapabilirsiniz.
Kod: [Seç]
ffmpeg -i kayit.mp4 -i ses.mp3 -vcodec copy sesli-kayit.mp4

seslikayit.mp4 dosyamız da ev dizininde oluşacaktır, bu nedenle girdi ile çıktının aynı ismi taşımaması önemli.

Dikkat etmeniz gereken bir nokta; ses ve videonun eşit veya yakın uzunlukta olmasıdır.

Eşit uzunlukta olmadıkları zaman en uzunu hangisi ise video o süreye kadar devam eder.



Video birleştirmeyi aşağıdaki komut ile yapabilirsiniz.
Kod: [Seç]
ffmpeg -i kayit1.mp4 -i kayit2.mp4 -vcodec copy -acodec copy kayit-full.mp4

kayit-full.mp4 dosyamız da ev dizininde oluşacaktır, bu nedenle girdilerden biri ile aynı ismi taşımaması önemli.



ffmpeg gördüğünüz gibi gerçekten çok işlevli bir araçtır, multimedya dönüşümü için de kullanılmaktadır.

Multimedya dönüşümleri bu konunun dışında olduğu için belki sonraki yazılarda diyerek açık kapı bırakıyorum.
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »



Çevrimdışı odyssey

    • İleti: 54
Yanıtla #1 : 13 Ocak 2013 - 08:35:51
Ben denedim ama olmadı

Kayıt başladı ama bittikten sonra oluşan dosya 3 mb oldu ve hiç bir media oynatıcı göstermedi

3 dakika kayıt yaptım oluşan dosya boyutu 3 mb oldu

Komutu ise kendi ekran çözünürlüğüme göre yani 1440x900 olarak düzenlemiştim
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

İmza mimza yoh :P


Çevrimdışı GNU

    • İleti: 104
Yanıtla #2 : 13 Ocak 2013 - 11:17:57
Ben komutu olduğu gibi çalıştırdım sonuç odyssey'nin dediği ile aynı oldu ancak
Kod: [Seç]
ffmpeg -f x11grab -s `xdpyinfo | grep 'dimensions:'|awk '{print $2}'` -r 25 -i :0.0 -sameq kayit.mkv

komutu ile denediğimde ise kayıt tamamlandı ve VLC Player sorunsuz gösterdi.
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »



Çevrimdışı odyssey

    • İleti: 54
Yanıtla #3 : 13 Ocak 2013 - 12:57:17
@korokos

Senin dediğinide denedim ama sonuç yine aynı oldu maalesef



Bu kez önceki komutla .avi olarak denedim

Oldu ama görüntü kalitesi çok kötü oldu neredeyse 240 px

Anlaşılan beni yine gtk-recordmydesktop paklayacak :D
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

İmza mimza yoh :P


Çevrimdışı hsngrms

    • İleti: 1.707
Yanıtla #4 : 13 Ocak 2013 - 18:13:14
Örnek video az önce kaydettim: http://http://yadi.sk/d/EJl7z9W-1ppez

Verdiğim komutla başlatıp, CTRL+C ile durdurduğum kayıt medya oynatıcılarda sorunsuz oynamakta.



@odyssey çözünürlük hariç her şeyi birebir aynı uyguladın mı?
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »



Çevrimdışı odyssey

    • İleti: 54
Yanıtla #5 : 13 Ocak 2013 - 18:51:03
@hsngrms

Evet

Aynen uyguladım ama olmadı

Kısmet değil demekki :)
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

İmza mimza yoh :P


Çevrimdışı hsngrms

    • İleti: 1.707
Yanıtla #6 : 13 Ocak 2013 - 19:39:01
Örnekte olduğu gibi bir çıktısını alabilir miyim?
Kod: [Seç]
[hasan@arrow>~]$ ffmpeg -f x11grab -s 1366x768 -i :0.0 kayit.mp4
ffmpeg version 1.0.1 Copyright (c) 2000-2012 the FFmpeg developers
  built on Dec  7 2012 18:16:36 with gcc 4.7.2 (GCC)
  configuration: --prefix=/usr --enable-libmp3lame --enable-libvorbis --enable-libxvid --enable-libx264 --enable-libvpx --enable-libtheora --enable-libgsm --enable-libspeex --enable-postproc --enable-shared --enable-x11grab --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libschroedinger --enable-libopenjpeg --enable-librtmp --enable-libpulse --enable-libv4l2 --enable-gpl --enable-version3 --enable-runtime-cpudetect --disable-debug --disable-static
  libavutil      51. 73.101 / 51. 73.101
  libavcodec     54. 59.100 / 54. 59.100
  libavformat    54. 29.104 / 54. 29.104
  libavdevice    54.  2.101 / 54.  2.101
  libavfilter     3. 17.100 /  3. 17.100
  libswscale      2.  1.101 /  2.  1.101
  libswresample   0. 15.100 /  0. 15.100
  libpostproc    52.  0.100 / 52.  0.100
[x11grab @ 0x1a10340] device: :0.0 -> display: :0.0 x: 0 y: 0 width: 1366 height: 768
[x11grab @ 0x1a10340] shared memory extension found
[x11grab @ 0x1a10340] Estimating duration from bitrate, this may be inaccurate
Input #0, x11grab, from ':0.0':
  Duration: N/A, start: 1358098581.137447, bitrate: 1006118 kb/s
    Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1366x768, 1006118 kb/s, 29.97 tbr, 1000k tbn, 29.97 tbc                                                    
File 'kayit.mp4' already exists. Overwrite ? [y/N] Y                                                                                                                    
using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX                                                                                                      
[libx264 @ 0x1a21620] profile High 4:4:4 Predictive, level 3.2, 4:4:4 8-bit                                                                                            
[libx264 @ 0x1a21620] 264 - core 128 - H.264/MPEG-4 AVC codec - Copyleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=4 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'kayit.mp4':
  Metadata:
    encoder         : Lavf54.29.104
    Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv444p, 1366x768, q=-1--1, 30k tbn, 29.97 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo -> libx264)
Press [q] to stop, [?] for help
frame=  114 fps= 41 q=32766.0 Lsize=     292kB time=00:00:03.73 bitrate= 640.3kbits/s dup=92 drop=10    
video:290kB audio:0kB subtitle:0 global headers:0kB muxing overhead 0.723718%
[libx264 @ 0x1a21620] frame I:1     Avg QP:20.89  size: 84348
[libx264 @ 0x1a21620] frame P:31    Avg QP:19.46  size:  6529
[libx264 @ 0x1a21620] frame B:82    Avg QP:28.66  size:   116
[libx264 @ 0x1a21620] consecutive B-frames:  3.5%  1.8%  0.0% 94.7%
[libx264 @ 0x1a21620] mb I  I16..4: 61.2%  6.5% 32.2%
[libx264 @ 0x1a21620] mb P  I16..4:  0.3%  0.1%  1.7%  P16..4:  1.0%  0.1%  0.1%  0.0%  0.0%    skip:96.6%
[libx264 @ 0x1a21620] mb B  I16..4:  0.1%  0.4%  0.0%  B16..8:  1.1%  0.0%  0.0%  direct: 0.0%  skip:98.4%  L0:48.0% L1:52.0% BI: 0.0%
[libx264 @ 0x1a21620] 8x8 transform intra:19.0% inter:30.8%
[libx264 @ 0x1a21620] coded y,u,v intra: 34.8% 4.6% 5.0% inter: 0.1% 0.0% 0.0%
[libx264 @ 0x1a21620] i16 v,h,dc,p: 68% 30%  2%  0%
[libx264 @ 0x1a21620] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu:  4% 11% 80%  1%  0%  1%  1%  0%  2%
[libx264 @ 0x1a21620] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 36% 15%  3%  2%  3%  3%  4%  4%
[libx264 @ 0x1a21620] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x1a21620] ref P L0: 71.0%  8.4% 18.2%  2.3%
[libx264 @ 0x1a21620] ref B L0: 48.9% 49.2%  1.9%
[libx264 @ 0x1a21620] ref B L1: 93.7%  6.3%
[libx264 @ 0x1a21620] kb/s:623.01
Received signal 2: terminating.
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »