Wie verkettet man 2 MP4-Videos zur Ausgabe einer bestimmten Bitrate?

Ich habe bereits die anderen Artikel über das Verketten gelesen, konnte aber keine finden, in denen die Angabe der Ausgabebitrate behandelt wird.

Ich habe 2 MP4-Videos.

Was ich tun möchte, ist, das erste Video auf 110% Geschwindigkeit zu beschleunigen (ohne die Tonhöhe zu ändern) und es dann mit dem zweiten Video zu verketten (das bei normaler Geschwindigkeit bleibt), und ich möchte, dass das resultierende Video eine Bitrate von 2,5 hat Mbps (da Wistia mir gesagt hat, dass dies das Minimum für meinen Upload sein sollte).

Derzeit führt mein erster Versuch zu einem Video, bei dem der zweite Teil vollständig verstümmelt ist und hellgrün usw. angezeigt wird. Mein zweiter Versuch (von Schritt 4) führt zu einem Video mit einer Gesamtbitrate von nur 1645 kbps.

Schritt 1:

In Adobe Premiere Pro CC 2017 habe ich 2 Videos exportiert, die jeweils diese Einstellungen verwenden:

Frame Rate: 30
Field Order: Progressive
Aspect: Square Pixels (1.0)
Profile: Main
Bitrate Encoding: CBR
Target Bitrate [Mbps]: 2.5
Audio Format: AAC
Audio Codec: AAC
Sample Rate: 48000 Hz
Bitrate [kbps]: 320

Schritt 2.

ffmpeg -i video1.mp4 -filter_complex "setpts=PTS/1.1;atempo=1.1" -c:v libx264 -x264-params "nal-hrd=cbr" -b:v 2.5M -minrate 2.5M -maxrate 2.5M -bufsize 5M video1_faster.mp4

Schritt 3. Erstellen Sie eine Textdatei mit diesem Inhalt:

file 'video1_faster.mp4'
file 'video2.mp4'

Schritt 4 (erster Versuch).

ffmpeg -f concat -safe 0 -i ffmpeg_concat_list.txt -c copy final.mp4

Schritt 4 (zweiter Versuch) (mit Neucodierung).

ffmpeg -i video1_faster.mp4 -i video2.mp4 -filter_complex "[0:v] [0:a] [1:v] [1:a] concat=n=2:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" -b:v 2.5M -minrate 2.5M -maxrate 2.5M -bufsize 5M final.mp4

Was mache ich falsch? Vielen Dank.

Die beiden Dateien getrennt sind OK? Welche Version von ffmpeg?
@rogerdpack Ja.version N-82889-g54931fd Copyright (c) 2000-2016 the FFmpeg developers built with gcc 5.4.0 (GCC)
ein paar Jahre alt, Git-Meister "kann" besser arbeiten, wer weiß ...

Antworten (2)

Schritt 4 (erster Versuch) funktioniert, wenn Sie das zweite Video wie das erste neu codieren (ohne die Filter).

Was passiert ist, dass x264 neben dem Zeitunterschied zwischen der Ausgabe von CC und der von ffmpeg (was nur zu Zeitfehlern führt) einen High-Profile-Stream mit einem anderen Parametersatz als der Encoder von CC erzeugt. Codieren Sie das zweite Video mit ffmpeg neu und Ihre Dateien sollten übereinstimmen. Alternativ können Sie in CC beschleunigen und das 1. Video exportieren.

Wow, diese einfache Idee ist mir irgendwie entgangen. Vielen Dank. Auch wenn ich es nach Möglichkeit vorziehe, eine Neucodierung zu vermeiden, bin ich in diesem Szenario möglicherweise bereit, da ich keine bessere Lösung gefunden habe. PS Meiner Erfahrung nach leistet FFmpeg einen besseren Job als Adobe Premiere Pro CC 2017, um ein Video zu beschleunigen und gleichzeitig die Tonhöhe beizubehalten. Premiere klang überraschenderweise ziemlich schlecht.
Exportieren Sie das Audio separat und filtern + codieren + muxen Sie es mit CC-beschleunigtem Video. Das Video muss dann nicht neu codiert werden.

Dies schien zu funktionieren (ungefähr *):

ffmpeg -i video1_faster.mp4 -i video2.mp4 -filter_complex "[0:v] [0:a] [1:v] [1:a]  concat=n=2:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" -c:v libx264 -x264-params "nal-hrd=cbr" -b:v 2.5M -minrate 2.5M -maxrate 2.5M -bufsize 5M final.mp4

Beachten Sie, wie ich den -c:v libx264 -x264-params "nal-hrd=cbr"Teil in "Schritt 4 (zweiter Versuch)" in meiner obigen Frage vermisst habe.

*Die Bitrate des Audios wurde auf 103 kbps verringert, obwohl die Audio-Bitraten der beiden Eingabedateien 317 kbps und 127 kbps betrugen. Mein nächstes Projekt wird also sein, herauszufinden, wie Schritt 2 verbessert werden kann, um die Audio-Bitrate der Originaldatei beizubehalten, und dann Schritt 4 zu verbessern, um die Audio-Bitraten wieder beizubehalten.

Ich würde es definitiv vorziehen, die (bessere) Antwort eines anderen zu akzeptieren.

Ich würde den Bitratenrichtlinien von Wistia oder den meisten anderen Websites nicht viel Aufmerksamkeit schenken. Sie werden für ein Massenpublikum herausgegeben und sollen sichere Stockwerke sein, da die meisten Consumer- und sogar professionellen Video-Editoren keine Encoder haben, die VBR gut machen. Nicht der Fall für x264/5 und ffmpeg/fdk AAC. Wenn es gut aussieht und sich gut anhört, ist alles in Ordnung.
@Gyan Das stimmt wahrscheinlich im Allgemeinen. In diesem Fall war es keine Richtlinie für die Öffentlichkeit, sondern aus einer E-Mail-Diskussion zwischen mir und dem Wistia-Supportteam, da mein Video auf verschiedenen Geräten nicht gut funktionierte und ihre Anweisung lautete, das Video zumindest erneut hochzuladen 2500 kbit/s.