Налаштування ручного гальма для перетворення MKV в MP4, зберігаючи початкову якість


44

У мене є тонна файлів MKV, які мені потрібно перетворити на MP4, і вибране мною програмне забезпечення - Handbrake.

Я застряг у налаштуваннях, які були б найкращі для конверсії. Я хочу зберегти повну якість. Я просто конвертую за допомогою оригінальних налаштувань і нічого не змінюю, чи є якась конкретна річ, яку мені потрібно змінити?


Ось досить докладний посібник щодо налаштувань Handbrake mattgadient.com/2013/06/12/…
janot

Я отримую помилку в деяких файлах (для mkv до mp4 і mp4 до mkv): вихідний файл № 0 не містить потоку. Хтось має уявлення, що це означає?
PrimitiveNom

Відповіді:


85

У чому проблема з ручним гальмом?

Коли ви використовуєте Handbrake для перетворення одного формату контейнера в інший (наприклад, MKV до MP4 у вашому випадку), Handbrake повторно кодує відео. Дивіться також відповідний запит на функцію, який дозволив би пройти відеозапис:

Вибачте, додавати відеозапис не планується. HandBrake призначений для відеопередавача. Він не був розроблений таким чином, щоб він міг пройти наскрізь.

Отже, щоразу, коли ви міняєте контейнери за допомогою Handbrake, ваше відео буде перекодовано, а це означає, що а) потребує часу і б) може призвести до втрати якості.

Чи потрібно повторно кодувати? Не можу я просто поміняти контейнер?

Оскільки проходження не можливе, запитайте себе: чи потрібно повторно кодувати? Якщо ви хочете лише змінити контейнер з MKV на MP4, вам зазвичай не потрібно нічого кодувати , ви просто поміняєте "обгортання" навколо відео. Це не втрачає якості, і це буде набагато швидшим процесом.

Ви можете легко поміняти контейнери за допомогою FFmpeg - просто потрібно сказати йому, щоб скопіювати потоки відео та аудіо:

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

Також є такі інструменти, як MP4Box, які також можуть створювати MP4-контейнери - те ж саме існує для MKV з MKVtoolnix .

Однак є великий застереження: це працює лише в тому випадку, якщо аудіо- та відеокодеки підтримуються в цільовому (MP4) контейнері, що стосується, наприклад, H.264 / H.265 та AAC, але не для багатьох інших. Крім того, підтримка формату субтитрів для MP4 відрізняється від MKV і насправді досить обмежена, тому ця команда може вийти з ладу.

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

Щоб зрозуміти, чому це необхідно, важливо дізнатися різницю між відеокодеками та контейнерами . Це допоможе вам зрозуміти, чому працює зміна контейнерів і чому насправді контейнери MP4 та MKV мають мало спільного з відеокодеками.

Чому повторне кодування все-таки погано?

Ви можете (як правило) не зберігати повну якість при кодуванні відео, яке вже було закодовано. Це тому, що оригінал вже був стиснутий, викидаючи інформацію, і, роблячи це знову, ви вносите втрати покоління .

Часто вам потрібно перекодувати відео, коли, наприклад, його розміри змінюються, або вам потрібна певна швидкість передачі бітів, щоб втиснути ваш потік відео, або для вашого оригінального відео використовується кодек, який ви не можете відтворити з будь-якої причини.

Отже, якщо ви завантажите MKV-відео у Handbrake і перекодуєте його за допомогою x264, кодер H.264 Handbrake використовує, зберігаючи його в контейнері MP4, ви втратите якість незалежно від того, якщо ви не встановите бітрейт або коефіцієнт якості настільки високий, що різниці ви не побачите. Але тоді і розмір файлу буде більшим.

В ідеальному випадку ви перетворите відео на нестиснене відео, яке не втратить вам ніякої якості, але надасть вам файли розміром з десяток гігабайт навіть за кілька хвилин відеоматеріалів.

Гаразд, але мені дійсно доведеться перекодувати!

Якщо вам дійсно доведеться перекодувати, переконайтеся, що ви не встановлюєте середній бітрейт, а оберіть коефіцієнт постійної швидкості , який є чимось на зразок "постійної якості". Так само, як "змінна швидкість передачі бітів" для MP3: вона обов'язково витратить біти на потрібні їм відео частини та покращить загальну якість - при тому ж розмірі файлу.

Здорові значення CRF складають від 19 до 24, де нижчі означають "краще". Отже, ви можете спробувати з коефіцієнтом швидкості 19. Також не забудьте встановити профіль "Високий", який дозволяє кодеру використовувати всі дзвіночки та оптимізувати якість для заданої швидкості передачі.


Дякую! Здається, ти єдиний, хто, здається, хвилює це питання і допомагає мені, я дотримувався твоїх порад і, здається, якість така ж, як і оригінальна! :)
помаранчевий

Для деяких mkv файлів це не вдасться (Не вдалося записати заголовок для вихідного файлу ... неправильний кодек). Використовуйте ffprobe -i file.mkv, щоб побачити, у якому форматі знаходиться a / v, вам, швидше за все, потрібно буде перекодувати за допомогою аудіо x264 та аудіо / ac3 / ac3
ski_squaw

u на 100% впевнений, що перезаписування файлів не спричиняє втрати якості ??
PrimitiveNom

1
@BallpointBen Неможливо, ні: github.com/HandBrake/HandBrake/isissue/…
slhck

1
@Hashim Я намагався уточнити повідомлення, як вимагали. Що стосується вашого питання, оскільки Handbrake не дозволяє пройти повний перехід, перетворення з MP4 в MKV призведе до втрати якості. І це займе багато часу. Просто роби, ffmpeg -i input.mp4 -c copy output.mkvі ти маєш добре.
slhck

4

Це дуже добре працює для мене. Нижче наведено код для перетворення всіх .mkv в .mp4 файлів у Windows.

  • Можливо, вам доведеться додати ffmpeg до свого шляху. ви можете просто прокласти повний шлях до виконуваного файлу ffmpeg, D: \ apps \ ffmpeg \ bin \ ffmpeg.exe
  • Завантажте ffmpeg для Windows тут.
  • Використання: Додайте .mkv файл на нього. Це зробить весь каталог.

Збережіть у файлі під назвою convert.bat.

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

Працює як шарм.
Кіт Джонсон

Я помістив це в папку з ffmpeg.exe, а потім змінив її наfor %%a in ("*.mkv") do %~dp0ffmpeg.exe -i "%%a" -vcodec copy -acodec copy "%%~na .mp4"
davidtbernal
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.