Synchronisieren Sie separates Audio mit Video + schlechtes Kamera-Audio, kostenlose NLE-Empfehlungen

Mein Anwendungsfall, falls die Details den Leuten helfen zu verstehen, wonach ich suche: Mein Bruder braucht einige Videos von ihm, wie er singt, während er Klavier spielt, um ihn als Vorsprechen für ein Dinner-Theater einzusenden. Für diesen Job hat er den musikalischen Leiter bereits kennengelernt, das ist also kein erster Eindruck, aber natürlich wollen wir, dass er gut aussieht und vor allem gut klingt. Ich stelle mir nicht vor, Videoeffekte oder Titel / Credits einzufügen. (Wir gehen davon aus, dass Metadaten Metadaten sein sollten, wie Webseitentitel oder Dateiname, und in den Video-Container-Metadaten gespeichert und nicht in das Video gebrannt werden sollten.) Das Ziel für diese Videos ist es also, auf einem Computer angesehen zu werden, wahrscheinlich über YouTube, nicht auf DVD oder ausgestrahlt.

Wir haben eine Digitalkamera zum Aufnehmen von Videos verwendet, aber die Audioqualität ist nicht gut genug. Wir haben gleichzeitig Audio mit einem analogen Mikrofon aufgenommen, das an seinen Laptop angeschlossen ist (mit Audacity), aber es muss manuell synchronisiert werden. Weitere Details zu den Details unten, für alle, die neugierig sind. Die Uhren der Kamera und des Laptops stimmen nicht ganz darin überein, wie lange eine Sekunde dauert: Die Kamera nimmt tatsächlich mit etwa 29,981 fps auf, obwohl sie denkt, dass sie mit 30 fps aufzeichnet (wobei der Ton synchron bleibt).

Ich habe also 4 Videos, 7 bis 22 Minuten lang, und 4 Audacity-Projekte mit besserem Audio für jedes Video (das ich einfach in wav oder flac exportieren kann), aber nicht synchronisiert. Gewünschte Ausgabe: eine Datei pro Song, mit möglichst wenig verstümmeltem Audio von Audacity

Ich muss einfach:

  • Richten Sie den Anfang jedes externen Audios (wav oder flac) mit dem synchronisierten, aber schlecht klingenden Audio aus, das in derselben Datei wie jedes Vid enthalten ist
  • dehnen Sie den External-Audio- oder A+V-Cam-Clip so, dass sie auch am Ende ausgerichtet sind
  • Verwerfen Sie das Audio, das mit der Videodatei geliefert wurde (oder schalten Sie es stumm und bewahren Sie es als Referenz auf, damit ich zurückgehen und die Ausrichtung korrigieren kann, wenn ich ein Problem bemerke, ohne von vorne anfangen zu müssen.)
  • Wählen Sie den Zeitbereich des "guten Takes" jedes Songs aus.
  • Exportieren Sie diese nicht überlappenden Segmente meiner Quellvideos, eine Ausgabedatei pro Song. (Die längeren Quellvideos haben mehrere Songs)
  • codiere jeden Song mit ffmpeg / x264 / libfdk-aac und lade ihn auf YouTube hoch und/oder klebe ihn mit einem HTML5-Video-Tag auf meine Website. Der Export aus dem NLE in ein verlustfreies Format, das ich in ffmpeg einspeisen kann, ist in Ordnung.

Ich weiß, was ich mit ffmpeg / x264 / libfdk-aac / flac / libmp3lame / mp4-Container mache, um endgültige Dateien zu erstellen, die auf YouTube und/oder auf meiner Website veröffentlicht werden können. Bei dem Teil brauche ich keine Hilfe.

Ich habe den A/V-Sync-Teil des Problems für das erste Video als Proof-of-Concept durchgeführt, bevor ich mehr aufgenommen habe:

