Orijinal kalitesini korurken MKV'yi MP4'e dönüştürmek için el freni ayarları


44

MP4'e dönüştürmem gereken bir ton MKV dosyam var ve seçtiğim yazılım El Freni.

Hangi ayarların dönüşüm için en iyi olacağına sıkışıp kaldım. Ben tam kaliteyi korumak istiyorum. Sadece orjinal ayarlara dönüştüm mü ve hiçbir şeyi değiştirmeyin mi ya da değiştirmem gereken belirli bir şey var mı?


İşte Handbrake
janot

Bazı dosyalarda hata alıyorum (mkv'dan mp4'e ve mp4'den mkv'ye): # 0 no'lu çıktı dosyası herhangi bir akış içermiyor. Bunun ne anlama geldiğini bilen var mı?
İlkelNom

Yanıtlar:


85

El Freni ile ilgili sorun nedir?

Bir konteyner biçiminden diğerine dönüştürmek için El Freni kullanıyorsanız (örneğin, sizin durumunuzda MKV'den MP4'e), El Freni videoyu yeniden kodlar. Ayrıca, video geçişini etkinleştirebilecek ilgili özellik isteğine de bakın :

Maalesef video geçişi eklemek planlı değil. El Freni, video kodlayıcı olarak tasarlanmıştır. Geçişe izin verecek şekilde tasarlanmadı.

Bu nedenle, El Freni ile konteynerleri ne zaman değiştirirseniz, videonuz yeniden kodlanacak, bu da a) zaman alır ve b) kalite kaybına neden olabilir.

Yeniden kodlamak zorunda mıyım? Kabı değiştiremez miyim?

Geçiş mümkün olmadığından, kendinize sorun: Yeniden kodlamam gerekiyor mu? Kapsayıcıyı yalnızca MKV'den MP4'e değiştirmek istiyorsanız, genellikle herhangi bir şeyi kodlamanız gerekmez , sadece videonun etrafındaki "sarma" özelliğini değiştirirsiniz. Bu kaliteyi kaybetmez ve çok daha hızlı bir süreç olur.

FFmpeg ile kapları kolayca değiştirebilirsiniz - video ve ses akışlarını kopyalamanız yeterlidir:

ffmpeg -i input.mkv -c copy -map 0 output.mp4

Ayrıca MP4Box gibi MP4 kapları yaratabilecek araçlar da vardır - aynısı MKVtoolnix ile MKV için de geçerlidir .

Bununla birlikte, büyük bir uyarı vardır: bu yalnızca ses ve video kodekleri hedef (MP4) kapta destekleniyorsa çalışır , bu örneğin H.264 / H.265 ve AAC için geçerlidir, ancak diğerleri için değildir. Ayrıca, MP4 için altyazı formatı desteği MKV'den farklıdır ve aslında oldukça kısıtlıdır, bu nedenle bu komut başarısız olabilir.

Bu komut işe yaramazsa ve girişiniz çıkış kabı için yanlış kodlayıcı kullanıyorsa, muhtemelen yeniden kodlamanız gerekecektir . Bu durumda, kodekler çıkış kabına uyarlanacaktır.

Bunun neden gerekli olduğunu anlamak için, video kodekleri ve kapsayıcılar arasındaki farkı öğrenmek önemlidir . Bu, kapların değişmesinin neden işe yaradığını ve kapların MP4 ve MKV'nin neden video kodeklerle çok az ilgisi olduğunu anlamanıza yardımcı olacaktır.

Yine de neden yeniden kodlama kötü?

Sen (genellikle) tam kalitesini korumak olamaz zaten kodlanmış bir video kodlama yaparken. Bunun nedeni, asıl bilgiyi bir kenara atmakla zaten sıkıştırılmış olmanız ve bunu tekrar yaparak nesiller boyu kayıp yaşatıyor olmanızdır .

Çoğu zaman, örneğin boyutları değiştiğinde videoyu yeniden kodlamak istersiniz veya video akışınızı sıkmak için belirli bir bit hızına ihtiyacınız olur veya orijinal videonuz herhangi bir nedenle oynayamayacağınız bir codec bileşeni kullanır.

