Nagrywanie odtwarzanego dźwięku w Windows

0

Co może być powodem tego, że często producenci kart dźwiękowych "zapominają" zapewnić w sterownikach do Windows nagrywanie tego, co komputer odtwarza? Kiedyś rzeczą bardzo standardową i oczywistą było to, że na liście "urządzeń nagrywających" było "What you hear", "wave out", nazwy były różne, ale chodziło o urządzenie, które reprezentuje dźwięki odtwarzane przez komputer, potem osobno MIDI, osobno Audio CD, a obecnie, jest co najwyżej "mikrofon". To tylko kwestia oprogramowania, więc to nie podnosi kosztu produkcji sprzętu (ewentualnie koszt dodatkowej pracy programisty po rozłożeniu na tysiące sztuk sprzętu będzie znikomym ułamkiem ceny). Jakieś 20 lat temu przez moje ręce przewinęły się dwa komputery stacjonarne z zintegrowanym układem dźwiękowym i w obu nagrywanie tego, co komputer odtwarza również nie było problemem.

W Windows można poratować się aplikacją "Virtual Audio Cable", a Ubuntu Linux standardowo ma taką możliwość.

Czy w kartach dźwiękowych wstawianych na płycie głównej nagrywanie tego, co odtwarza już jest w sterowniku, czy i tutaj producenci zaniedbali? To samo pytanie dotyczy kart dźwiękowych na USB, ale nie takich za 5zł (bo mam taką i tu też jest tylko "mikrofon"), tylko trochę lepszych.

Z drugiej strony, studyjne karty dźwiękowe za tysiące złotych w górę mnie nie interesują.

0

Podbijam temat. Co do "zapominalstwa" programistów sterowników, nadal nic się nie dowiedziałem, ale niedawno stwierdziłem pewien ewenement.

Posiadam jeden komputer z Windows 11 i na nim zacząłem korzystać z programu OBS Studio. Zauważyłem, że na tym komputerze mozna bez problemu wybrać urządzenie wyjściowe jako do nagrywania, czyli program OBS Studio może nagrywać dźwięk odtwarzany przez komputer.

Jeżeli program OBS Studio może nagrywać odtwarzany dźwięk, to dlaczego żaden inny program (choćby np. Audacity) nie może nagrywać odtwarzanego dźwięku, mimo, że obydwa programy są uruchamiane na jednym i tym samym komputerze? Jak to jest, że w OBS Studio da się wybrać "Głośniki" jako źródło dźwięku, a w innych programach nagrywających dźwięk nie da się wybrać głośników jako źródło, jest tylko mikrofon?

1
andrzejlisek napisał(a):

Jeżeli program OBS Studio może nagrywać odtwarzany dźwięk, to dlaczego żaden inny program (choćby np. Audacity) nie może nagrywać odtwarzanego dźwięku, mimo, że obydwa programy są uruchamiane na jednym i tym samym komputerze? Jak to jest, że w OBS Studio da się wybrać "Głośniki" jako źródło dźwięku, a w innych programach nagrywających dźwięk nie da się wybrać głośników jako źródło, jest tylko mikrofon?

Wydaje mi się, że w Audacity się da nawet jeśli sterownik nie ma takiego urządzenia, jeśli tylko wybierzesz WASAPI (patrz sekcja WASAPI Loopback) - https://manual.audacityteam.org/man/tutorial_recording_computer_playback_on_windows.html

I może w tym pies pogrzebany - na Windowsie masz jakieś 3 różne systemy / API do dźwięku i zdaje się nie wszystkie oferują takie wbudowane przechwytywanie odtwarzanego dźwięku. Jako twórca programu nagrywającego, musisz więc się specjalnie wysilić żeby to uwzględnić.

Ale nie znam się aż tak na tym, więc ktoś kto się bardziej orientuje może doprecyzować czy poprawić mnie, gdzie się mylę

Ogólnie to chyba przeceniasz, na ile takie urządzenie "Stereo Mix" jest potrzebne zwykłemu użytkownikowi - typowy user chce co najwyżej, żeby dźwięk z głośników było słychać przy share'owaniu ekranu w Discordzie czy Teamsach oraz przy streamowaniu takim OBSem. Póki te programy to ogarniają, to mu wystarczy.

0

Ogólnie to chyba przeceniasz, na ile takie urządzenie "Stereo Mix" jest potrzebne zwykłemu użytkownikowi - typowy user chce co najwyżej, żeby dźwięk z głośników było słychać przy share'owaniu ekranu w Discordzie czy Teamsach oraz przy streamowaniu takim OBSem. Póki te programy to ogarniają, to mu wystarczy.

Ja zaczynałem przygodę z komputerami w roku 1998 i wtedy nagrywanie odtwarzanego dźwięku było możliwe i traktowałem to jako coś oczywistego. Przez moje ręce przewinęły się dwa komputery w standardzie jeszcze AT, oba miały zintegrowany dźwięk i w obu można było nagrywać to, co komputer odtwarza. Trzeci komputer, już ATX, miał dodatkową kartę dźwiękową Sound Blaster Audigy 2 (z integrą był jakiś kłopot, nie pamiętam jaki i nie używałem), tam też było możliwe nagrywanie, nazywało się "Wahts U Hear". Wielokrotnie z tego korzystałem chcąc np. utrwalić jakąś muzykę lub dźwięki z gry. Potem miałem kolejny stacjonarny, do którego przełożyłem Sound Blaster Audigy 2 z poprzedniego, czyli możliwości pod względem dźwięku były identyczne.

W międzyczasie przewinął mi się laptop Toshiba gdzieś z roku 1998-2000 (miał procek Pentium II, 64MB RAM, Windows 98), w nim też można było nagrywać to, co komputer odtwarza lub to, co słyszy mikrofon, czyli standardowo.

Dopiero, jak trafił mi się laptop, całkiem niedawno, bo w roku 2012 pozbawiony możliwości nagrywania tego, co system odtwarza. Myślę sobie, pewnie jakaś bardzo kiepska integra w tym modelu, zdarza się, nie był to sprzęt z wysokiej półki. Ale potem jeszcze były dwa lub trzy inne laptopy, kilka kart na USB i szok! To, co było wyjątkiem (brak możliwości nagrywania odtwarzanego dźwięku) stało się normą. W tym pierwszym laptopie były wszystkie Windows od 7 do 10 i w żadnym nie dało się nagrywać dźwięku. Potem postawiłem Ubuntu Linux i okazało się, że bez problemu można nagrać odtwarzany dźwięk, czyli to nie jest kwestia możliwości technicznych urządzenia, tylko funkcjonalności sterownika.

Wydaje mi się, że w Audacity się da nawet jeśli sterownik nie ma takiego urządzenia, jeśli tylko wybierzesz WASAPI (patrz sekcja WASAPI Loopback) - https://manual.audacityteam.org/man/tutorial_recording_computer_playback_on_windows.html

I może w tym pies pogrzebany - na Windowsie masz jakieś 3 różne systemy / API do dźwięku i zdaje się nie wszystkie oferują takie wbudowane przechwytywanie odtwarzanego dźwięku. Jako twórca programu nagrywającego, musisz więc się specjalnie wysilić żeby to uwzględnić.

Wygląda na to, że Audacity, przeglądarki i lwia większość programów dźwiękowych obsługuje tylko jedno API i tu jest problem. Można się poratować programem "Virtual audio cable", ale z kolei nie słyszy się odtwarzanego dźwięku, czyli też rozwiązanie "takie se".

Ogólnie to chyba przeceniasz, na ile takie urządzenie "Stereo Mix" jest potrzebne zwykłemu użytkownikowi - typowy user chce co najwyżej, żeby dźwięk z głośników było słychać przy share'owaniu ekranu w Discordzie czy Teamsach oraz przy streamowaniu takim OBSem. Póki te programy to ogarniają, to mu wystarczy.

Widocznie OBS i inne wymienione (nie testowałem, bo streaming na żywo mnie nie interesuje, a interesuje nagrywanie dźwięku i obrazu z komputera) obsługuje wszystkie API i dlatego się da. Widocznie API umożliwiające nagrywanie odtwarzającego dźwięku jest trudne w obsłudze, stąd mała popularność.

1

Nie wiem, nie znam się, ale to może mieć nie tyle coś wspólnego z samym API co z modnymi zabezpieczeniami jak HDCP

3

To nie zapominalstwo programistów tylko specyfika sprzętu i logiki.
Rozumiem, że zależy Ci na zachowaniu jakości cyfrowej 1:1 z tym co jest odtwarzane bo jeśli nie to w czym problem aby połączyć jack wyjściowy z wejściowym? Będzie trochę stratne ale raczej minimalnie i niezauważalnie.

W chęci zachowania jakości cyfrowej już nie jest to takie oczywiste bo karta musi obsługiwać pewną logiczną część pomijającą DAC i ADC potrafiąc przesyłać wewnętrznie sygnał sprzed DAC do miejsca za ADC. Teoretycznie mógłby to robić sterownik ale to też nie jest oczywiste i banalne w zrealizowaniu, oprogramowanie tego wiąże się z dodatkowym kosztem a większości śmiertelników to nie jest do niczego potrzebne. Problemy mogą być np. z próbkowaniem, synchronizacją itp.. itd..). Jak masz taką potrzebę kupujesz kartę, która to robi i po kłopocie.

Kluczem jest też opcja kart / sterownika o nazwie "What U Hear".

Zobacz sobie też to:
https://www.howtogeek.com/39532/how-to-enable-stereo-mix-in-windows-7-to-record-audio/

Możesz też spróbować powalczyć z tym: https://jackaudio.org/faq/jack_on_windows.html ale to od lat było i widzę, że wciąż jest nie dla ludzi...

