Ihre Dateien werden nicht ordnungsgemäß verknüpft, da etwas nicht übereinstimmt.
Wie viele andere hatte ich Probleme mit der ordnungsgemäßen Synchronisierung von Sound in zusammengeführten Videos. und während MP4Box gut funktioniert, wenn die Clips identische Spezifikationen haben, würde ich in einigen Fällen von der Meldung "Keine geeignete Zielspur gefunden - neue erstellen" überrascht. In diesem Fall würde Totem (auch bekannt als Videos) dieses Segment in der verknüpften Datei nicht abspielen Nach einigem Ausprobieren und weiteren Nachforschungen habe ich die folgende Methode für den Umgang mit dem Verbinden von Videos entwickelt, die bisher jedes Mal mit akzeptabler (für mich) Qualität funktioniert hat.
Wenn die Bildgrößen nicht übereinstimmen (Verbindungsfehler bei Videospuren):
Normalisieren Sie Videos, ohne das Audio zu stören (-c: eine Kopie), indem Sie Einschränkungen (teilbar durch 8 für maximale Codec-Kompatibilität) für nicht übereinstimmende Segmente festlegen
Beispielbefehle
width=856
height=480
avconv -i input.mp4 -filter:v "scale=iw*min($width/iw\,$height/ih):ih*min($width/iw\,$height/ih), pad=$width:$height:($width-iw*min($width/iw\,$height/ih))/2:($height-ih*min($width/iw\,$height/ih))/2" -c:a copy output.mp4
Wenn Audio nicht übereinstimmt (Verbindungsfehler in Bezug auf Audiospuren):
Audio normalisieren
Verarbeiten Sie Audio, ohne das Video zu stören (c: v-Kopie), sodass alle Clips dem gewünschten Codec, der gewünschten Frequenz und Bitrate mit c: einer Codec -ar-Frequenz wie -ar 48000 und einer Bitrate mit b: 128k für Stereo (64K pro) entsprechen Kanal scheint ein gutes Ziel zu sein) oder was auch immer passt.
Beispiel: avconv -i input.mp4 -c:v copy -c:a libmp3lame -ar 48000 b:a 128k output.mp4
(Beachten Sie, dass libmp3lame ist ein Codec für MP3 - Audio) Sie können eine Liste von avconv unterstützten Encodern erhalten , indem Sie den Befehl ausgeben avconv -codecs
oder Dinge zu verengen , um einen bestimmten codiert avconv -codecs|grep *codecname*
zum Beispielavconv -codecs|grep mp3
Nachdem wir die Dateien normalisiert haben, können wir sie verbinden. In diesem Beispiel werde ich die Dateien mit MP4Box verbinden. Wenn Sie es nicht haben, können Sie es durch Ausgabe des Befehls erhaltensudo apt-get install gpac
Verbinden Sie die Dateien mit dem Befehl MP4Box file1.mp4 -cat file2.mp4 -cat file3.mp4 -cat file4.mp4 -out joinedfile.mp4
(beachten Sie, dass vor der ersten Datei keine Katze steht und jeder zusätzlichen Datei -cat und der Zieldatei -out vorangestellt ist)
Wenn Sie MP4Box (empfohlen für MP4) zum Beitreten verwenden, müssen Sie möglicherweise alle Clips mit avconv verarbeiten, ob die Spezifikationen übereinstimmen oder nicht, um den Fehler „Keine geeignete Zielspur gefunden - neue erstellen (Typ vide)“ zu vermeiden.
Hinweis: Ich habe festgestellt, dass Avidemux aufgrund der B-Frames als Referenz Probleme mit Videos hat, die mit H.264 / AVC-Dateien (pro Totem) codiert wurden. Dies scheint zu einem nicht synchronen Audio beim Beitritt zu führen, selbst wenn Audio und Video ohne Remux kopiert werden sollen. Abstürze, wenn der abgesicherte Modus nicht gewählt wird, und nicht synchron, wenn der abgesicherte Modus verwendet wird
Quellen:
/superuser/547296/resizing-videos-with-ffmpeg-avconv-to-fit-into-static-sized-player
/programming/20703160/problems-with-setting-constant-bitrate-by-using-avconv
https://trac.ffmpeg.org/wiki/Encode/AAC#fdk_cbr
Hinweis: Soweit ich weiß, gelten für andere Formate (Container) ähnliche Einschränkungen für die Anpassung von Bildgröße und Audioraten. Dies kann daher auch für AVI funktionieren, wenn Sie nach dem Normalisieren von Video und Audio versuchen, die Verbindung über Cat oder Mencoder herzustellen .
Optional: Verwenden Sie Handbremse, um die verknüpfte Datei bei Bedarf mit einer variablen Bildrate und einer konstanten Qualitätseinstellung von 25 für eine kleinere Größe neu zu codieren (empfohlene Einstellungen - passen Sie sie nach Bedarf an Ihre Material- und Qualitätserwartungen an).