Eğer MKV videonuzu Handbrake'e yüklerseniz ve x264 ile yeniden kodlarsanız, H.264 kodlayıcı Handbrake kullanır, bir MP4 kabında saklarsanız, bit hızını ayarlamadığınız sürece ne olursa olsun kalitesini kaybedersiniz veya kalite faktörü o kadar yüksek ki farkı göremezsiniz (gerçekten). Ancak, dosya boyutu da daha büyük olacaktır.

İdeal durumda, videoyu sıkıştırılmamış bir videoya dönüştürebilirsiniz, bu da sizi herhangi bir kaliteden kaybetmez, ancak birkaç dakikalık video materyali için bile bir düzine Gigabyte boyutunda dosya verir.

Tamam, ama gerçekten kodlamam gerek!

Eğer varsa gerçekten yeniden kodlamak zorunda emin bir ortalama bit hızı ayarlanır, ancak bir seçim değil yapmak Sabit Oranı Factor "sürekli kalite" gibi bir şey. Aynen MP3 için "değişken bit hızı" gibi: Bitleri kendilerine ihtiyaç duyan video parçalarına harcayacağınızdan ve aynı kalitede olacak şekilde genel kaliteyi daha iyi hale getireceğinden emin olacaktır.

Sane CRF değerleri, 19 ile 24 arasındadır; burada düşük "daha iyi" anlamına gelir. Bu nedenle, 19'lu bir Hız Faktörü ile deneyebilirsiniz. Ayrıca, kodlayıcının tüm zilleri ve ıslıkları kullanmasını ve verilen bit hızı için kaliteyi optimize etmesini sağlayan "Yüksek" profilini ayarladığınızdan emin olun.


Teşekkür ederim! Görünüşe göre bu soruyu önemseyen ve bana yardım eden tek kişi sensin, tavsiyene uydum ve kalitenin orijinali gibi görünüyor! :)
turuncu

Bazı mkv dosyaları için bu başarısız olur (çıktı dosyası için başlık yazılamadı ... yanlış kodlayıcı). A / v'nin hangi formatta olduğunu görmek için ffprobe -i file.mkv dosyasını kullanın, muhtemelen x264 video ve aac / ac3 ses
koduyla yeniden kodlamanız gerekecek

% 100 dosyaları yeniden sarma işleminin kalite kaybına yol açmayacağından emin olması ??
PrimitiveNom

1
@BallpointBen Mümkün değil, hayır: github.com/HandBrake/HandBrake/issues/…
slhck

1
@Hashim Gönderiyi istediğim gibi açıklamaya çalıştım. El freni MKV MP4 dönüştürme, passthrough izin vermez yana, sorunuzu ilgili olacaktır kalite kaybına tanıtmak. Ve çok zaman alacak. Sadece yap ffmpeg -i input.mp4 -c copy output.mkvve iyi olmalısın.
slhck

4

Bu benim için çok iyi çalışıyor. Aşağıda tüm .mkv dosyalarınızı .mp4 dosyalarına dönüştürmek için kod verilmiştir.

  • Yolunuza ffmpeg eklemeniz gerekebilir. sadece tam yolu ffmpeg çalıştırılabilir dosyasına koyabilirsiniz, D: \ apps \ ffmpeg \ bin \ ffmpeg.exe
  • Windows için ffmpeg'i buradan indirin.
  • Kullanımı: Bir .mkv dosyasını üzerine bırakın. Tüm dizini yapacak.

Convert.bat adlı bir dosyaya kaydedin.

for %%a in ("*.mkv") do ffmpeg.exe -i "%%a" -vcodec copy -acodec copy "%%~na .mp4"
pause

Tıkır tıkır çalışıyor.
Kit Johnson,

Bu ffmpeg.exe ile klasöre koymak ve daha sonra değiştirdifor %%a in ("*.mkv") do %~dp0ffmpeg.exe -i "%%a" -vcodec copy -acodec copy "%%~na .mp4"
davidtbernal
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.