Bagaimana mengkonversi MKV ke AVI dengan kerugian minimal

23

Untuk mengonversi MKV ke AVI, saya melakukan dua hal. Hal pertama yang saya lakukan adalah ini:

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

atau ini:

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

Salah satu dari ini akan mengkonversi MKV ke AVI, tetapi masalahnya adalah bahwa video tidak diputar dengan lancar karena beberapa alasan. Itu baik-baik saja, karena jika saya melakukan satu hal lagi itu diperbaiki:

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

Setelah saya melakukan ini maka file diputar tanpa masalah. Saya telah berhasil melakukannya dengan cara ini untuk satu file, tetapi kemudian saya mencobanya pada file lain, dan ada sedikit, tetapi terlihat kerugian dalam kualitas video. Ini adalah output yang saya dapatkan ketika melakukan langkah kedua:

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

Saya hanya menggunakan pengaturan besar secara sewenang-wenang pada langkah kedua dan itu bekerja dengan baik sebelumnya tetapi tidak dalam hal ini. Pengaturan apa yang harus saya gunakan?

tony_sid
sumber
Inilah yang ffmpeg memberi saya untuk sameq: Opsi 'sameq' telah dihapus. Jika Anda mencari opsi untuk mempertahankan kualitas (yang bukan untuk apa-samaq), gunakan -qscale 0 atau opsi faktor kualitas yang setara.
DavidG

Jawaban:

25

Untuk hanya menyalin bitstream video dan audio, dengan demikian tanpa kehilangan kualitas:

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

Jika Anda ingin FFmpeg mengkonversi video dan audio secara otomatis:

ffmpeg -i filename.mkv output.avi
RobotHumans
sumber
7
Pengaturan default FFmpeg cenderung buruk. Berikut ini adalah panduan umum untuk encoding dengan berbagai codec; wiki FFmpeg memiliki lebih banyak panduan mendalam.
evilsoup
file kode pertama yang dibuat yang rusak tidak diputar di VLC.
codemirror
18
 ffmpeg -i "input.mkv" -f avi -c:v mpeg4 -b:v 4000k -c:a libmp3lame -b:a 320k "converted.avi"

Saran saya: gunakan mpeg4 + mp3 dalam wadah avi.

Ken
sumber
1

Coba gunakan ffmulticonverter. Sangat berguna bagi saya: ini adalah semacam GUI untuk ffmpeg dan Anda dapat dengan mudah mengatur semua parameter. Selain itu, Anda dapat menemukan daftar semua format video yang mungkin.

LP

pengguna155915
sumber
-3

Bolehkah saya merekomendasikan pintasan yang saya gunakan secara teratur?

ffmpeg -i filename.mkv -sameq output.avi
CarlF
sumber
4
sameq tidak berarti kualitas yang sama dan tidak boleh digunakan. Bahkan itu telah dihapus dari ffmpeg sama sekali. Alih-alih mengatur kualitas menggunakan apa pun yang disediakan oleh codec target.
slhck