FLV'yi MP4'e Dönüştürme FFMPEG Kullanma ve Kaliteyi Koruma


26

Flv dosyalarımı mp4'e dönüştürmek için iOS aygıtlarında oynatmak için ffmpeg kullanmaya çalışıyorum ancak dönüştürülen video orijinalinden daha kötü kalitede.

İşte kullandığım komut:

ffmpeg -i input.flv -ar 22050 output.mp4

Birisi bana flv'den mp4'e dönüştürme için en iyi ayarları sağlayabilirse gerçekten memnun olurum.

ffmpeg  flv  mp4 

Yanıtlar:


42

FLV'nizde kullanılan kod çözücülere bağlı olarak, mp4 bir kutuya kolayca yeniden sararak kurtulabilirsiniz. Şunlar gerekir H.264veya MPEG4 simple profilevideo ve AACses. Kaynak dosyanızla ilgili bazı bilgileri bulabilirsiniz.ffmpeg -i input.flv

Basitçe H.264 / MPEG4 Simple + AAC'a sahip olmanın yeterince iyi olup olmadığından veya desteklenen codec bileşenlerinde belirli seçenekler olup olmadığından emin değilim. Test etmek yeterince kolay:

Kullanmayı deneyin

ffmpeg -i input.flv -c copy -copyts output.mp4

-copytsolduğunu copy timestampso ses senkronizasyonu yardımcı olacaktır.

Bu işe yaramazsa, ses ve video kodeklerini zorlamayı deneyin. Bu dosyayı yeniden kodlar:

ffmpeg -i input.flv -c:v libx264 -crf 23 -c:a libfaac -q:a 100 output.mp4

Video kalitesini iyileştirmek için daha düşük bir CRF değeri, örneğin 18'e kadar herhangi bir şey kullanabilirsiniz. Daha küçük bir dosya elde etmek için daha yüksek bir CRF kullanın, ancak bunun kaliteyi düşüreceğini unutmayın.

Ses kalitesini artırmak için daha yüksek bir kalite değeri kullanın. FAAC 100için varsayılandır.


İşte soruda önerilen ffmpeg komutuyla ilgili birkaç düşünce.

-arses örnekleme hızını ifade eder. Siz daha iyi anlayana kadar bununla uğraşmamanızı tavsiye ederim. Ses kodlamasıyla oynamak istiyorsanız, bit hızını ayarlayın (örn. -b:a 128k) Ve kodlayıcının buna göre ne yapacağını seçmesine izin verin.

Sonunda bu yoldan gidersen ...

CD kalitesi 44100Hz örneklemedir; tipik videoda 48000Hz kullanılır.

Orijinal sorunun örneğinde 22050'nin cd kalitesinde örnekleme oranının 1/2 olduğunu not edebilirsiniz. CD malzemesini küçültüyorsanız, bu iyi bir seçimdir. Eğer 48KHz kaynakla başlıyorsanız (ki muhtemelen; tekrar; bu, video dosyalarında 44100'den çok daha yaygındır) bunun yerine 24Khz kullanırdım. Muhtemelen fazla bir önemi olmayacak, ancak biraz daha iyi ses çıkarabilir ve dönüşümü yapmak için biraz daha az CPU kullanabilir.


cevabımı yeniden okudum ... Yukarıda verdiğim komut satırına ek olarak, yalnızca video veya sadece ses kopyalayabilir ve diğerini yeniden kodlayabilirsiniz. örneğin ... "ffmpeg -i input.foo -vcodec copy -acodec libfaac -ab 128k - output.mp4copyts", bu video akışını kopyalar ve sesi AAC'ye yeniden kodlar. libfaac'ın kalitesi iyi değil ama işe yarıyor.
Dan Pritts,

Ses / video kodeklerini zorlayan komutla ilgili olarak: Eylül 2019'dan itibaren bunun için ffmpegdurdurulan desteğinlibaac durduğunu gördüm . Bu soru ya ffmpegdoğal AAC kodlayıcıyı kullanarak -c:a aac ya da Fraunhofer FDK AAC kodeğini kullanarak -c:a libfdk_aac (bunun için ffmpegdestek ile derlenmeyi gerektirir libfdk_aac) önerir .
aresnick
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.