In Audacity habe ich das Audio von der Kamera .MOV geladen und festgestellt, dass ich die Spur des externen Mikrofons um 5,34563 Sekunden nach links verschieben musste, um sie an der Kameraspur auszurichten. Ich tat das und schnitt das Teil vor null Sekunden ab. Dann stellte ich am Ende fest, dass die Kameraspur um 0,43144 Sekunden nach rechts verschoben werden musste, um sie mit der Spur des externen Mikrofons bei 11:30 Minuten auszurichten. Also musste ich das Video 0,431 Sekunden länger machen, um mit dem Ton synchron zu bleiben. Ich habe die verschobene und beschnittene externe Mikrofonspur in eine .flac-Datei von Audacity exportiert, nachdem ich den Rauschunterdrückungsfilter verwendet hatte.

Dann habe ich das an ffmpeg gefüttert:ffmpeg -i session2-shifted.flac -an -i P1000669-sess2.MOV -shortest -c:a libmp3lame -q:a 1 -c:v libx264 -preset fast -crf 18 -filter:v "setpts=690.43144*PTS/690,transpose=2:passthrough=portrait" -r "30 * 690 / 690.43144" -movflags +faststart out.mp4

(Ich hatte nur den eingebauten, nicht sehr guten AAC-Encoder von ffmpeg im Windows-Build von ffmpeg, den ich auf dem Laptop meines Bruders installiert habe, daher das MP3-Audio für einen Testlauf.)

Meine Ausgabe ist also eine MP4-Datei mit 29,981 fps, mit A/V-Synchronisation von Anfang bis Ende. (29,981 ist nahe an NTSC 30/1,001 ~= 29,976, aber das ist nur ein Zufall.) Ich sollte in der Lage sein, das mit verlustfreier Ausgabe (oder -codec copy) erneut auszuführen und dann die gewünschten Abschnitte herauszuschneiden. Entweder mit einem NLE oder eine Start-/Stoppzeit notieren und verwendenffmpeg -ss [start] -to [stop] -i session2-synced.mp4 -x264 -blah -blah song1.mp4

Ich habe meinen Bruder dazu gebracht, am Anfang UND am Ende jedes Videos zu klatschen, während der externe Ton aufgenommen wurde, also haben wir Synchronisierungsmarkierungen, die in der Wellenform für die letzten 3 Videos sichtbar sein sollten. (Das Ausrichten des ersten war etwas schwierig, ich bin froh, dass ich es von Hand gemacht habe, bevor ich den Rest aufgenommen habe).

Ich suche nach Empfehlungen für Software, um all das schneller / einfacher zu erledigen als mit dem manuellen Prozess, den ich verwendet habe.

Ich benutze GNU/Linux, mein Bruder Windows. Idealerweise gibt es ein NLE, das für diesen Anwendungsfall geeignet und plattformübergreifend ist, damit ich meinem Bruder zeigen kann, wie man Segmente aus einem längeren Video herausschneidet, das er auf seinem Handy oder so aufzeichnet, mit der gleichen Software, die ich zu verwenden lerne . Ich interessiere mich nur für Open-Source-Software. Ich bin nicht daran interessiert, Zeit zu investieren, um mich in etwas einzuarbeiten, das nicht Open Source ist. (Und ich werde kein Geld dafür ausgeben, wenn ich bereits mit Audacity und ffmpeg tun kann, was ich brauche.) Lassen Sie jedoch bitte keinen guten Vorschlag aus, nur weil es keine plattformübergreifende Unterstützung gibt.

Es gibt viele Optionen unter GNU/Linux und es wurde sogar auf Ask Ubuntu danach gefragt .

Ich weiß, was ein NLE können soll, habe aber noch nie eins benutzt. (Nur ffmpeg / mencoder mit Start- / Stoppzeiten deckte die minimalen Dinge ab, die ich zuvor gemacht habe.)

Ich bin mir bewusst, dass die Leute normalerweise Audio dehnen und in der Tonhöhe korrigieren, um es an Video anzupassen, aber ich vertraue der Uhr im Laptop mehr als der Uhr in der Kamera. Und ich möchte Audioverstümmelungen auf ein Minimum beschränken. Obwohl ich bereits eine ziemlich ernsthafte Entrauschung / 60-Hz-Entfernung für das Audio des externen Mikrofons benötige, ist es kaum makellos in superhoher Qualität. Daher bin ich bereit, eine Lösung in Betracht zu ziehen, die Audio dehnt / Tonhöhe korrigiert, anstatt nicht standardmäßige fps-Videos zu erstellen.

Ich habe bereits pitivi ausprobiert, aber die Anzeige der Audio-Wellenform war nicht sehr gut sichtbar, also müsste ich wahrscheinlich immer noch die Synchronisierung in Audacity durchführen. Da es aus dem Ubuntu 14.04-Paket installiert wurde, kann es nicht mit x264 exportieren, und der einzige verlustfreie Codec ist Dirac. (kein ffvhuff ...) Der verlustfreie Dirac-Export ist unannehmbar langsam, das ist also ein weiterer großer Nachteil. (Ich liebe Open Source / patentfreie Codecs wie VP9, ​​aber ich möchte nicht, dass jemand Probleme beim Abspielen der Videos hat, also verwende ich H.264-Video und AAC-Audio mit hoher Bitrate. Oder akzeptiert YouTube VP9 hochladen?)

Ich habe auch Avidemux verwendet, aber IIRC funktioniert nicht gut bei der Ausgabe an moderne Container. Es def. liest nicht gerne Codecs mit B-Frames aus modernen Containern, also ist es so ziemlich eine Sackgasse. (h.264 in mkv oder mp4, irgendjemand?) Es kann Audio aus einer externen Datei machen, zeigt aber keine Wellenformen zum Synchronisieren an.

Diese Frage ähnelt anderen, die zuvor gestellt wurden:

Die erste Frage hat eine Antwort, nach der ich suche: http://auxmic.com/ , aber das ist nur Windows und sagt nichts darüber aus, wie es mit Taktdrift in der Eingabe umgeht. Ich könnte es versuchen, da es prob ist. einfach genug, um mit WINE unter Linux gut zu funktionieren. Ich müsste immer noch etwas anderes verwenden, um die gute Einstellung jedes Songs aus den Videos herauszuschneiden.

Keine der anderen Antworten enthält nützliche Vorschläge, möglicherweise weil die Fragen nicht spezifisch genug waren.

Für diejenigen, die neugierig sind, was ich tatsächlich verwendet habe:

Die Kamera war eine Panasonic Lumix FZ28 auf einem Stativ, vielleicht 2 m vom Motiv entfernt, hoch genug, um eine gute Sicht auf die Klaviertasten und sein Gesicht zu haben. Es zeichnet 1280 x 720 oder 640 x 480 MJPEG + 16 kHz Mono-PCM in einem MOV-Container auf SD-Karten auf. Die Videoqualität ist bei genügend Licht ziemlich gut. Bei 720p kann es knapp 12 Minuten dauern, bevor es die maximale Dateigröße von 2 GB für FAT32 erreicht und stoppt. (Ungefähr 22 Mbit/s müssen für die endgültige Verwendung offensichtlich xkodiert werden.) Der Video-Scaler in der Kamera ist schlecht und führte zu hässlichen Streifenbildung durch Aliasing-Effekte oder etwas in der Wand, die hinter meinem Bruder hing, als wir in 640 x 480 (11 MB) aufzeichneten /s MJPEG). Wir haben trotzdem 640 x 480 verwendet, um die Kamera länger laufen zu lassen, da jede einzelne Aufnahme Handarbeit für die A/V-Synchronisierung erfordert. Außerdem müssen Sie nur einen Start-/Endpunkt auswählen und eine Datei exportieren.

Das Mikrofon war nur ein billiges Labtec-Computertischmikrofon, das wir herumgelegt hatten. Es nahm viele 60-Hz-Störungen auf, selbst wenn sich sein Kabel nicht in der Nähe der Stromkabel für die Beleuchtung und das Digitalpiano befand. (Auch wenn der Laptop im Akkubetrieb ist.) Die Rauschunterdrückungsfunktion von Audacity leistet gute Arbeit, um das 60-Hz- und Hintergrundrauschen zu beseitigen. Wenn das Mikrofon direkt auf dem Klavier sitzt, nimmt es viel von dem Geräusch auf, das beim physischen Schlagen der Klaviertasten entsteht. Wenn wir Zeit gehabt hätten, bevor er wieder zur Schule ging, hätte ich etwas für einen Mikrofonständer verwendet, um das Mikrofon weiter von den Klaviertasten entfernt und nicht in physischem Kontakt mit dem Körper des Digitalpianos zu platzieren.

Ich habe für jede Videodatei ein separates Projekt in Audacity erstellt, da der A/V-Offset für jede Datei anders wäre. Ich hätte einfach ein großes Audacity-Projekt machen können, aber ich glaube nicht, dass das bei irgendetwas geholfen hätte, außer vielleicht in der Lage zu sein, die Filtereinstellungen für die Rauschunterdrückung / den Hochpass (um vielleicht das Geräusch der angeschlagenen Klaviertasten zu reduzieren) und dann zu optimieren wenden Sie es auf alles auf einmal an.

Übrigens, ist "Clock-Drift" der richtige Begriff für die De-Sync über die Zeit aufgrund von Quellen, die mit Uhren unterschiedlicher Geschwindigkeit aufgenommen wurden? Ich habe diese Terminologie nur erfunden, aber ich denke, es gibt wahrscheinlich einen etablierten Begriff.
Ich habe diese Frage auf Softwarerecs gestellt und die Antwort war auch Kdenlive.
@sebix, danke, aber wie gesagt, kdenlive verarbeitet Tracks nicht so lange, dass einer gedehnt werden muss, um mit dem anderen übereinzustimmen, sowie an einem Punkt ausgerichtet werden muss, um über die gesamte Länge synchron zu bleiben. Deshalb habe ich meine eigene Antwort nicht als akzeptiert markiert. :/
Das ist auch die Einschränkung, mit der ich zu kämpfen habe. Vielleicht ärgere ich mich irgendwann so sehr darüber, dass ich anfange, die Situation zu verbessern...

Antworten (3)

Ich habe kdenlive ausprobiert, also werde ich meine Erkenntnisse darüber als Antwort posten. Es hat nicht ganz funktioniert, daher werde ich dies nicht als akzeptierte Lösung markieren.

kdenlive importiert meine Clips ganz einfach in mjpeg+pcm und flac. Und sieht so aus, als ob es über ffmpeg exportieren kann, was ich will.

Es verfügt über eine Funktion zum "Setzen der Audioreferenz" und für andere Spuren zum "Ausrichten von Audio an der Referenz". Das ist perfekt, das programmgesteuerte Ausrichten von Audio ist viel schöner als das manuelle Ziehen von Dingen, um Wellenformen nach Augenmaß auszurichten. Es scheint jedoch überhaupt nicht mit der Uhrdrift fertig zu werden. In meiner 23-minütigen Aufnahme hatte es eine perfekte Synchronisation bei etwa 4 Minuten. Es war am Anfang ein bisschen asynchron und bei der 19-Minuten-Marke vielleicht 0,5 Sekunden asynchron. (Ich habe später keinen guten Synchronisierungspunkt, da diese Aufnahme die Dateigrößenbeschränkung von 2 GB erreicht hat, xD)

Die Timeline-Anzeige von KDENlive erfolgt in h:mm:ss.frames, nicht in Dezimalbruchteilen einer Sekunde, was mich zunächst verwirrte. Ich dachte, dass es eine Spur gestreckt hatte, aber nein, das tat es nicht.

Es ist leicht zu erkennen, dass ein Problem vorliegt, indem Sie beide Audiospuren nicht stumm schalten, auch wenn dies Probleme aufzeigt, die zu klein sind, um visuell bemerkt zu werden. (In meinen längeren Tracks, wie diesem, wird die Drift schließlich so groß, dass sie ein Problem für die visuelle AV-Synchronisierung darstellt.)

Ich habe in Audacity manuell nachgesehen: Wenn der Start beider Tracks ausgerichtet ist, sind sie bei derselben 19-Minuten-Synchronisationsmarke etwa 0,68 Sekunden voneinander entfernt. So könnte ich meine Ausrichtung in kdenlive manuell durchführen, aber das automatische Tool dafür unterstützt leider keine Clock-Drift-Korrektur durch Strecken.

kdenlive zeigt die Audio-Wellenformen gut an, besonders. Wenn Sie konfigurieren-> Zeitleiste-> Spurhöhe gehen: Erhöhen Sie auf 80 oder 100 Pixel. Schöne Benutzeroberfläche zum Hineinzoomen in die Timeline.

Wenn ich vor dem Exportieren die AV-Synchronisierung in Audacity durchführe, kann ich für den Rest des Prozesses möglicherweise kdenlive verwenden. Ich muss sehen, wie einfach es ist, mehrere Videos aus Segmenten einer einzigen Zeitleiste zu erstellen.

Probieren Sie die Videobearbeitung von Blender aus.

Wenn Video und Audio gleichzeitig aufgenommen wurden, ist es einfach, sie zu synchronisieren, stellen Sie einfach sicher, dass Ihre Video-Framerate in Blender richtig eingestellt ist und dass Sie im Video-Editor die Synchronisierung aktivieren (unten neben der Zeitleiste und Wiedergabe, Stopp usw. Schaltflächen.

Haben Sie keine Angst vor der Komplexität von Blender, Sie werden keine der anderen Funktionen verwenden, Sie werden nur die Videobearbeitung verwenden, und das ist ziemlich einfach.

Danke, ich werde es versuchen, wenn Sie sagen, dass es das tut, wonach ich suche. Ich habe vor 15 Jahren 3D-Text gemischt, ich erinnere mich, dass ich dachte, die Benutzeroberfläche sei ordentlich. :)
Ok, ich habe mein Video als externes Audio in Blender geladen, aber ich habe noch nichts über die automatische Ausrichtung basierend auf Audioähnlichkeit gesehen. Oder eine Spur dehnen, um sie mit der anderen auszurichten, wenn zwei Synchronisierungspunkte gegeben sind. Diese Antwort beantwortet keine Einzelheiten meiner Frage, insbesondere nicht den Teil zum Umgang mit nicht synchronisierten Uhren. (dh der Teil, der es nicht trivial macht, zu synchronisieren, obwohl Sachen zur gleichen Zeit aufgenommen wurden ...) Vielleicht kann Blender Sachen machen, ich werde weiter stochern. Aber diese Antwort hat mich nirgendwo nützlich hingewiesen.
Sie müssen nichts dehnen, wenn Sie die richtige Framerate für das zu ladende Video einstellen. Es gibt keine Magie, Sie müssen natürlich ungefähr den Moment kennen, in dem der Ton mit dem Bild übereinstimmt, von dort aus können Sie den genauen Frame mit der genauen Audiozeit feinabstimmen. Sobald Sie einen einzelnen Frame synchronisiert haben, wird das gesamte Video synchronisiert (vorausgesetzt, Sie haben die richtige Video-Framerate eingestellt und die Sync-AV-Taste gedrückt).
Lies nochmal meine Frage. Meine beiden Aufnahmegeräte sind sich nicht einig, wie lang eine Sekunde ist (weil eines eine Lumix-Kamera ist, nicht einmal eine DSLR). Das ist der springende Punkt der Frage. Wenn ich etwas anderes verwenden muss, um den A/V-Sync-Offset und -Stretch zu ermitteln, kann ich das genauso gut einfach in eine ffmpeg-Befehlszeile stecken. (Mixer könnte das Video jedoch dehnen, indem er einen benutzerdefinierten FPS einstellt.)
Außerdem ist der Export von Blender nach h.264 mit x264 sehr unflexibel, daher müsste ich nach verlustfrei exportieren und transcodieren. Die einzige Option ist ABR, nicht CRF, und es scheint nicht einmal eine Voreinstellung für die x264-CPU-Auslastung zu geben (von ultraschnell über mittel bis sehr langsam).

