Konvertieren Sie Video von 24 fps auf 25, verkürzen Sie die Länge (keine Frame-Duplizierung), behalten Sie die Tonhöhe bei

Ich habe ein .mov-Video mit 24 fps und 5.1-Audio.

Ist es möglich, die Framerate ohne Frame-Resampling von 24 auf 25 fps zu ändern (keine Frame-Duplizierung / -Entfernung - nur neue Frameraten-Interpretation) und die Tonhöhe gleich zu halten?

Normalerweise tun Sie dies, indem Sie die Frame-Daten nicht neu abtasten, sondern das Video-Flag von 24 auf 25 fps setzen. Es besteht jedoch die Notwendigkeit, das Audio so anzupassen, dass es verkürzt wird. Ist es möglich, alles in einer ffmpeg-Befehlszeile oder vielleicht in mehr als einer zu erledigen und dafür eine Batch-/Bash-Datei vorzubereiten?

Sind die Audioverarbeitungsfunktionen von ffmpeg von professioneller Qualität oder von geringer Qualität im Vergleich zu professionellen Algorithmen wie Avid Pro Tools und Adobe Audition?

Hinweis: Diese Frage unterscheidet sich von dieser Frage Video von 24 auf 25 fps umwandeln, während die Video- und Audiolänge beibehalten und auch die Tonhöhe korrigiert wird .

Hier möchte ich wissen, wie man dasselbe macht, aber die tatsächliche Länge des Videos verkürzt und den Ton entsprechend anpasst , um die Tonhöhe auf professionelle Weise beizubehalten.

Bitte erstellen Sie eine separate Frage für Ihre Frage zur Qualität von ffmpeg. Außerdem verwechseln Sie einen Codec (Prores) und ein Programm (Audition und ffmpeg).
Entschuldigung, ich war müde, ich wollte Avid Pro Tools beabsichtigen
Welcher Videocodec?
@Mulvya spielt es eine Rolle? Jedenfalls h264. Für den Audio-Codec möchte ich auch das ursprüngliche pcm audio wav raw als Ausgabeformat beibehalten.

Antworten (1)

Wenn Ihr Eingabestream keine B-Pyramide hat, dh B-Frames, die als Referenzen für andere B-Frames verwendet werden, und Ihr ffmpeg-Build librubberband verknüpft hat, verwenden Sie die folgenden Befehle:

#1 Video in Raw-Stream extrahieren

ffmpeg -i in.mkv -c copy in.h264

#2 Audio neu timen und verarbeiten

ffmpeg -r 25 -i in.h264 -i in.mkv -map 0 -map 1:a -af rubberband=tempo=1.04166 -c:a pcm_s16le out.mkv

Wenn Ihr H264-Stream Referenz-B-Frames enthält, müssen Sie mp4box als Vermittler verwenden.

dh

#2a Retime-Video

mp4box -add in.h264#fps=25 -new in25.mp4

#2b Audio verarbeiten und Video hinzufügen

ffmpeg -i in25.mp4 -i in.mkv -map 0 -map 1:a -af rubberband=tempo=1.04166 -c:a pcm_s16le out.mkv
Ist es nicht möglich, einen Single-Pass-Befehl mit atempo zu wirken? Ich habe versucht, einen Befehl wie: ffmpeg -i input.mov -r 25 -c:v libx264 -preset ultrafast -crf 18 -c:a libfdk_aac -filter:v "setpts=0.96*PTS" -filter:a "atempo=1.0417" output.movIch bin mir bei der Tonhöhe jedoch nicht sicher. Wie auch immer, entschuldigen Sie die anfängliche Verwirrung über h264 als Eingabevideo.. Im Allgemeinen ist meine Eingabe ein ProRes, DNxHD-Codec.. (wäre cool, einen Befehl zu haben, der könnte für jede Art von Eingabe funktionieren)
atempowird die Tonhöhe verändern. Es gibt einen neuen nativen Filter, der bald zu ffmpeg hinzugefügt wird, der Tempoänderungen ohne Tonhöhenänderung ermöglicht, aber seine Qualität ist nicht so gut wie Gummiband.
Ich verstehe, also ... kann ich Gummiband in nur einer Passage verwenden, wie ich es für Atempo vorgeschlagen habe?