Bir MKV'yi en az kayıpla AVI'ye dönüştürme


23

Bir MKV'yi AVI'ye dönüştürmek için iki şey yapıyorum. Yaptığım ilk şey şudur:

ffmpeg -i filename.mkv -vcodec copy -acodec copy output.avi

veya bu:

ffmpeg -i filename.mkv -sameq -acodec copy output.avi

Bunlardan biri MKV'yi bir AVI'ye dönüştürecektir, ancak sorun, videonun bir nedenden dolayı düzgün oynamamasıdır. Yine de sorun değil, çünkü bir şeyi daha yaparsam düzeltilecektir:

ffmpeg -i output.avi -vcodec mpeg4 -b 4000k -acodec mp2 -ab 320k converted.avi

Bunu yaptıktan sonra dosya sorunsuz oynuyor. Bir dosya için bu yolla başarabildim ama sonra başka bir dosyada denedim ve video kalitesinde hafif ama gözle görülür bir kayıp var. İkinci adımı yaparken aldığım çıktı:

FFmpeg version 0.6.1, Copyright (c) 2000-2010 the FFmpeg developers
  built on Dec 29 2010 18:02:10 with gcc 4.2.1 (Apple Inc. build 5664)
  configuration: 
  libavutil     50.15. 1 / 50.15. 1
  libavcodec    52.72. 2 / 52.72. 2
  libavformat   52.64. 2 / 52.64. 2
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0.11. 0 /  0.11. 0

Seems stream 0 codec frame rate differs from container frame rate: 359.00 (359/1) -> 29.92 (359/12)
Input #0, avi, from 'output.avi':
  Metadata:
    ISFT            : Lavf52.64.2
  Duration: 00:04:17.21, start: 0.000000, bitrate: 3074 kb/s
    Stream #0.0: Video: mpeg4, yuv420p, 704x480 [PAR 229:189 DAR 5038:2835], 29.92 fps, 29.92 tbr, 29.92 tbn, 359 tbc
    Stream #0.1: Audio: vorbis, 48000 Hz, stereo, s16
Output #0, avi, to 'converted.avi':
  Metadata:
    ISFT            : Lavf52.64.2
    Stream #0.0: Video: mpeg4, yuv420p, 704x480 [PAR 229:189 DAR 5038:2835], q=2-31, 4000 kb/s, 29.92 tbn, 29.92 tbc
    Stream #0.1: Audio: mp2, 48000 Hz, stereo, s16, 320 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1

İkinci adımda keyfi olarak büyük ayarları kullandım ve daha önce iyi çalıştı ancak bu durumda olmadı. Hangi ayarları kullanmalıyım?


Bu, ffmpeg'in sameq için bana verdiği şeydi: Option 'sameq' kaldırıldı. Kaliteyi korumak için bir seçenek arıyorsanız (-sameq ne anlama gelmedi), -qscale 0 veya eşdeğer bir kalite faktörü seçeneğini kullanın.
DavidG

Yanıtlar:


25

Sadece video ve ses bit akışını kopyalamak için kalite kaybı olmadan:

ffmpeg -i filename.mkv -c:v copy -c:a copy output.avi

FFmpeg'in video ve sesi otomatik olarak dönüştürmesini istiyorsanız:

ffmpeg -i filename.mkv output.avi

7
FFmpeg'in varsayılan ayarları korkunç olma eğilimindedir. İşte çeşitli kodeklerle kodlamanın genel bir rehberi; FFmpeg wiki'nin daha ayrıntılı kılavuzları var.
evilsoup

bozulan ilk kod oluşturulan dosya VLC'de çalmadı.
codemirror

18
 ffmpeg -i "input.mkv" -f avi -c:v mpeg4 -b:v 4000k -c:a libmp3lame -b:a 320k "converted.avi"

Benim önerim: ape konteyner içinde mpeg4 + mp3 kullanın.


1

Ffmulticonverter kullanmaya çalışın. Benim için çok faydalı: ffmpeg için bir GUI türüdür ve tüm parametreleri kolayca ayarlayabilirsiniz. Ayrıca, mümkün olan tüm video formatlarının bir listesini bulabilirsiniz.

LP


-3

Düzenli kullandığım bir kısayol önerebilir miyim?

ffmpeg -i filename.mkv -sameq output.avi

4
sameq aynı kalite anlamına gelmez ve kullanılmamalıdır. Aslında, ffmpeg'den tamamen çıkarıldı. Aksine, hedef kodeğin sağladığı her şeyi kullanarak kaliteyi ayarlayın.
slhck
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.