Linux

FFmpeg: Örneklerle Videolar Nasıl Kırpılır

Bu makalede, videoların nasıl kırpılacağı açıklanmaktadır FFmpeg (örneklerle) komut satırından. Özellikle birden fazla videoyu toplu olarak kırpmak için kullanışlıdır, ancak bazıları (ben dahil) bazı video kırpmaları yapmak için bunu tam teşekküllü bir video düzenleyicisine tercih edebilir. Makale ayrıca tam olarak neyin kırpıldığını gösteren ekran görüntüleri de içerir.

FFmpeg kırpma filtresini uygulamayı örneklendirmek için, her karenin 100×100 piksel boyutuna sahip olduğu bu 500×300 resmi kullanıyorum:

FFmpeg kırpma filtresi test görüntüsü

Her örnek komut için, görüntü bu örnekteki gerçek FFmpeg kırpma komutu kullanılarak kırpılır, böylece onu kullanırken tam olarak ne olduğunu görebilirsiniz. Bu mümkündür çünkü aynı komutlar kırpmak için de kullanılabilir.

Bu komutları kullanabilmek için FFmpeg'e sahip olmanız gerekir sisteminize yüklendi. FFmpeg video, ses ve diğer multimedya dosyalarını ve akışları işlemek için çeşitli kütüphanelerden ve programlardan oluşan ücretsiz ve açık kaynaklı bir projedir. Özünde, kod dönüştürme, temel düzenleme, video ölçeklendirme ve post prodüksiyon efektleri için kullanılabilen FFmpeg komut satırı programı vardır.

FFmpeg kırpma filtresi kullanımı

Temel bilgilerle başlayalım. Videonun bir bölümünü FFmpeg kullanarak kırpmak için komut şöyle görünür:

ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4

Bütün bunların anlamı:

  • -i input.mp4 giriş videosunu belirtir (input.mp4 bu durumda giriş / orijinal video olması)
  • -filter:v (olarak kısaltılabilir -vf) video filtresi kullandığımızı belirtir
  • "crop=W:H:X:Y" “kırpma” video filtresini 4 değerle kullandığımız anlamına gelir:
    • w çıkış videonun genişliği (böylece kırpılan bölgenin genişliği), varsayılan olarak giriş video genişliğini (giriş video genişliği = iwile aynı in_w); out_w yerine kullanılabilir w
    • h çıkış video yüksekliğini (kırpılan bölgenin yüksekliği), varsayılan olarak giriş video yüksekliğini (giriş video yüksekliği = ih, ile in_h aynı şey için başka bir gösterim olması); out_h yerine kullanılabilir h
    • x soldan başlayarak kırpmaya başlanacağı yerden yatay konum (mutlak sol kenar boşluğu 0)
    • y videonun üstünden başlayarak kırpmaya başlanacağı yerden dikey konum (mutlak üst kısım 0)
  • output.mp4 yeni, kırpılmış video dosyası

Birkaç not:

  • Filtre, kırpmayı otomatik olarak ortalar x ve y atlandı, yani x varsayılan olarak (iw-w)/2, ve y için (ih-h)/2
  • Ayrıca isteğe bağlı keep_aspect ayarlayabileceğiniz seçenek 1 çıktı ekran en boy oranını girişle aynı olmaya zorlamak için (örnek kullanım: "crop=100:100:0:0:keep_aspect=1"). Bu resimlerle çalışmaz, bu yüzden burada ekran görüntüsü ile ayrı bir örnek görmüyorsunuz
  • FFmpeg orijinal giriş video genişliğini (iw) ve yükseklik (ih) değerleri otomatik olarak değiştirdiğinden, bu değerleri (ör. iw/2 giriş video genişliğinin yarısı için veya ih-100 çıkarmak için 100 giriş video yüksekliğinden pikseller).

Bu biraz karmaşık gelebilir, ancak örneklerde çok fazla durum olmadığını göreceksiniz (ancak elbette, neyi başarmak istediğinize bağlıdır).

Yapabilirsin video kırpma önizleme (oynatma) ile tekrar kodlamasını beklemeden ffplay (kırpma bölgesinin doğru olup olmadığını hızlıca görmek için yararlıdır), şöyle:

ffplay -filter:v "crop=w:h:x:y" input.mp4

Bu, input.mp4 ve hiçbir şekilde yeni bir video oluşturmaz. Sadece önizleme / oynatma amaçlıdır.

FFmpeg video kırpma örnekleri

Merkezden 100 piksellik bir kareyi kırpacağımız temel bir FFmpeg kırpma örneğine bakalım.

Bir kareyi kırpmak için 100 piksel (bu nedenle kırpılan bölgenin genişliği ve yüksekliği 100 pikseldir) merkezden nın-nin input.mp4 video, yalnızca giriş alanı boyutunu belirtebilirsiniz 100x100 (FFmpeg kırpma filtresi varsayılan olarak merkeze x ve y değerler belirtilmez), bunun gibi:

