2011-07-18 10 views
5

Pracuję nad projektem C++ z openCV. Jest to prosta aplikacja kamery internetowej z podstawowymi funkcjami, takimi jak przechwytywanie zdjęć i filmów. Byłem już w stanie zapisać wideo (bez dźwięku). Ponieważ openCV nie obsługuje przetwarzania dźwięku, zastanawiałem się, czy istnieje sposób, w jaki mogę nagrać dźwięk oddzielnie w innym pliku, a następnie połączyć je w jeden plik wideo. Podczas wyszukiwania w Internecie usłyszałem coś o używaniu ffmpeg z openCV. Ale nie mogę pojąć, jak to zrobić dokładnie ...łączenie oddzielnych plików audio i wideo w jeden plik C++

Czy możecie mi pomóc? Byłbym bardzo wdzięczny ... Dziękuję!

P.S. Użyłem openCV i QT (dla GUI)

Odpowiedz

4

Tak jak powiedziałeś, opencv sam nie zajmuje się dźwiękiem. Jednak po uzyskaniu oddzielnego pliku audio i wideo można łączyć je przy użyciu techniki o nazwie muxing. Jest na to wiele sposobów. Używam VirtualDub dla większości moich potrzeb związanych z muksowaniem, chociaż jest to tylko okno (nie jestem pewien, czy to jest problem). Wiem, że ffmpeg jest również zdolny do multipleksowania (poprzez interfejs wiersza poleceń), nie pamiętam, co to polecenie. Istnieje również mplayer i wiele innych programów, aby to zrobić.

+0

Dzięki Chris. Zajrzałem do dokumentacji openCV za pomocą ffmpeg. Znalazłem kilka poleceń na MUX. Czy będzie działać, jeśli uruchomię te polecenia z funkcji system()? –

+0

@Aashish Shrestha: o ile parametry, które podajesz do ffmpeg, są poprawne (tzn. Będziesz chciał je uruchomić ręcznie, aby sprawdzić dwukrotnie), to tak, powinno to działać dobrze z poleceniem 'system'. –

+0

Dzięki Chris! Byłeś prawdziwą pomocą! :) –

1

o ile mi wiadomo, openCV jest dobry do przetwarzania wideo/obrazu. Aby obsługiwać przetwarzanie dźwięku, możesz użyć innych bibliotek, np. PortAudio lub C-sound.

Powiązane problemy