Gerçekten FFmpeg 1.0 ile çalışan hile sayfaları ve hazır ayarları?


28

Başka bir yerde mevcut olan bir çok 'hile sayfası' denedim ancak neredeyse hepsi güncel değil ve FFMpeg'in en son sürümüyle çalışmayacak.

Herhangi biri beni en son FFMpeg ile çalışacak ayarlara işaret edebilir mi?

Öncelikle aşağıdaki codec ile ilgileniyorum

H.264, düşük orta ve kaliteli ön ayarlar

Hem de

ProRes, düşük orta ve yüksek kalitede ön ayar

Yanıtlar:


49

FFmpeg artık libx264 için metin dosyası tabanlı ön ayarları ve profilleri içermiyor, yani -vpreseçeneğiyle ne kullandınız ? Bunlar, profiller (ve melodileri) ile fiili x264 hazır ayarları erişen lehine amorti ve kaldırılmış -preset, -profile:vve -tuneseçenekler. Eski metin dosyaları yalnızca resmi x264 ön ayarları ve profillerini taklit etti ve bazı sınırlamalar nedeniyle yeni sistemin sağladığı tam işlevsellik sunamadı. Ayrıca bakımı çok daha kolaydır.

Ek olarak, birçok kodlayıcı kendi ayrı seçeneklerine sahiptir; "özel seçenekler" olarak da bilinir. FFmpeg çevrimiçi belgelerinde ortak kod çözücüler için ses ve video kodlayıcı seçeneklerine bakmanız veya ffmpeg -h fulldesteklenen seçeneklerin tam bir listesi için çıktısını kontrol etmeniz gerekir . Örneğin, x264, seçeneklerinin libx264 AVOptionstamamını yardım çıktısının altında listeler .

Ffmpeg'iniz destekliyorsa, -presetherhangi bir metin dosyası ön ayarı kullanılmamalıdır ve FFmpeg artık standart olmayan iPod ön ayarlarından başka bir şeyle birlikte gelmez. Metin hazır ayarlarının herhangi bir yerden kolayca kopyalanabildiği ve herhangi bir ffmpeg ile kullanılabileceği yaygın bir yanılgıdır. Bu doğru değildir ve kırılmaya neden olur.


Temel olarak, hazır ayarlar aşağıdakileri yapmanızı sağlar:

Kontrol kalitesi

Kalite -b:v(video için) veya -b:a(ses için ) aracılığıyla bir bit hızı belirterek veya kod çözücünün destekleyebileceği başka bir kodlama yöntemini belirleyerek kontrol edilir.

X264 için, Sabit Hız Faktörü yöntemi en gelişmiş olan çeşitli kodlama yöntemleri vardır . Değişken bit hızı ile sonuçlanır, ancak tek bir geçişte genel olarak iyi kalite. CRF değerleri 0 ile 51 arasında değişmektedir, ancak aklı başında kaldığınız değerler kaynağınıza ve istediğiniz kaliteye bağlı olarak 19 ile 26 arasındadır. 23 varsayılandır, bu nedenle örneğin "yüksek kalite" için 18 ve "düşük kalite" için 28 seçebilirsiniz.

ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4

x264'ün başka kodlama yöntemleri de var, ancak bu burada kapsam dışında.

H.264 profilini sınırlama

Bu profiller, kodlayıcının belirli bir kod çözücünün yeteneklerini eşleştirmek için kullanabileceği bir özellik tanımlar. Son FFmpeg'den olarak, profil olabilir bir profil belirtmek için aşağıdaki sözdizimini kullanın baseline, mainya da high:

ffmpeg -i input.mp4 -c:v libx264 -profile:v baseline output.mp4

Daha fazla bilgi için ve hangi profili ne zaman kullanmanız gerektiğini öğrenmek için, bakınız: H.264 Profilleri arasındaki farklar nelerdir?

Bir x264 kodlaması seçin preset