Die folgende Antwort ist die Methode zum Synchronisieren einer externen Audioaufnahme mit Ihrem Video. Bei dieser Methode wird davon ausgegangen, dass sowohl Ihre Audio- als auch Ihre Videoaufnahmen mit der gleichen Zeitrate aufgezeichnet werden.

Vor der Aufnahme jeder Szene müssen Sie einen lauten Klatschenton erzeugen, den sowohl der Audioeingang Ihrer Videokamera als auch der externe Audiorecorder gleichzeitig aufnehmen können. Typischerweise werden zu diesem Zweck ein Klöppel oder Handklatschen verwendet. Ein Klöppel ist eine gerahmte Tafel oder ein Whiteboard mit Szeneninformationen, die von der Videokamera aufgezeichnet werden, und hat einen Arm, der angehoben und heruntergeklappt wird, um den erforderlichen Ton zu erzeugen. Das Klatschen erzeugt, wenn es aufgezeichnet wird, eine Spitze im Ton sowohl des Tons der Videokamera als auch des Tons des externen Tonaufzeichnungsgeräts. Diese Spitzen werden in der Tonwellenformansicht mit größeren Spitzen dargestellt, wenn der Ton laut genug ist. Wenn Sie diese beiden Wellenformspitzen in Ihrer Zeitleiste ausrichten, werden das Video und der externe Ton perfekt ausgerichtet und synchronisiert.

Wenn Sie Ihr Audio und Video in einer Einstellung ohne Pausen und ohne Stoppen der Kamera und des Audiorecorders aufnehmen, müssen Sie während der Aufnahme nicht mehrmals klatschen, ein einziges reicht. Sie müssen jedoch sicherstellen, dass Sie beim Herausschneiden unerwünschter Teile sowohl die Video- als auch die externen Audioteile gleichzeitig löschen, da sonst Ihr externes Audio und Video nicht mehr synchronisiert werden.

Sobald Sie Ihr Audio und Video ausgerichtet haben; Anstatt das Audio des Videos zu löschen, schalten Sie die Audiospur des Videos stumm. Wenn Sie mit der von Ihnen verwendeten Videobearbeitungssoftware die Audiospur Ihres Videos nicht stumm schalten können, liegt ein Softwareproblem vor und Sie sollten nach einem anderen Programm suchen. Ich habe auf OpenShot.org gesucht. Es scheint ein plattformübergreifender Open-Source-Videoeditor mit vollem Funktionsumfang zu sein, den ich gerade herunterlade und noch ausprobieren muss.

Dies sollte Ihnen helfen, Ihre Videoproduktion zu verfeinern und zu vereinfachen.

ST.

Wenn Sie diese beiden Wellenformspitzen in Ihrer Zeitleiste ausrichten, werden das Video und der externe Ton perfekt ausgerichtet und synchronisiert. Richtig, das ist der manuelle Prozess, den ich beschrieben habe. Die Frage war, welche Software Ihnen eine Benutzeroberfläche gibt, die das tun kann, was Sie beschreiben. (Und (vorzugsweise in meinem Fall) kann die Videobildrate skalieren, anstatt das Audio mit Tonhöhenkorrektur zu dehnen.) IIRC, ich habe schließlich ffmpeg mit einem Offset und einer benutzerdefinierten Bildrate verwendet. Das war eine einmalige Sache für mich, weil ich meinem Bruder geholfen habe, ein Vorspielvideo zu machen, also habe ich nicht weiter nach anderer Software gesucht.
Sie können die folgenden Programme ausprobieren. Serif MoviePlus Starter Edition - freeserifsoftware.com Screenshots für OpenShot auf OpenShot.org scheinen diese Funktion ebenfalls zu haben. Ich lade es gerade herunter, um es zu überprüfen. Scott