it-swarm.com.de

Wie kann ich eine .mkv-Datei verlustfrei in eine .mp4-Datei konvertieren?

Ich muss eine Videodatei vom Matroska-Container in den mp4-Container konvertieren. Die Matroska-Datei enthält eine h.264-Videospur und eine AC3-Tonspur. Es sollte möglich sein, dies verlustfrei zu machen, aber wie geht das mit nativen Ubuntu-Tools?

Das Umcodieren ist keine Option.

120
Seppo Erviälä

Das vielleicht einfachste Werkzeug dafür ist ffmpeg oder avconv aus dem libav-tools -Paket. Libav ist ein Fork von FFmpeg, zu dem Ubuntu für einige Jahre bis zum Ubuntu 15.04 gewechselt hat. Es ist eines der Backends für viele der in anderen Antworten erwähnten GUI-Tools.

Das Ändern des Containers ohne erneutes Einfügen von Inhalten könnte nicht einfacher sein:

ffmpeg -i input.mkv -codec copy output.mp4
  • Es erkennt automatisch eine Konvertierung von Matroska in MP4-Container anhand der Eingabe-/Ausgabedateinamen.

  • -codec copy Stream kopiert oder "re-muxt" die Streams von der Eingabe zur Ausgabe, ohne sie neu zu codieren. Stellen Sie es sich wie eine Kopie vor und fügen Sie es ein.

  • Das Standardverhalten bei der Streamauswahl besteht darin, nur einen Stream pro Streamtyp auszuwählen. Wenn Ihre Eingabe beispielsweise zwei Videostreams und einen Audiostream enthält, wird nur der Videostream mit der größten Bildgröße ausgewählt. Fügen Sie -map 0 hinzu, wenn Sie alle Streams aus der Eingabe auswählen möchten.

  • Einige Container unterstützen möglicherweise einige Formate nicht. Überprüfen Sie also, ob das von Ihnen gewählte Container - Format, sei es mkv, mp4 oder sogar avi, alle Inhalte in Ihrem Format unterstützt Dateien (Video, Audio, Untertitel, Daten usw.). Beispielsweise unterstützt mp4 keine SubRip-Untertitel (.srt -Dateien).

163
MestreLion

Holen Sie sich die benötigte Software

Sudo apt-get install gpac mkvtoolnix

Extrahieren Sie Video und Audio aus einer Matroska-Datei

Zuerst müssen Sie überprüfen, welche Spuren die Matroska-Datei enthält

mkvmerge --identify video.mkv

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

Dann extrahieren Sie Video und Audio entsprechend ihrer Spuren mit:

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%

Mux Audio und Video in MP3-Container

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

Ich musste die Option -fps 24 hinzufügen, da MP4Box Videofps nicht richtig erkannt hat. Abhängig von der Verwendung AC3 sollte die Audiospur vor dem Muxen neu codiert werden.

Jetzt haben Sie Streams vom Matroska-Container in den MP4-Container verschoben, ohne an Qualität zu verlieren.

BEARBEITEN: MP4 unterstützt offiziell kein AC3-Audio, daher sollte die Audiospur in ein unterstütztes Format (z. B. AAC, MP3) konvertiert werden, wenn die Datei mit etwas anderem als VLC wiedergegeben werden soll.

25
Seppo Erviälä

Sie können Avidemux verwenden

Es hat eine gute GUI-Schnittstelle.

Bei der Konvertierung von mkv nach mp4 wird es nicht neu codiert.

Die Konvertierung erfolgt innerhalb einer Minute (für ein 60-minütiges Video).

  1. Sudo apt-get install avidemux

  2. Öffnen Sie die mkv-Datei in Avidemux.

  3. Wählen Sie den abgesicherten Modus, wenn Sie dazu aufgefordert werden.

  4. Lass das Video als Kopie.

  5. Wählen Sie Datei-> Eigenschaften. Überprüfen Sie, ob der Audio-Codec aac ist.

    1. Wenn der Audio-Codec NICHT AAC ist, wählen Sie aac(faac).
    2. Belassen Sie es andernfalls als copy. (Wenn Sie diese Option manchmal verwenden, ist der Ton möglicherweise nicht synchron oder verzerrt. Wählen Sie in diesem Fall stattdessen aac(faac).)
  6. Wählen Sie mp4 für das Format.

  7. Wählen Sie Speichern, Speicherort und geben Sie einen Dateinamen mit der Erweiterung .mp4 ein.

Hinweis: Manchmal (~ 10% Wahrscheinlichkeit) kann es fehlschlagen. Verwenden Sie dann handbrake(re-encode).

Hinweis 2: Es gibt zwei Links, die Ihnen helfen:

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
loksena

enter image description here

Sie können meine Anwendung verwenden, dmMediaConverter . Lass einfach " copy " für beide Streams aktiviert (keine Transcodierung) und setze . Mp4 auf den Namen der Ausgabedatei. Das ist es. Sehr einfach. http://dmsimpleapps.blogspot.ro/2014/04/dmmediaconverter.html

2
mdalacu