Bu ön ayarlar kodlama hızını etkiler. Daha yavaş bir hazır ayar kullanmak, daha iyi sıkıştırma veya dosya boyutu başına kalite sağlarken, daha hızlı hazır ayarlar daha kötü sıkıştırma sağlar. Genel olarak, sadece bekleyeceğiniz paraya hazır olan ön ayarı kullanmalısınız. Hazır ayarlar olabilir ultrafast, superfast, veryfast, faster, fast, medium(varsayılan), slowve veryslow. İşte bir örnek:

ffmpeg -i input.mp4 -c:v libx264 -preset slow output.mp4

Kayıpsız videoyu kodla

Bu 0 CRF belirterek mümkündür, bu yüzden sadece kullanın -crf 0:

ffmpeg -i input.mp4 -c:v libx264 -crf 0 output.mp4

Sonunda hızlı bir şekilde ProRes hakkında konuşalım. ProRes, ile sabit bir bit hızını kabul eder -b:vveya bit oranlarının profile göre seçildiği, 0 ile 3 arasında bir değer olması gereken profili belirleyebilirsiniz. Yüksek, daha iyi demektir:

ffmpeg -i input.mp4 -c:v prores -profile:v 0 output.mov

Ffmbc Wiki profillerinin isimleri kullanılabileceğini göstermektedir - bu ancak FFmpeg'den 1.0 başarısız olur.


Dönüşüm Başarısızlığı olasılığını azaltmak için ne yapmalıyım, rastgele oluyor, bazen olmuyor
FlyingAtom

@FlyingAtom Henüz "Dönüşüm Başarısız" ı duymadım. Tekrarlanabilir bir problemi olan belirli bir sorunuz varsa, lütfen yeni bir soru sorun: superuser.com/questions/ask
slhck

Peki, eğer sağladığınız her şey olsaydı, neyle etkili bir şekilde sonuçlanırdınız ffmpeg -i input.mp4 -c:v libx264 output.mp4? crf: 23 ve ön ayar: orta?
Drazen Bjelovuk

1
@Drazen Evet, doğru.
slhck

Şerefe! -------
Drazen Bjelovuk

20

.mp4Bir dizi CRF değerinde (18, 21, 24 ve 27) tüm önceden ayarlanmış değerleri (plasebo hariç) kullanarak Sony kameradan gelen yüksek kaliteli bir videoda kodlanmış (libx264 kodlamayı kullanarak ) kodladığım bir test yaptım ). Kodlama hızı, çıktı kalitesi ve dosya boyutunun en iyi kombinasyonunu neyin vereceğini bilmek istedim.

Her bir CRF değeri için, her bir trans-kod işlemine kodlama süresi için bir puan verdim (örneğin, CRF = 18 için, önceden ayarlanmış değer ultrafastın 5.7 saniyelik zamanı 1.0, skorunun 162 saniye olduğu zaman, 0 arasında puanlanan diğer puanlar). Çıktı dosyası boyut puanlarını da benzer şekilde hesapladım, tabii ki en küçük dosyaya en iyi skoru verdim. Daha sonra "birleştirilmiş" hız / boyut puanı için iki puan ekledim.

Dört CRF değerinin her biri için, "çok hızlı" ön ayar, neredeyse mükemmel puan olan 1.94 (CRF 18 ve 21 için), 1.96 (CRF 24) ve 1.97 (CRF 27) ile eller aşağı kazanan oldu. "Çok hızlı" nın her seferinde neredeyse en küçük dosya boyutunu ürettiğini ve sadece "veryslow" u kaybettiğini ve hiç olmadığı kadar çok merak ediyorum .

Çeşitli önceden belirlenmiş değerler arasında fark ettiğim bir fark, işletim sisteminin (Windows 7) bana farklı küçük resimler vermesiydi. Daha hızlı hazır ayarlar, videoya birkaç saniye boyunca bir küçük resim gösterir; burada daha yavaş hazır ayarların küçük resimleri videonun açılış çerçevelerini yansıtır. Bu benim için önemli değil; Öğrendiğim şey “önceden ayarlanmış çok hızlı” kolay bir seçim gibi görünüyordu.

İşte sonuçlarım (bir Excel elektronik tablosunun anlık görüntüsü olarak):
excel anlık

İşte Excel elektronik tablosu csv metni olarak:

