Möchte den Audio-Codec ändern, aber die Videoeinstellungen mit ffmpeg beibehalten


26

Ich habe ein Video, für das ich den Audio-Codec in AAC 320 kbps / 44.100 kHz konvertieren möchte. Was würde ich für ffmpeg-Schalter verwenden, damit alle Videoeinstellungen und der Codec unverändert bleiben, aber nur der Audio-Codec und die Einstellungen geändert werden?

Hier ist mein Video:

$ ffmpeg -i Winnipeg.rb\ Scala-Talk.mov 
FFmpeg version SVN-r25375, Copyright (c) 2000-2010 the FFmpeg developers
  built on Oct  6 2010 13:02:41 with gcc 4.2.1 (Apple Inc. build 5664)
  configuration: --enable-libmp3lame --enable-shared --disable-mmx --arch=x86_64
  libavutil     50.32. 2 / 50.32. 2
  libavcore      0. 9. 1 /  0. 9. 1
  libavcodec    52.92. 0 / 52.92. 0
  libavformat   52.80. 0 / 52.80. 0
  libavdevice   52. 2. 2 / 52. 2. 2
  libavfilter    1.48. 0 /  1.48. 0
  libswscale     0.12. 0 /  0.12. 0

Seems stream 0 codec frame rate differs from container frame rate: 2000.00 (2000/1) -> 10.00 (10/1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Winnipeg.rb Scala-Talk.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
  Duration: 01:10:53.00, start: 0.000000, bitrate: 283 kb/s
    Stream #0.0(eng): Video: h264, yuv420p, 800x598, 94 kb/s, 10 fps, 10 tbr, 1k tbn, 2k tbc
    Stream #0.1(eng): Audio: adpcm_ima_qt, 22050 Hz, 1 channels, s16
    Stream #0.2(eng): Audio: adpcm_ima_qt, 22050 Hz, 1 channels, s16
At least one output file must be specified

Vielen Dank im Voraus! Eine Sache mit ffmpeg, die ich noch nie erlebt habe, ist, wie man einfach Dateien "zwickt", ohne jede kleine Einstellung für Dinge, die man nicht ändern möchte, wieder auffliegen zu müssen.


Das Audio (wie auch das Video) scheint von relativ geringer Qualität zu sein. Beachten Sie, dass Sie die Qualität des Audios nicht erhöhen können, indem Sie das Format ändern, die Abtastrate erhöhen und die Bitrate erhöhen.
Force Flow

Antworten:


34

Eine Zusammenfassung von Ehsans Antwort mit Fletoms Kommentar, die dank beidem für mich funktioniert.

ffmpeg -i input.avi -acodec mp3 -vcodec copy out.avi

nur zum -vcodec copy
nachschlagen,

2
Können Sie Ihre Antwort ein wenig erweitern, um es zu erklären? Vielen Dank.
Fixer1234

2
-i input.aviGibt die zu konvertierende Datei an. out.aviist die konvertierte Datei. -acodec mp3sagt, dass der Audio-Stream in MP3 konvertiert werden soll, während er in die Ausgabedatei geschrieben wird. vcodec copysagt nur, den Videostream in die Ausgabedatei zu kopieren, ohne ihn zu ändern.
Wodin

8

Schwer zu beurteilen, was Sie tun, da der Befehl ffmpeg in Ihrem Beitrag etwas verstümmelt war.

So ersetzen Sie eine Audiospur:

ffmpeg -i test.avi -i normalized.mp3 -map 0:0 -map 1:0 -vcodec copy -acodec copy new_test.avi

Weitere Informationen zu den oben genannten Parametern finden Sie in: FFmpeg-Dokumentation .


1
Vielen Dank. Das hat mein Problem gelöst. Wenn ich laufe, ffmpeg -i old.mkv -i onlySound.m4a out.mkvdauert die Operation viel länger. Warum ist das so?
Zeta.Investigator

6

Wenn Sie nur die Audio- und / oder Videocodecs ändern möchten, können Sie diese einfach als Parameter hinzufügen:

Ändern Sie einfach den Audio-Codec in mp3 (was auch immer der ursprüngliche Codec war)

ffmpeg -i input.avi -acodec mp3 out.avi

Ändern Sie einfach den Video-Codec auf h264

ffmpeg -i input.avi -vcodec h264 out.avi

Es ist gut zu wissen, dass ffmpeg die Codierung des neuen Codecs unterstützen muss. Siehe /programming/3377300/what-are-all-codecs-supported-by-ffmpeg


5
Das hat bei mir funktioniert, aber ich musste es hinzufügen, -vcodec copyum zu verhindern, dass es versucht, mein Video in h.264 umzucodieren. Keine Ahnung, warum es das standardmäßig getan hat.
Fletom

-1

Warum benutzt du nicht Handbrake, mit der du das Video behalten und das Audio ändern kannst und es ist eine GUI für FFmpeg und es funktioniert wie ein Zauber.


3
HandBrake kann das eigentlich nicht; Es kann eine einfache Kopie von Audio- oder Untertitel-Streams erstellen, codiert das Video jedoch immer neu.
Evilsoup
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.