ffmpeg -i input.mp4 -filter:v "crop=100:100" output.mp4


FFmpeg kırpma örneği: videonun sol üst kısmından 100×100 boyutunda bir bölümü kırpın.

Bölümünü kesmek için 100x100 pikselleri sol üst köşeden (yani x ve y Hangi 0) bir video için şunu kullanın:

ffmpeg -i input.mp4 -filter:v "crop=100:100:0:0" output.mp4

FFmpeg kırpma örneği: bir videonun 100×100 piksel sağ üst bölümünü kırpın.

Giriş video genişliğini kullanacağımız örnek (iw) sağ üst kırpmak için 100x100 videonun piksel bölümü. Manuel olarak girmek yerine x kullanacağımız değer iw ve 100 piksel çıkartın:

ffmpeg -i input.mp4 -filter:v "crop=100:100:iw-100:0" output.mp4

FFmpeg kırpma örneği: bir dikdörtgeni kırpın 100x200 pozisyondaki pikseller 0,100.

Dikdörtgeni kırpmak için FFmpeg kırpma video filtresini kullanmak için 100x200 pozisyondaki pikseller 0,100:

ffmpeg -i input.mp4 -filter:v "crop=200:100:300:100" output.mp4

İlgili: FFmpeg: Orijinal Formattaki Videodan Ses Çıkarın veya MP3 Veya Ogg Vorbis'e Dönüştürün

Birkaç daha gelişmiş örnek:

Bir kırp 16:9 videoya 4:3 en boy oranı, kenarları keserek (kaynak; bu görüntülerle çalışmaz, bu yüzden örneklemek için hiçbir ekran görüntüsü yoktur, ancak yine de ne yaptığı açık olmalıdır):

ffmpeg -i input.mp4 -filter:v "crop=ih/3*4:ih"

Giriş videosunun sağ üstünden başlayarak% 50 genişlik ve yükseklik kırpın.

ekin 50% video genişliği ve 50% giriş yüksekliğinin sağ üstünden başlayarak video yüksekliğinin (yani çıkış videosunun giriş videosunun çeyreği -% 25 – olacağı anlamına gelir):

ffmpeg -i input.mp4 -filter:v "crop=iw*(5/10):ih*(5/10):iw:0" output.mp4

Bu durumda giriş genişliğini (iw) olarak x koordinat (sağdan kırpmaya başlamak için) ve 0 olarak y koordinat (üstten başlamak için).

Bunları da beğenebilirsiniz: Bir YouTube Oynatma Listesi Nasıl İndirilir ve youtube-dl (Komut Satırı) Kullanılarak MP3'e Dönüştürülür

Videodan pikselleri sol ve / veya sağ veya üst ve alt kenarlıklardan kırpmak için FFmpeg kullanma

Bir videonun kenarlıklarını FFmpeg (üst, alt, sol ve sağ kenarlıklar) kullanarak kırpmak için şunu kullanın:

ffmpeg -i input.mp4 filter:v "crop=iw-n:ih-n" output.mp4

Bu komutta zaten biliyorsunuz ki iw giriş videosunun genişliğini temsil eder ve ih giriş videosunun yüksekliği (piksel olarak); gelince n ve m:

  • n kırpılacak piksel sayısıdır iw (giriş video genişliği)
  • m kırpılacak piksel sayısıdır ih (giriş video yüksekliği)

Misal.

Kırpmak için 200 giriş video yüksekliğinden pikseller (ih), kırpma anlamına gelir 100 üstten piksel ve 100 alttan pikseller ve kırpma 100 giriş video genişliğinden pikseller (iw), kırpma anlamına gelir 50 pikseller soldan ve 50 piksel sağdan:

ffmpeg -i input.mp4 filter:v "crop=iw-100:ih-200" output.mp4

Giriş video genişliğini ve yüksekliğini biliyorsanız / belirtebiliyorsanız (500x300 bu örnekte), yukarıdaki komut ayrıca şu şekilde de yazılabilir:

ffmpeg -i input.mp4 filter:v "crop=500-100:300-200" output.mp4

Bu da aynı:

ffmpeg -i input.mp4 filter:v "crop=400:100" output.mp4

Yalnızca sol ve sağ kenarlıkları kırpmak için (100 pikseller soldan ve 100 piksel sağdan, yani 200 toplam piksel) FFmpeg kullanarak:

ffmpeg -i input.mp4 filter:v "crop=iw-200" output.mp4

Veya yalnızca üst ve alt kenarlıkları kırpmak için (100 üstten piksel ve 100 pikselleri alttan), FFmpeg kullanarak:

ffmpeg -i input.mp4 filter:v "crop=iw:ih-200" output.mp4

Daha Fazla Göster
Kapalı