Bir videoyu FFmpeg ile küçültmek için nasıl yeniden boyutlandırılır


101

FFmpeg ile daha küçük hale getirmek için videolarımı yeniden boyutlandırmak mümkün mü?

1024x576 boyutunda orijinal bir video boyutum var, şimdi videoyu 720x480 olarak yeniden boyutlandırmak istiyorum.

Bunu nasıl yapabilirim?


ffmpegkullanımdan kaldırılmış olabilir, burada ve burada
natty hakkında delice

13
@nuttyaboutnatty 15.04'te geri dönen ffmpegFFmpeg'den değil ffmpeg, yalnızca eski, ölü, sahte " " Libav çatalından uygulanan "kullanımdan kaldırılmış" mesajlar .
llogan

Yanıtlar:


163

En temel örnek şudur:

ffmpeg -i input.avi -s 720x480 -c:a copy output.mkv

Kullanılması filtreyi daha fazla esneklik sağlayacaktır:scale

ffmpeg -i input.avi -filter:v scale=720:-1 -c:a copy output.mkv

En -1boy oranını korumak için ffmpeg'e verilen genişliğe göre doğru yüksekliği otomatik olarak seçmesini söyleyecektir. -1Belirli bir yükseklik sağlarsanız genişlik için de kullanılabilir.


Ölçek kullanmanın Tek dezavantajı libx264bu kodlayıcı bile değerlerini gerektirmekte ve ölçek otomatik olarak bir hata sonucu garip bir değer seçme imkanına sahip olmasıdır: width or height not divisible by 2. Verilen bir yükseklik için eşit bir değer seçmesini söyleyebilirsiniz (bu örnekte 720):

scale="trunc(oh*a/2)*2:720"

... veya verilen genişlik (bu örnekte 1280):

scale="1280:trunc(ow/a/2)*2"

Ffmpeg derlemenizin tanımadığı -cveya -filterseçenek bulunmadığından şikayetçi olabileceğini unutmayın . Ayrıca desteklemeyebilir scale. Bu durumda, statik bir yapı olarak indirebileceğiniz veya kendinizi derleyebileceğiniz daha yeni bir ffmpeg kullanmalısınız .


1
Denedim ffmpeg -i output.mkv -filter:v scale=720:-1 -acodec copy -threads 12 output_shrink.mkv(ffmpeg sürüm 0.8.6-6: 0.8.6-0ubuntu0.12.10.1) ama hatayı aldımUnrecognized option 'filter:v'
doug65536

6
Ffmpeg için man sayfasını birkaç kez kazdıktan sonra, bunun yerine -filter:vseçeneğin değiştirildiği anlaşılıyor -vf.
doug65536

2
@ doug65536 -filter:vve -vfikisi de iyi. Kullanmakta olduğunuz Ubuntu sürümü bozuk ve modası geçmiş - aslında ffmpegFFmpeg'ler değil, aynı adı taşıyan Libav (FFmpeg çatal) tarafından sağlanan ikili dosya.
slhck

1
@MightyPork muhtemelen ffmpeg yapınız modası geçmiş - ne gibi sorunlar oluyor? Neyse, bu gerçekten bana ffmpeg version 2.4.10biraz yer açmak için bazı büyük videoların boyutunu azaltmak için (birlikte ) yardımcı oldu - teşekkürler!
Wilf

4
'-c', -codec'in kısaltmasıdır; ': a', ses akışlarını belirtir, 'kopya', akışları (bu durumda ses) yeniden kodlamadan kopyalayan kopya kod çözücüsünü belirtir. Temel olarak ses akışları geçecektir. Bu, yalnızca video akışını değiştirirken yaygındır.
jimhark

14

Videolar ve görüntüler için yeniden ölçeklendirme yapmak için aşağıdaki komutları kullanıyorum. Sabit genişlik ve yükseklik için -

ffmpeg -i input.avi -vf scale="720:480" output.avi

ve en boy oranını korumak istiyorsanız, sadece -1 olarak yükseklik verin ve genişliğe bağlı olarak otomatik olarak yeniden boyutlandırılır -

ffmpeg -i input.avi -vf scale="720:-1" output.avi

Girdi ölçüsüne göre ölçeklendirmek istiyorsanız Ör. Diyelim ki yapabileceğiniz yarının genişliğini / yüksekliğini azaltın.

ffmpeg -i input.avi -vf scale="iw/1:ih/2" output.avi

NOT :

iw : input width
ih : input height

Statik yapı - https://johnvansickle.com/ffmpeg/ adresinden indirilebilir.

Belgeler: https://ffmpeg.org/ffmpeg.html#filter_005foption


Çalışmıyor. Handler_name Stuck: Ses Sapı
Rushi M Thakker

Bu komutla korkunç bir video kalitesi elde ettim. Output.mp4'ü yarattığımda çok daha iyi, avi değil. Bu yüzden uzatma önemlidir.
sekrett
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.