Konvertieren Sie MKV mit DTS-Sound in MP4-Video mit AAC- oder AC3-Audio

13

Ich habe einen 4,3 GB 720p-Film und möchte diesen MKV mit DTS-Sound in MP4-Video mit AAC- oder AC3-Audio konvertieren.

Ich bekomme manchmal:

ffmpeg: unrecognized option '-c:v'

…und:

aac unrecognized

¬und andere ähnliche Sachen.

Ich möchte, dass dieser Film so klein ist wie auf Torrent-Sites.

Tal
quelle
Können Sie uns bitte helfen und uns den genauen Befehl geben, den Sie verwenden, und die vollständige, ungeschnittene Ausgabe, die FFmpeg erzeugt? Auf welchem ​​Betriebssystem bist du? Und zu guter Letzt: Haben Sie haben FFmpeg zu benutzen? Bitte bearbeiten Sie Ihre Frage.
Slhck

Antworten:

19

Stellen Sie sicher, dass Sie die neueste Version von FFmpeg ausführen . Für Windows und Linux sind statische Builds von der Homepage verfügbar. Unter macOS können Sie FFmpeg über Homebrew installieren .

Dann führen Sie im einfachsten Fall Folgendes aus:

ffmpeg -i input.mkv -c:v libx264 -c:a aac out.mp4

Einstellen der Videoqualität

Für die Videoqualität zu steuern, setzen Sie die crfParameter , die standardmäßig auf 23 Lower bedeutet eine bessere Qualität, aber höhere Dateigröße. Probieren Sie Werte zwischen 19 und 26 aus, um festzustellen, was am besten passt. Sie können auch eine bestimmte Bitrate festlegen, je nachdem, welche Dateigröße Sie möchten. Hier zum Beispiel 500 kBit / s:

ffmpeg -i input.mkv -c:v libx264 -crf 23 …
ffmpeg -i input.mkv -c:v libx264 -b:v 500k …

Für Audio können Sie auch die Bitrate mit einstellen -b:a.

Mehrkanal-Audio

Wenn Ihr Audiostream mehrere Kanäle verwendet (z. B. 5.1-Sound), müssen Sie einen anderen AAC-Encoder ( libfdk_aac) verwenden. Dieser Encoder ist in den statischen Builds nicht verfügbar, kann jedoch mit den vorgefertigten / Homebrew-Versionen von ffmpeg bezogen werden.

ffmpeg -i input.mkv -c:v libx264 -crf 23 -c:a libfdk_aac -b:a 384k out.mp4

Alle Streams kopieren

Wenn Ihre Eingabedatei mehr als einen Video-, Audio- und Untertitel-Stream enthält, konvertiert ffmpeg standardmäßig nicht alle.

Verwenden Sie -map 0diese Option, um ffmpeg anzuweisen, alle Streams aus der Eingabedatei zu übernehmen ( weitere Informationen finden Sie im FFmpeg-Wiki ). Dies ist nützlich, um verschiedene Sprachen und Untertitel beizubehalten, die möglicherweise im Original enthalten sind.

ffmpeg -i input.mkv -c:v libx264 -c:a aac -map 0 out.mp4
slhck
quelle
2

MKV ist nur ein Container. Sie können ein MPEG-4-Video in einem .mkvContainer haben.

Mein Vorschlag ist folgender:

Schieben Sie die Datei in einen .mkvContainer:

mkvmerge -o newfile.mkv inputfile.m4v

Holen Sie sich das hier verfügbaremkvdts2ac3.sh Skript und führen Sie den folgenden Befehl aus:

mkvdts2ac3.sh newfile.mkv

Erledigt!

Mein Fernseher unterstützt AC3, aber nicht DTS, daher tut dieses Setup Wunder für mich.

Bitte beachten Sie, dass mkvdts2ac3.sheinige Abhängigkeitsanforderungen sehr grundlegend sind. Sie werden sie sehen, wenn Sie das Skript ausführen.

UtahJarhead
quelle
root @ Frenzen: ~ / Downloads / 2.Days.In.New.York.2012.720p.BluRay.X264-7SinS # mkvmerge -o 7s-2days-in-ny-720p.mkv inputfile.m4v mkvmerge v3.0.0 (' Auflegen Ihrer Hang-Ups ') erstellt am 29. Dezember 2009 00:24:14 Fehler: Die Quelldatei' inputfile.m4v 'konnte nicht erfolgreich geöffnet werden, oder das Abrufen ihrer Größe durch Suchen bis zum Ende hat nicht funktioniert. root @ Frenzen: ~ / Downloads / 2.Days.In.New.York.2012.720p.BluRay.X264-7SinS #
Dale
Klingt nach einer beschädigten Eingabedatei.
UtahJarhead
@dale Könnten Sie bitte die Ausgabe, um die ich Sie gebeten habe, in den Kommentar zu Ihrer ursprünglichen Frage aufnehmen? Dies würde uns helfen, Ihr Problem zu beheben.
Slhck
Außerdem, UtahJarhead, scheint das OP eine MP4-Ergebnisdatei aus einer MKV-Eingabedatei zu wollen. Er hat keine m4vDatei, weshalb Ihr Befehl nicht funktioniert. Außerdem verwendete Dale die falsche Syntax, indem er seine vorhandene Datei als Ausgabe spezifizierte und inputfile.m4vals Eingabe gab, was offensichtlich nicht existiert.
Slhck
mp4 ist ein Codec, kein Container. mkv ist ein Container, kein Codec. Das ist wie zu sagen, dass sie aus einem Cadillac eine Garage machen wollen. Welcher Codec ist die eingegebene .mkv-Datei, da dies einen Unterschied machen kann.
UtahJarhead
1

Sie können dies tun:

ffmpeg -i input.mkv -c:v copy -c:a libfaac out.mp4

Oder wenn es keine Freude gibt, versuchen Sie, den internen Bitstrom zu reparieren

Umstellung auf Stereo und Asc:

ffmpeg -i input.mkv -c:v copy -c:a libfaac    \
-bsf:a aac_adtstoasc -ac 2 -ar 48000 -ab 256k \
out.mkv

Wenn es sich um 5.1 handelt, sind Surround und die Stimmen schwer zu hören, da sich der Dialog auf dem mittleren Kanal befindet und Sie nur das Off-Mikrofon von den R & L-Kanälen hören, aber die Musik und die Soundeffekte boomt.

Sie können dies mit einem Dolby-II-Filter kompensieren, um den Surround-Kanal zu verkleinern und den mittleren Kanal in Stereo aufzuteilen und alle in rechten und linken Stereokanälen zu kombinieren.

ffmpeg -i input.mkv -c:v copy -c:a libfaac -bsf:a aac_adtstoasc   \
  -af aresample=matrix_encoding=dplii -ac 2 -ar 48000 -ab 256k    \
  out.mkv
Chris Reid
quelle
0

Wie @UtahJarhead sagte , ist MKV der Container. Grundsätzlich möchten Sie DTS-Audio in AC3 oder AAC konvertieren.

Der beste Weg, dies zu tun, ist die Verwendung von FFmpeg für Audio und MKVToolNix zum Zusammenführen von Audio und Video.

Wenn Sie eine grafische Benutzeroberfläche anstelle von Befehlen bevorzugen, habe ich hier Folgendes beschrieben: Konvertieren Sie nicht unterstütztes Audio aus Video .

IvanRF
quelle
1
Sie sollten den Vorgang hier beschreiben und dann und nur dann den Download-Link zur Anwendung bereitstellen.
Ramhound
@ Ramhound Ich habe gerade die Antwort bearbeitet
IvanRF