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.
Chromecast
StützeH.264
mitAAC
oderMP3
in einemMP4
Container sehr nützlich gefunden . Es ist sehr einfach, Videos von Ihrem Computer aufChromecast
Chrome mit der Google Cast-Erweiterung zu streamen . Ziehen Sie einfach eine DateiMP4
mit der richtigen Stream-Codierung per Drag & Drop in ein Browserfenster und starten Sie das Streaming.Antworten:
Vielleicht ist das einfachste Werkzeug dafür
ffmpeg
, oderavconv
aus demlibav-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 Wechseln des Containers ohne erneutes Einfügen von Inhalten könnte nicht einfacher sein:
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 ein Kopieren und Einfügen vor.Das Standardverhalten bei der Stream-Auswahl besteht darin, nur einen Stream pro Stream-Typ 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. Hinzufügen,
-map 0
wenn Sie alle Streams aus der Eingabe auswählen möchten.Einige Container unterstützen möglicherweise einige Formate nicht. So überprüfen Sie, ob Ihr gewähltes Container - Format, sei es
mkv
,mp4
oder sogaravi
hat Unterstützung für alle Inhalte in Dateien (Video, Audio, Untertitel, Daten, usw.).mp4
Unterstützt beispielsweise keine SubRip-Untertitel (.srt
Dateien).quelle
avconv -i input.mkv -c:v copy -c:a libfaac output.mp4
belassen : (Ich habe ffmpeg verwendet, ich gehe davon aus, dass avconv hier die gleichen Befehlszeilenargumente hat)-map 0
beiden audio streams zu bekommen? Wie ich in der Antwort sagte: "Standard-Stream-Auswahlverhalten ist, nur einen Stream pro Stream-Typ auszuwählen"-c:s mov_text
Option, wenn Sie z.srt
Untertitelspur.Holen Sie sich die benötigte Software
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
Dann extrahieren Sie Video und Audio entsprechend ihrer Spuren mit:
mkvextract tracks video.mkv 1:video.h264 2:audio.ac3
Mux Audio und Video in MP3-Container
MP4Box -fps 24 -add video.h264 -add audio.ac3 video.mp4
Ich musste die
-fps 24
Option hinzufügen, daMP4Box
Video-FPS nicht richtig erkannt wurden. Abhängig von der VerwendungAC3
sollte der Audiotrack 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.
quelle
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).
sudo apt-get install avidemux
Öffnen Sie die mkv-Datei in Avidemux.
Wählen Sie den abgesicherten Modus, wenn Sie dazu aufgefordert werden.
Lass das Video als Kopie.
Wählen Sie Datei-> Eigenschaften. Überprüfen Sie, ob der Audio-Codec ist
aac
.aac(faac)
.copy
. (Wenn Sie diese Option manchmal verwenden, ist der Ton möglicherweise nicht synchron oder verzerrt. Wählen Sie in diesem Fallaac(faac)
stattdessen.)Wählen Sie
mp4
für das Format.Wählen Sie Speichern, Speicherort und geben Sie einen Dateinamen
.mp4
als Erweiterung ein.Hinweis: Manchmal (mit einer Wahrscheinlichkeit von ca. 10%) kann dies fehlschlagen. Dann benutze
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
quelle
Sie können meine Anwendung dmMediaConverter verwenden . Lass einfach " copy " für beide Streams aktiviert (keine Transcodierung) und setze .mp4 als Ausgabedateinamen. Das ist es. Sehr einfach. http://dmsimpleapps.blogspot.ro/2014/04/dmmediaconverter.html
quelle
Da MPEG Part 14 h.264 und AC3 nativ ohne Transcodierung unterstützt, können Sie die Datei einfach umbenennen, sodass sie eine
.mp4
Erweiterung anstelle einer.mkv
Erweiterung aufweist.quelle
Sie können HANDBRAKE ausprobieren, indem Sie die PPA hinzufügen, indem Sie diesen Code in das Terminal eingeben:
quelle