Как преобразовать .mkv файл в .mp4 файл без потерь?

Я должен преобразовать видеофайл из контейнера Matroska в mp4 контейнер. Файл Matroska содержит один h.264 видеотрек и одну звуковую дорожку AC3. Должно быть возможно сделать это без потерь, но как сделать это с собственными инструментами Ubuntu?

Транскодирование не является опцией.

122
задан 26 June 2014 в 05:33

7 ответов

Возможно, самый легкий инструмент для этого ffmpeg, или avconv от libav-tools пакет. Libav является ветвлением FFmpeg, который Ubuntu, переключенная на в течение нескольких лет до Ubuntu 15.04. Это - один из бэкендов для многих инструментов GUI, упомянутых в других ответах.

Изменение контейнера без re-enconding содержания не могло быть более простым:

ffmpeg -i input.mkv -codec copy output.mp4
  • Это автоматически обнаруживает Matroska к контейнерному преобразованию MP4 на основе имен файлов ввода/вывода.

  • -codec copy потоковые копии, или "перемультиплексоры", потоки от входа до вывода без перекодирования. Думайте о нем как копия и вставка.

  • Потоковое поведение выбора по умолчанию состоит в том, чтобы выбрать только один поток на потоковый тип. Например, если Ваш вход будет иметь два видеопотока и один аудиопоток затем, то только видеопоток с самым большим форматом кадра будет выбран. Добавить -map 0 если Вы хотите выбрать все потоки из входа.

  • Некоторые контейнеры не могут поддерживать некоторые форматы. Так проверяют если Ваш выбранный формат контейнера, быть этим mkv, mp4 или даже avi имеет поддержку всего содержания в Ваших файлах (видео, аудио, подзаголовки, данные, и т.д.). Например, mp4 не поддерживает подзаголовки SubRip (.srt файлы).

166
ответ дан 22 November 2019 в 22:56

Получите необходимое программное обеспечение

sudo apt-get install gpac mkvtoolnix

Извлеките видео и аудио из matroska файла

Сначала необходимо проверить то, что отслеживает matroska файл, содержит с

mkvmerge --identify video.mkv

File 'video.mkv': container: Matroska
Track ID 1: video (V_MPEG4/ISO/AVC)
Track ID 2: audio (A_AC3)

Затем извлеките видео и аудио согласно их дорожкам с:

mkvextract tracks video.mkv 1:video.h264 2:audio.ac3

Extracting track 1 with the CodecID 'V_MPEG4/ISO/AVC' to the file 'video.h264'. Container format: AVC/h.264 elementary stream
Extracting track 2 with the CodecID 'A_AC3' to the file 'audio.ac3'. Container format: Dolby Digital (AC3)
Progress: 100%

Мультиплексируйте аудио и видео в mp4 containter

MP4Box -fps 24 -add video.h264 -add audio.ac3 video.mp4

AVC-H264 import - frame size 1280 x 720 at 24.000 FPS
Import results: 31671 samples - Slices: 5672 I 125048 P 122648 B - 32288 SEI - 4936 IDR
AC3 import - sample rate 48000 - 6 channels
Saving to video.mp4: 0.500 secs Interleaving

Я должен был добавить -fps 24 опция, потому что MP4Box не обнаружил видео кадр/с правильно. В зависимости от использования AC3 аудиотрек должен быть повторно закодирован во что-то еще перед мультиплексированием.

Теперь Вы повторно мультиплексировали потоки от matroska контейнера в mp4 контейнер, не теряя качества.

Править: MP4 официально не поддерживает аудио AC3, таким образом, аудиотрек должен быть преобразован в поддерживаемый формат (например, AAC, MP3), если Вы хотите, чтобы файл был играем с чем-то еще, чем VLC.

25
ответ дан 22 November 2019 в 22:56

Можно попробовать РУЧНОЙ ТОРМОЗ путем добавления его PPA путем введения этого кода в терминал:

sudo add-apt-repository ppa:stebbins/handbrake-releases
-2
ответ дан 22 November 2019 в 22:56

Можно использовать Avidemux

Это имеет хороший графический интерфейс.

При преобразовании от mkv до mp4 это не повторно кодируется.

convertion сделан в течение минуты (для видео с 60 минутами).

  1. sudo apt-get install avidemux

  2. Откройте mkv файл в avidemux.

  3. Выберите безопасный режим, если запрошено.

  4. Оставьте видео как копию.

  5. Выберите File-> Properties. Проверьте, ли аудиокодек aac.

    1. Если аудиокодек НЕ является aac, выбрать aac(faac).
    2. Иначе оставьте его как copy. (Иногда использующий эту опцию аудио может быть вне синхронизации или искажено, в этом случае выбрать aac(faac) вместо этого.)
  6. Выбрать mp4 для формата.

  7. Избранное сохранение, выберите местоположение и введите имя файла с .mp4 как расширение.

Примечание: Иногда (шанс на ~10%) это может перестать работать. Затем используйте handbrake(re-encode).

Note2: существует две ссылки, которые помогают Вам:

http://www.ubuntugeek.com/avidemux-free-video-editor-designed-for-simple-cutting-filtering-and-encoding-tasks.html

http://www.ubuntugeek.com/how-to-convert-mkv-file-into-mp4-file-using-avidemux.html

11
ответ дан 22 November 2019 в 22:56

Так как Часть 14 MPEG поддерживает h.264 и AC3 исходно без транскодирования, можно просто переименовать файл, таким образом, это имеет .mp4 расширение вместо a .mkv расширение.

-2
ответ дан 22 November 2019 в 22:56

enter image description here

Можно использовать мое приложение, dmMediaConverter. Просто оставьте "копию" для обоих потоков проверенной (никакое транскодирование) и помещенный .mp4 к имени выходного файла.Именно. Очень простой. http://dmsimpleapps.blogspot.ro/2014/04/dmmediaconverter.html

2
ответ дан 22 November 2019 в 22:56

Используя ffmpeg, я пишу скрипт на Python это преобразует все файлы mkv текущего каталога в файлы mp4, поскольку преобразование их по одному раздражает.

При необходимости можно использовать.

Конвертировать MKV в MP4

0
ответ дан 27 September 2020 в 05:39

Другие вопросы по тегам:

Похожие вопросы: