Bereits nach dem Segment- / Transcodeschritt hat jedes Segment am Anfang seines Audiostroms eine kurze Stille, die dann an jedem Klebepunkt im verketteten Video hörbar ist. Ich habe einige Testvideos ausprobiert und es gab nur 1, bei dem ich diese Stille nicht hören konnte.
Jetzt frage ich mich, ob es eine Möglichkeit gibt, die oben beschriebene trim / concat-Lösung zu verwenden, aber einen "Transcode jedes Segment separat vor dem concat" -Schritt enthalten. Möglicherweise muss dies in drei Befehlen erreicht werden, dh in Segmente schneiden, jedes Segment transkodieren, transkodierte Concat-Segmente und können nicht alle mit demselben Befehl ausgeführt werden.
Bei dem Ansatz, den ich ausprobiert habe, wo ich Suchen und Transcodieren verwendet habe, sind diese Audioprobleme aufgetreten, und ich vermute, dass sie während der Transcodierung jedes Segments eingeführt wurden. Ich bin mir nicht sicher, ob dies auf den Ansatz zurückzuführen ist, den ich ausprobiert habe und der mit einem Trim-Filter (oder einem anderen Filter?) Mit nachfolgender Transkodierung vermieden werden kann, aber einen Befehl oder eine Befehlssequenz, die dies erreichen könnte, nicht kennt.
Ihre Anforderung ist etwas verwirrend. Die vorgeschlagene Lösung, auf die Sie sich beziehen, ** codiert ** jedes Segment. Es war jedoch beabsichtigt, bestimmte Abschnitte aus einem Video zu extrahieren und nicht in Scheiben zu schneiden. Zu Ihrem Zweck können Sie einfach drei separate Transcodes für drei separate Start- und Endpunkte ausführen und dann verketten. Auch sollte es am Anfang keine "Stille" geben, wenn alles korrekt verläuft. Stellen Sie auch die Konsolenausgabe dieses Befehls bereit.
Rajib vor 9 Jahren
0
Ich habe gerade ein Stück aus dem Video geschnitten und einen separaten Befehl zum Transkodieren verwendet. Ich habe alle Beispieldateien hier hinzugefügt, wenn Sie einen Blick darauf werfen möchten, https://www.dropbox.com/sh/h09r1pm1f4mv5fh/AABJOg-zfXdJDNtwqiQjhHQEa?dl=0 mit zwei Screenshots, die den Audiostream in Audacity des Abschnitts und von zeigen das Stück nach der Transkodierung. Es scheint, dass am Anfang der transcodierten Datei Stille hinzugefügt wurde, nicht sicher, was ich falsch mache. Das Originalvideo ist mtb.mp4, der Chunk ist chunk1.mp4 und der transcodierte Chunk ist transcoded1.mp4. Ich habe auch eine .txt mit Befehlen und Konsolenausgabe hinzugefügt.
Mugba vor 9 Jahren
0
Warum versuchen Sie nicht `ffmpeg -i mtb.mp4 -ss 00 -t 5 -c: v libx264 -c: a aac -strict -2 transcoded1.mp4` auf einmal? (In diesem Fall brauchen Sie jedoch keine Startzeit). Bitte geben Sie auch die Konsolenausgabe hier anstelle von Dropbox an.
Rajib vor 9 Jahren
0
danke, ich habe Ihren Befehl mit dem nativen aac anstelle von libfdk_aac ausprobiert, siehe Konsolenausgabe oben. Leider gibt es zu diesem Zeitpunkt immer noch sehr kurze Stille am Anfang jedes Clips, den ich extrahiere und transkodiere, was hörbar ist, wenn ich die Segmente wieder zusammenhalte. Irgendeine Idee, wie das gelöst werden könnte?
Mugba vor 9 Jahren
0
@Rajib, hier scheint das Problem, das ich habe, zu beschreiben, obwohl es keine Lösung dafür gibt, https://lists.ffmpeg.org/pipermail/ffmpeg-user/2013-December/019067.html
Mugba vor 9 Jahren
0
Als Sie es mit Filterkette und "Setpts" und "Asetpts" versucht haben, ergab das auch die gleiche Lücke?
Rajib vor 9 Jahren
0
@Rajib, nein, ich glaube nicht, aber wie kann ich die Transkodierung der einzelnen Segmente in dieser Filterkette so steuern, dass sie einzeln und einzeln transkodiert werden, bevor sie in der Ausgabedatei zusammengefügt werden? Ich meine damit, dass die Reihenfolge der Verarbeitung 1) Slunk Out Chunk1 2) Transcode Chunk1 3) Slice Out Chunk2 4) Transcode Chunk2 5) Concat transcodierte Chunks in die Ausgabe? Grund dafür ist, dass die Chunks in einer verteilten Umgebung transcodiert werden können, bevor sie in der Ausgabedatei wieder zusammengefügt werden.
Mugba vor 9 Jahren
0
1 Antwort auf die Frage
1
Rajib
Sie sprechen im Wesentlichen von separaten Kodierungen für separate Videoblocke, die als separate Schritte ausgeführt werden können - wie bei Ihrem Befehl ffmpeg -i mtb.mp4 -ss 05 -t 5 -c:v libx264 -c:a aac -strict -2 transcoded3.mp4.
Um den TrimFilter zu verwenden, um einen Block von etwa 5 bis 10 Sekunden zu schneiden, verwenden Sie diesen Befehl (dies verwendet jedoch setptsund asetpts):
Wenn ich den Trimmfilter wie diesen verwende, hat jedes resultierende Slice am Anfang seines Audiostroms etwas Ruhe, genau wie bei dem Befehl, der Suchen und dann Transkodieren verwendet. Wenn diese zusätzliche Stille nicht verhindert werden kann, ist dies möglicherweise nicht der richtige Weg für meinen Anwendungsfall, da ich Video-Teile herausschneiden, transkodieren und zusammenfügen muss, damit die Ausgabedatei so klingt und aussieht wie Eingabedatei. Danke für die bisherige Hilfe, auf jeden Fall!
Mugba vor 9 Jahren
0