Мне нужно преобразовать видеофайл из контейнера Matroska в контейнер mp4. Файл Matroska содержит одну видеодорожку h.264 и одну звуковую дорожку AC3. Должно быть возможно сделать это без потерь, но как это сделать с помощью собственных инструментов Ubuntu?
Транскодирование не является вариантом.
sudo apt-get install gpac mkvtoolnix
Сначала вам нужно проверить, какие дорожки содержит файл matroska с
[ f5]
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%
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 не обнаружил видео fps правильно.
Теперь у вас есть ремуксированные потоки из контейнера matroska в контейнер mp4, не теряя при этом никакого качества.
EDIT : MP4 официально не поддерживает аудио AC3, поэтому звуковая дорожка должна быть преобразована в поддерживаемый формат (например, AAC, MP3), если вы хотите, чтобы файл воспроизводился с чем-то другим, чем VLC.
У этого есть хороший интерфейс GUI.
При преобразовании из mkv в mp4 он не перекодирован.
(в течение 60 минут).
sudo apt-get install avidemux Откройте файл mkv в avidemux. При появлении запроса выберите безопасный режим. Оставьте видео как копию. Выберите «Файл-> Свойства». Проверьте, является ли аудиокодек aac. Если аудиокодек НЕ aac, выберите aac(faac). В противном случае оставьте его как copy. (Иногда с использованием этой опции звук может быть не синхронизирован или искажен, в этом случае выберите aac(faac).) Выберите mp4 для формата. Выберите сохранение, выберите местоположение и введите имя файла с .mp4 в качестве расширения.Примечание: Иногда (~ 10% шанс) он может выйти из строя. Затем используйте handbrake(re-encode).
Примечание: есть две ссылки, которые помогут вам:
http://www.ubuntugeek.com/avidemux-free -video-editor-designed-for-simple-cutting-filtering-and-encoding-tasks.html
Вы можете использовать мое приложение, . Просто оставьте «copy» для обоих проверенных потоков (без перекодирования) и поместите .mp4 в имя выходного файла. Вот и все. Очень просто. http://dmsimpleapps.blogspot.ro/2014/04/dmmediaconverter.html
Поскольку MPEG Part 14 поддерживает h.264 и AC3 изначально без транскодирования, вы можете просто переименовать файл, чтобы он имел расширение .mp4 вместо расширения .mkv.
Вы можете попробовать HANDBRAKE, добавив его PPA, введя этот код в терминал:
sudo add-apt-repository ppa:stebbins/handbrake-releases