CRF,Preset,Seconds,score,MB,score,totalscore
18,1_ultrafast,5.7,1.00,59.5,0.09,1.09
18,2_superfast,8.4,0.98,62.3,0.00,0.98
18,3_veryfast,10.8,0.97,30.9,0.98,1.94
18,4_faster,16.0,0.93,33.5,0.89,1.83
18,5_fast,24.0,0.88,36.8,0.79,1.68
18,6_medium,29.1,0.85,34.9,0.85,1.70
18,7_slow,48.1,0.73,33.9,0.88,1.61
18,8_slower,84.9,0.49,33.0,0.91,1.40
18,9_veryslow,162.0,0.00,30.1,1.00,1.00
21,1_ultrafast,5.7,1.00,38.0,0.00,1.00
21,2_superfast,7.9,0.98,35.0,0.15,1.14
21,3_veryfast,10.0,0.97,19.0,0.97,1.94
21,4_faster,14.2,0.94,21.0,0.87,1.80
21,5_fast,19.9,0.89,23.0,0.77,1.66
21,6_medium,24.6,0.86,22.0,0.82,1.67
21,7_slow,43.1,0.72,21.0,0.87,1.58
21,8_slower,69.8,0.51,20.5,0.89,1.41
21,9_veryslow,137.3,0.00,18.4,1.00,1.00
24,1_ultrafast,5.5,1.00,24.9,0.00,1.00
24,2_superfast,7.5,0.98,21.4,0.27,1.25
24,3_veryfast,9.3,0.97,12.0,0.99,1.96
24,4_faster,13.2,0.93,14.0,0.84,1.77
24,5_fast,17.4,0.90,15.0,0.76,1.66
24,6_medium,21.0,0.87,14.4,0.81,1.67
24,7_slow,37.3,0.72,14.0,0.84,1.56
24,8_slower,62.2,0.51,13.0,0.92,1.42
24,9_veryslow,121.1,0.00,11.9,1.00,1.00
27,1_ultrafast,5.5,1.00,16.8,0.00,1.00
27,2_superfast,7.4,0.98,13.6,0.38,1.36
27,3_veryfast,9.0,0.97,8.4,1.00,1.97
27,4_faster,12.6,0.93,10.1,0.80,1.73
27,5_fast,15.8,0.90,10.4,0.76,1.66
27,6_medium,18.8,0.87,10.0,0.81,1.68
27,7_slow,34.1,0.73,9.8,0.83,1.56
27,8_slower,59.6,0.48,9.0,0.93,1.41
27,9_veryslow,109.7,0.00,8.4,1.00,1.00

3
Süper Kullanıcının biçimlendirme seçeneklerinin vasat olduğunu biliyorum, ancak verileri metin olarak göndermeniz, muhtemelen kod biçimlendirme kullanarak yardımcı olabilir.
Scott

1
Büyüleyici. Makinemde de daha hızlı. Teşekkürler!
joeytwiddle

1
Sonuçlarınıza şüphe ile baktığımı itiraf etmeliyim, ancak testi yineledim ve 2 dakika 1080p film klibinde ffmpeg sürüm 3.3.2-1 kullanarak v. Aslında, çok hızlı, zamanın% 60'ındaki en küçük dosya boyutunu oluşturdu ve zamanın% 40'ını (% 2) veryslow'a (2'ye kadar veryslow) çıkardı. Şu andan itibaren, tüm kodlarım için oldukça hızlı bir CRF değeri (18, 19, 20) ile birlikte çok hızlı kullanacağım çünkü çok hızlı, sadece yüksek CRF değerlerinde daha düşük olanlara göre biraz daha yavaştı. Teşekkürler, bana çok zaman kazandırdın. Ham yorum ve komut dosyası aşağıdaki yorumda.
matt

1
Yukarıdaki yorumdan devam ... İşte ham verilerim - CRF 18 - 27 ve kodları çalıştırmak için yazdığım Linux / UNIX bash betiği (herhangi birinin benzer bir test yapmak istemesi durumunda).
matt

1
İşte x264 ve x265 için yapılan testlerle konulara ilişkin bazı harika blog yazıları (sonuçlar her biri için tahmin edilebilecek şekilde farklı)
forresthopkinsa
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.