2011-01-03 9 views
4

Von ASP.Net, ich verwende FFMPEG, um FLV-Dateien auf einem Flash Media Server in Wavs zu konvertieren, die ich in einer einzigen MP3-Datei mischen muss. Ich habe das ursprünglich komplett mit FFMPEG versucht, aber letztendlich den Mix-Schritt aufgegeben, weil ich es nicht für möglich halte, nur Audio-Tracks zu einer einzigen Ergebnisdatei zu kombinieren. Ich würde gerne falsch liegen.Mix Audiospuren mit Offset in SOX

Ich verwende jetzt FFMPEG, um auf die FLV-Dateien zuzugreifen und die Audiospur zu wav zu extrahieren, so dass SOX sie mischen kann. Das Problem ist, dass ich eine der Audiospuren um ein paar Sekunden versetzen muss, damit sie synchronisiert sind. Jede Datei ist die Hälfte einer Konversation zwischen einem Schüler und einem Lehrer. Zum Beispiel muss teacher.wav 3,3 Sekunden nach student.wav beginnen. Ich kann nur herausfinden, wie man die Dateien mit SOX mischt, wo beide Titel gleichzeitig beginnen.

Mein bester Versuch an dieser Stelle:

ffmpeg -y -i rtmp://server/appName/instance/student.flv -ac 1 student.wav 
ffmpeg -y -i rtmp://server/appName/instance/teacher.flv -ac 1 teacher.wav 

sox -m student.wav teacher.wav combined.mp3 splice 3.3 

Diese Werkzeuge (FFMEG/SOX) wurden ausgewählt, basierend auf meiner besten Forschung, sind aber nicht erforderlich. Jede funktionierende Lösung würde es einem ASP.Net-Dienst erlauben, die zwei FMS-Flvs einzugeben und eine kombinierte MP3-Datei unter Verwendung von Open-Source- oder kostenlosen Tools zu erstellen.

EDIT: konnte ich die Dateien mit dem delay Schalter in SOX kompensieren.

sox -M student.wav teacher.wav combined.mp3 delay 2.8 

Ich lasse die Frage offen, falls jemand einen besseren Ansatz als die kombinierte FFMPEG/SOX-Lösung hat.

+0

„sox -M student.wav teacher.wav combined.mp3 verzögern 2.8“ Lösung funktioniert, wenn jeder Ton einen Kanal hat. wenn jedes Sample Stereo ist, glaube ich, dass Sie tun können "sox -M Student.wav teacher.wav combined.mp3 Verzögerung 2,8 2,8 0 0". Ich denke, sox ändert automatisch die Lautstärke/Verstärkung und etwas anderes muss dem Befehl hinzugefügt werden, damit es richtig klingt ... Danke für die Lösung! – sequenceGeek

+0

Nvm, dies ist möglicherweise eine bessere verallgemeinerte Möglichkeit, darüber zu gehen: http://StackOverflow.com/Questions/9327262/Sox-Mix-and-Delay/12378408#12378408 – sequenceGeek

Antwort

0

gut schlage ich vor, sollten Sie den Blitz verwenden. Es mag komisch klingen, korrigieren Sie mich, wenn ich falsch bin, aber mit den neuen Multimedia-Fähigkeiten von Flash können Sie ein paar Tracks mischen.

Ich bin nicht sicher, aber ich versuche nur, Ihnen zu helfen, these 2 Link kann Ihnen für Ihr Ziel helfen (besonders zweiten Link, denke ich);

http://3d2f.com/programs/25-187-swf-to-mp3-converter-download.shtml

http://blog.debit.nl/2009/02/mp3-to-swf-converter-in-actionscript-3/

1

Für das, was es wert ist, diese sollte mit einer Kombination aus -itsoffset möglich sein, und die amix filter, sondern ein bug with -itsoffset verhindert. Wenn es funktionierte, würde der Befehl wie folgt aussehen:

ffmpeg -i student.flv -itsoffset 3.3 -i teacher.flv -vn -filter_complex amix out.mp3