Nasıl hızlı ffmpeg kullanarak mp4 webm için dönüştürmek için?


20

HTML5 videoları kullanan bir web sitesi için 76 mp4 dosyalarını webm'ye dönüştürmek zorundayım. 10 Gb mp4 dosyalarından bahsediyorum ... ffmpeg'den şunu kullanarak sorabilirim:

ffmpeg -i input_file.mp4 output_file.webm

Tabii ki yinelemeli olarak tarafından yapacağım:

find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" "${0%%.mp4}.webm"' {} \;

İnternette bir yerde bulduğum bir şeyi bile denedim:

ffmpeg -i input_file.mp4 -cpu-used 4 -threads 8 output_file.webm

Ama olay şu ki beni bir haftadan az sürmez! Neyi yanlış yapıyorum? Bunu hızlandırmanın olası bir yolu var mı? Eğer ogg 'e dönüşürsem hız kazanacak mıyım? Lütfen yardım et!!!



@ LordNeckbeard, bu rehbere dayanarak bir cevap yazmalısınız. Ayrıca, bu kalitede bir sürü feda etmeye istekli olmadıkça VPX kodlayıcı ... x264 kıyasla bile aklı başında ayarları vb ile, pekmez gibi yavaş olduğu unutulmamalıdır, gerçekten almak mümkün değildir yaktı hızlı onunla kodlar.
Evilsoup

Sorun uyumlulukla ilgili .. Bu biraz uyumluluk tablosu: {x264: IE (+) Safari (+) Chrome (+) Firefox (-) Opera (-)} {webm: IE (-) Safari (-) Chrome (+) Firefox (+) Opera (+)} Safari ve IE’nin pazarın en büyük bölümünü elinde tuttuğunu söylüyorlar ama ben bundan kesinlikle şüpheliyim ve Firefox ve Opera’ya bahse gireceğim! ;)
pr.nizar

@ pr.nizar Cisco, OpenD264'ü BSD altında piyasaya sürdüğü için, firefox şimdi h.264'ü destekliyor.
Wyatt8740 16:15

Yanıtlar:


11

Kod dönüştürme videosu zaman alıyor. Ayrıca kodlama parametreleri hakkında daha fazla bilgi alır; ffmpeg'in varsayılan ayarlarının sizin için uygun olması muhtemel değildir ve kullanılabilir bir çıktı dosyası bile oluşturamayabilir.

İşte bir başlangıç:

http://blog.pcode.nl/2010/10/17/encoding-webm-using-ffmpeg/

Bu ayarlar belirli bir ortalama bit hızına kodlanacaktır (3900kbit video bit hızı), bu nedenle bit hızında sivri uçlar olacaktır.

MP4 ve WebM farklı video kodeklerini kullanır, bu nedenle kısa yol yoktur; video kodlanmış olmalıdır.

Kodlama hızı, elbette, kare boyutuna, kare hızına ve kalite ayarlarına bağlı olarak büyük ölçüde değişecektir. 720p kodlama için, son birkaç yıldaki bir CPU'da yaklaşık 1: 1 (10 saatte 10 saat video) kodlayabilmeyi bekleyebilirsiniz. Bağlantıda verilen örnekteki gibi iki geçişli ABR kodlaması yaparsanız, neredeyse iki katına çıkar.


8

İki katı mı yoksa yarısı mı? Öyleyse bu bir çıkmaz. Bit bitleriyle oynamayacağım, kaliteden veya boyuttan ne bekleyeceğimi asla bilemeyeceğim .. Sanırım buna devam edeceğim ve müşterinin dönüşüm sona erene kadar dayanmasını sağlayacağım.

find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libvpx -acodec libvorbis -cpu-used 5 -threads 8 "${0%%.mp4}.webm"' {} \;

Gelecekteki kullanıcılar için gönderiyorum, aslında hız kazandım ancak işlemcim cehennem gibi çalışıyor: her çekirdekte% 60 - 80! Şimdi daha az zaman alacağını düşünüyorum: 6 veya 7 yerine 3 gün .. Umarım bozmaz .. .. _ ^

Yine de teşekkürler dostum!

Düzenleme: LordNeckbeard ve neon_overload -sameq yorumlarından sonra -sameq anahtarının kaldırılması aynı "kalite" anlamına gelmez


3
-sameq"aynı kalite" anlamına gelmez ve ters yönde kaldırılmıştır. Bunu kullanma. Ayrıntılı libvpx kodlama talimatları için sorunuzdaki yorumumuza verilen bağlantıya bakın.
llogan

2
-sameq aynı niceleyici anlamına gelir, ancak h.264 ve VP8 arasındaki niceleyicileri karşılaştırmak imkansızdır, bu nedenle çalışsa bile, kullandıysanız neredeyse kesin sonuç alamazsınız - öyleyse kullanmayın.
thomasrutter

2
Buna dikkatimi çektiğin için teşekkür ederim adamım! Cevabımı düzelttim ..;) Aslında bu anahtarı kullanmadım, çünkü daha da yavaşladığını gördüm ... İş bununla bir buçuk günde yapıldı: Bulun. / -Name '* .mp4' -exec bash -c 'avconv -i "$ 0" -vcodec $ {0 %%. Mp4} .webm "'{} \; Konuyu bu yorumla yönlendirdiğimi biliyorum ama söylemeye değeceğini düşündüm .. ^ _ ^ Umarım birisine yardımcı olur! ;)
pr.nizar

Gerçekten kalite için orijinal dosyalar ve kodlanmış webm arasındaki farkları söyleyemem: neredeyse aynı ses ve video kalitesi!
Pr.nizar

1
Yine de, ne olursa olsun, ffmpeg / avconv varsayılanlarını kullanmak yerine, bir crf veya bit hızı değeri ayarlamanız önerilir.
thomasrutter
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.