Bu soruya önerilen diğer cevapların çoğunu test ettim. Test verisi sonuçları aşağıdadır. Bunlar test ettiğim önerilen cevaplar:
(BR) Aşağıdakileri kullanarak bit hızını değiştirin:
ffmpeg -i $infile -b $bitrate $newoutfile
(CR) Aşağıdakileri kullanarak Sabit Oran Faktörü'nü değiştirin:
ffmpeg -i $infile -vcodec libx264 -crf 23 $outfile
(SZ) Video ekran boyutunu değiştirin (örneğin piksel boyutunun yarısı kadar):
ffmpeg -i $infile -vf "scale=iw/2:ih/2" $outfile
(BL) Kullanarak H.264 profilini "taban çizgisi" olarak değiştirin:
ffmpeg -i $infile -profile:v baseline $outfile
(DF) Aşağıdakileri kullanarak, varsayılan ffmpeg işlemini kullanın:
ffmpeg -i $infile $outfile
VERİ
- "boyut" - dönüştürülen videonun orijinaline göre yüzde piksel boyutu.
- "bitrate" - orijinal ve dönüştürülmüş videoların bit hızı.
- "tanım" - videoların piksel boyutu.
- "convert" - videoyu saniye cinsinden dönüştürme zamanı.
Önerilen yöntemi kullanarak (BL) için hedef bit hızını hesapladım.
=== Dosya A - Düğüm Açısal-Fnbixa7Ts6M.mkv ===
original BR CR SZ BL DF
-------- --- -- -- -- --
size 64152 kb 214% 76% 40% 83% 76%
bitrate 411 kb/s 883 313 165 342 313
definition 1920x1080 1920x1080 1920x1080 960x540 1920x1080 1920x1080
convert -- 648 509 225 427 510
=== B Dosyası - GraphQL'i Açısal Olarak Kullanma _ By - Lee Costello-OGyFxqt5INw.mkv ===
original BR CR SZ BL DF
-------- --- -- -- -- --
size 410301 kb 33% 109% 28% 143% 109%
bitrate 2687 kb/s 880 2920 764 3843 2920
definition 3840x2160 3840x2160 3840x2160 1920x1080 3840x2160 3840x2160
convert -- 2307 3188 1116 2646 3278
SONUÇLAR
(SZ) yöntemi kesinlikle en hızlı yöntemdir. 2X - 4X daha hızlıydı. Diğer tüm yöntemlerin dönüştürülmesi, videonun gerçek uzunluğundan daha uzun sürdüğü için bu, yüksek çözünürlüklü videolarda çok fazla bir sorun olabilir! Örneğin, (CR) yöntemi 21 dakikalık videoyu dönüştürmek için 53 dakika sürdü.
Videonun tanımı, görüntülenecek olan ekran tanımından daha büyükse, (SZ) yöntemi kesinlikle en iyi yöntemdir. Örneğin, telefonunuz yalnızca 1080p görüntü gösterebiliyorsa, 3840x2160 video göndermek çok israf olur. Boyutunun yarısını 1080p'ye çıkarmak en iyisidir.
Önerilen cevapların bazıları aslında bazı videoların boyutunu artırdı. Örneğin, (BR) yöntemi, 1080p numunesinin boyutunu iki katına çıkardı. Ancak 2160p boyutunu üçte bir yaptı. Yüksek çözünürlüklü örnek için, (CR), (BL) ve (DF) yöntemlerinin tümü videonun boyutunu ARTTIRIR.
Doğru (veya en iyi) Cevap
İlk önce çözünürlüğü hedef ekranınız tarafından desteklenen maksimum değere düşürmek daima en iyisidir.
Dosya boyutunu daha da küçültmek istiyorsanız, kişisel tercihlere bağlı olacaktır. Bilgi içeriğini azaltabilir veya sıkıştırmayı artırabilirsiniz.
Bu sizi ilgilendiren bir şey değilse, çözünürlüğü daha da azaltabilirsiniz.
Videoda hızlı hareket sahneleri bulunmuyorsa, kare hızını azaltmak isteyebilirsiniz.
Güçlü bir işlemciniz varsa ve alan tek sorunsa, sıkıştırma oranını artırabilirsiniz.
Bit hızı, çoklu faktörlerin bir kombinasyonudur. Bu yüzden sadece ffmpeg'e bit hızını düşürmesini söylemek, istediğiniz sonuçları vermeyebilir.
Bilgi içeriğini azaltmanın bir başka yolu da renk derinliğini düşürmektir. Bunun nasıl yapılacağı henüz tartışılmadı.
ffmpeg
man sayfası-fs
çıktı boyutunu sınırlamak için bir seçenek gösterir ,ffmpeg -i in.avi -fs 100M out.avi
iş gibi bir şey yapar ?