Як конвертувати MKV в AVI з мінімальними втратами


23

Щоб перетворити MKV в AVI, я роблю дві речі. Перше, що я роблю, це:

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

або це:

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

Будь-яка з них перетворить MKV в AVI, але проблема полягає в тому, що відео чомусь не відтворюється плавно. Хоча це чудово, тому що якщо я ще одну річ виправить:

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

Після того як я це зробив, то файл відтворюється без проблем. Я мав успіх зробити це таким чином для одного файлу, але потім спробував це на іншому файлі, і в якості відео є невелика, але помітна втрата. Це результат, який я отримую, виконуючи другий крок:

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

Я просто використовував довільно великі налаштування на другому кроці, і це добре працювало раніше, але не в цьому випадку. Які параметри я повинен використовувати?


Ось що мені дало ffmpeg для sameq: Варіант 'sameq' був видалений. Якщо ви шукаєте варіант збереження якості (який не є тим, що було -sameq), використовуйте -qscale 0 або еквівалентний варіант коефіцієнта якості.
DavidG

Відповіді:


25

Щоб просто скопіювати бітовий потік відео та аудіо, таким чином, без втрати якості:

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

Якщо ви хочете, щоб FFmpeg автоматично перетворювало відео та аудіо:

ffmpeg -i filename.mkv output.avi

7
Налаштування FFmpeg за замовчуванням, як правило, жахливі. Ось загальний посібник з кодування різними кодеками; у вікі FFmpeg є більш поглиблені посібники.
злий

перший створений код файл, який був пошкоджений, не відтворювався у VLC.
codemirror

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

Моя пропозиція: використовуйте mpeg4 + mp3 в контейнері avi.


1

Спробуйте використовувати ffmulticonverter. Для мене дуже корисно: це свого роду графічний інтерфейс для ffmpeg, і ви можете легко встановити всі параметри. Крім того, ви можете знайти список усіх можливих форматів відео.

LP


-3

Чи можу я рекомендувати ярлик, який я регулярно використовую?

ffmpeg -i filename.mkv -sameq output.avi

4
sameq не означає однакову якість і його не слід використовувати. Насправді його взагалі вилучили з ffmpeg. Швидше встановлюйте якість, використовуючи все, що надає цільовий кодек.
slhck
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.