Ich habe eine MKV-Datei mit H.264-Video und AAC-Audio. Bei FFmpeg ist der Standard-Audiocodec für MKV AC3. Wenn Sie also einen Befehl wie diesen ausführen:
ffmpeg -i infile.mkv -ac 2 outfile.mkv
es wird das Audio in AC3 transkodieren. Ich kann diesen Befehl ausführen und alles ist gut
ffmpeg -i infile.mkv -ac 2 -c:a libfdk_aac outfile.mkv
Gibt es jedoch eine Möglichkeit, „den Eingabecodec verwenden“ zu sagen? Beachten Sie, dass dies copy
nicht funktioniert, da ich eine Änderung am Audiostream vornehme.
Antwort1
Eine solche Option gibt es meines Wissens nicht. Sie müssen explizit angeben, die Standardeinstellungen verwenden oder zusätzliche Skripte ausführen.
Wenn Sie der Meinung sind, dass dies als Funktion implementiert werden sollte, können Sie eine Funktionsanforderung auf derFFmpeg-Fehlerverfolgung(Suchen Sie zuerst, ob bereits eines vorhanden ist).
Beachten Sie, dass sich der Standardencoder für Ihr Ausgabecontainerformat je nach den von Ihnen unterstützten externen Codierungsbibliotheken ändern kann. Wenn Ihr ffmpeg
Build beispielsweise libvorbis unterstützt, wird es für MKV-Ausgaben dieses anstelle von ac3 verwenden.
ffprobe
kann helfen:
$ ffprobe -v 0 -of flat=s=_ -select_streams a:0 -show_entries stream=codec_name input.mkv
streams_stream_0_codec_name="aac"
Dies ist natürlich möglicherweise nur von begrenztem Nutzen, da es codec_name
sich möglicherweise nicht um den Namen des gewünschten Encoders handelt.