U mnie w Audacity po wybraniu WASAPI wygląda to tak:

screenshot-20240513204151.png

1

A zobacz czy Ocam też nie nagrywam jak wybierzesz nagrywania z pc. Bo to zależy wtedy też od FFmpeg (czy jak to się tam nazywa) jako coś do obsługi i "konternerowania" tego tego wszystkiego. OBS u mnie często też nie nagrywał z pulpitu - a ocam czy inne już tak. Więc nie zawsze to sprawa kart ale sterownika, oprogramowania itp.

0

U mnie w Audacity po wybraniu WASAPI wygląda to tak:

Sprawdziłem i akurat Audacity pozwala nagrywać "z głośników" po wybraniu hosta WASAPI. Trudno miarodajnie opiniować, bo ja obecnie mam do dyspozycji tylko jeden komputer z Windows. Inne hosty to MME i DirectSound i w tych dwóch już nie ma możliwości wyboru nagrywania "WaveOut", "Stereo mix", "Whats you hear". Nie jestem na bieżąco, może to się już powoli zmienia, ale wydaje się, że najpopularniejszym interfejsem jest MME, na drugim miejscu DirectSound. Microsoft musiał skomplikować, robiąc trzy różne interfejsy służące do tego samego celu.

Rozumiem, że zależy Ci na zachowaniu jakości cyfrowej 1:1 z tym co jest odtwarzane bo jeśli nie to w czym problem aby połączyć jack wyjściowy z wejściowym? Będzie trochę stratne ale raczej minimalnie i niezauważalnie.

W ostateczności zrobiłbym takie połączenie, ewentualna strata jakości przy zastosowaniu tej metody jest akceptowalna. Jednak i tutaj sprawa nie jest tak prosta, jak 20 lat temu. Drzewiej, sprawa była banalnie prosta, bo każda jedna karta dźwiękowa, bez wyjątków miała co najmniej trzy złącza, obecnie coraz częściej jest wykastrowane złącze "line in" lub "audio in" (szczególnie laptopy, bo stacjonarki cały czas mają na ogół trzy złącza). Czasami sterownik pozwala zmienić przeznaczenie złącza lub wykrywa moment podłączenia czegokolwiek, ale też, nie w każdej karcie dźwiękowej jest to możliwe.

W chęci zachowania jakości cyfrowej już nie jest to takie oczywiste bo karta musi obsługiwać pewną logiczną część pomijającą DAC i ADC potrafiąc przesyłać wewnętrznie sygnał sprzed DAC do miejsca za ADC. Teoretycznie mógłby to robić sterownik ale to też nie jest oczywiste i banalne w zrealizowaniu, oprogramowanie tego wiąże się z dodatkowym kosztem a większości śmiertelników to nie jest do niczego potrzebne. Problemy mogą być np. z próbkowaniem, synchronizacją itp.. itd..). Jak masz taką potrzebę kupujesz kartę, która to robi i po kłopocie.

Najśmieszniejsze w tym wszystkim jest to, że tanie karty dźwiękowe na USB wielkości pendrive mają tylko "mic in", bez możliwości przekształcenia na "line in", a urządzenia na USB z "line in" są wielkości dysku twardergo lub nawet napędu DVD wymontowanego z komputera, kosztują grubą kasę i są przeznaczone dla muzyków, do studia itp, o parametrach i możliwościach niepotrzebnych dla "zwykłego usera".

Z drugiej strony, takim sterownikiem jest to https://vb-audio.com/Cable/ , zapewnia dobrą jakość, instaluje się jako dodatkowe, wirtualne urządzenie dźwiękowe, jedynym utrudnieniem jest to, że nie słyszy się odtwarzanego dźwięku, ale nagrywanie przebiega poprawnie, sam nieraz z tego korzystałem.

A zobacz czy Ocam też nie nagrywam jak wybierzesz nagrywania z pc.

W wolnej chwili sprawdzę ten program. Może to być dobra alternatywa dla OBS. Akurat w moim komputerze OBS spełnia oczekiwania, ale jakbym komuś miał tłumaczyć, czym i jak nagrać odtwarzany dźwięk i obraz, to nie mogę zakładać, że w każdym komputerze da się tak samo zrobić, więc, jak nie OBS, to Ocam lub inny program.

0

Bardzo często co dziwne te problemy powstają przez 2 karty graficzne w urządzeniu. Wydaje się to dziwne, co ma to niby do dźwięku ale jednak czasami ma. Wtedy pierwszy plan i drugi z kart (monitory tak jak by) nie tylko wchodzą na obraz ale też na muzykę. Miałem problem też z samym dźwiękiem i Ocam działą dobrze oraz Captura (ale ta starsza 8.0) - to wszystko bezpłatne programy nagrywające w HD bez znaków wodnych.

1 użytkowników online, w tym zalogowanych: 0, gości: 1