Linux에서 전화를 마이크로 사용 마이크를 사용하지 않기 때문에 “WM

Windows와 Ubuntu를 이중 부팅합니다. 데스크탑에서 마이크를 사용하지 않기 때문에 “WM 마이크”라는 앱을 사용하여 Android 폰의 마이크를 Windows의 데스크탑에 연결하기 시작했습니다. 좋은 대안 이지요?

슬프게도 WO Mic은 Linux 기반 OS에서 지원되지 않으므로 WiFi 또는 USB를 통해 Ubuntu에서 내 전화를 마이크로 사용할 수있는 대안이나 앱이 있는지 알고 싶습니다. (하지만 바람직하게는 와이파이).



답변

프로그램? 클라이언트 / 드라이버를 다운로드하고 Ubuntu에 대한 지침을 따르셨습니까?

  1. 로드 드라이버 모듈

    $ sudo insmod wo_snd_capture-x86.ko
    
  2. 클라이언트에서 연결

    • 와이파이 연결. WO Mic 앱 UI에서 IP 주소를 찾을 수 있습니다.

      $ micclient-ubuntu-x86 -t Wifi 192.168.1.100
      
    • 블루투스로 연결하십시오.

      $ micclient-ubuntu-x86 -t Bluetooth xx:xx:xx:xx:xx:xx
      

      xx : xx : xx : xx : xx : xx는 전화 Bluetooth 주소를 나타냅니다. 전화기에서 쿼리 할 수 ​​있습니다 : 설정-> 전화기 정보-> 상태-> Bluetooth 주소.

위의 예는 32 비트 우분투에 대한 것입니다. 64 비트를 사용하는 경우 클라이언트 및 드라이버 파일 이름을 다운로드 한대로 xxx-x86_64로 바꿉니다.


답변

Mumble (데스크톱 클라이언트) + Murmur (LAN 서버로) + Plumble (Android / iOS 클라이언트)을 사용합니다. 이것은 내가 달성 한 가장 낮은 대기 시간을 초래합니다 (일반적으로 7ms WiFi 지연 + 2x 10ms 코덱 지연 = 27ms).

최신 버전은 https://github.com/pzmarzly/mic_over_mumble을 참조 하십시오.

읽어보기 조각 (rev 8c827fe)

Mumble (데스크톱 클라이언트) + Murmur (서버) + Plumble (Android / iOS 클라이언트)을 설치하십시오. 최고 품질과 최소 대기 시간을 사용하도록 3 개의 프로그램을 모두 설정하십시오. 모바일 클라이언트를 항상 스트리밍으로 설정하십시오.

Ubuntu에 Mumble + Murmur를 설치하려면 다음을 사용할 수 있습니다.

sudo apt install mumble mumble-server
sudo systemctl stop mumble-server.service
sudo systemctl disable mumble-server.service

mic_over_mumble어디서나 복사 – ~/.mic_over_Mumble구성 디렉토리로 사용 됩니다.

를 실행하십시오 mic_over_mumble. LAN에서 서버를 시작한 다음 Mumble을 시작합니다 (닉네임을 요청하면 수퍼 유저 이외의 다른 것을 입력하십시오). 그런 다음 모바일 장치를 LAN 서버에 수동으로 연결하십시오. Mumble 모바일 앱 에는 몇 가지 문제가 있습니다 .

그런 다음 “Monitor_of_Mumble”또는 “VirtualMic”을 입력 장치로 사용하도록 프로그램을 설정하십시오 (연결되어 있음). 예 : OBS :

OBS 구성 스크린 샷

mic_over_mumble스크립트 사본 (rev 8c827fe)

#!/bin/bash
set -euo pipefail
# PAID = PulseAudio ID
# ID = PID / process ID

function main () {
    if [ ! -e ~/.mic_over_Mumble ]; then
        mkdir ~/.mic_over_Mumble
    fi
    cd ~/.mic_over_Mumble

    rm murmur.ini || true
    echo "bonjour=true" >> murmur.ini
    echo "bandwidth=130000" >> murmur.ini

    if [ ! -e ./initdone ]; then
        echo "You will need to configure Mumble client to use the lowest possible latency."
        echo "We will start Mumble now. Please complete setup wizard and go to settings to increase quality and decrease latency."
        echo "Also, mute your microphone (if you have one) in Mumble."
        echo "Then close Mumble."
        run_mumble_client_wizard
        touch ./initdone
    fi

    echo "Starting Mumble server (murmurd)..."
    run_mumble_server_bg
    sleep 5
    echo "Starting Mumble client..."
    MUMBLE_CLIENT_ID=$(run_mumble_client_bg)
    sleep 15
    echo "Fetching PulseAudio configuration..."
    MUMBLE_CLIENT_PAID=$(get_mumble_client_paid)

    echo "Changing PulseAudio configuration..."
    echo "Adding sink..."
    SINK_MODULE_PAID=$(add_sink)
    sleep 3

    echo "Fetching current configuration to redirect Mumble..."
    SINK_PAID=$(get_sink_paid)
    pacmd move-sink-input "$MUMBLE_CLIENT_PAID" "$SINK_PAID"

    echo "Adding a virtual microphone..."
    SOURCE_MODULE_PAID=$(add_source)

    echo "Done. Please use pavucontrol to ensure everything works."
    echo "Press Return to shut down..."
    read -n1 -s -r
    echo "Shutting down..."

    echo "Stopping Mumble client..."
    kill -KILL "$MUMBLE_CLIENT_ID" || true
    sleep 2
    echo "Stopping Mumble server..."
    # TODO: find a better way to kill murmurd
    # (it forks, so we cannot use its PID)
    pkill murmurd || true
    echo "Restoring PulseAudio configuration..."
    pactl unload-module "$SOURCE_MODULE_PAID"
    pactl unload-module "$SINK_MODULE_PAID"
}

function run_mumble_client_wizard () {
    mumble >/dev/null 2>&1
}

function run_mumble_client_bg () {
    MUMBLE_URL="mumble://localhost"
    mumble $MUMBLE_URL >/dev/null 2>&1 &
    echo $!
}

function run_mumble_server_bg () {
    murmurd -ini ./murmur.ini &
    # echo $!
    # TODO: here we can get murmur's PID
    # (uncomment the line above)
}

function get_mumble_client_paid () {
    pacmd list-sink-inputs |
        grep -F -e "index: " -e "media.name = " |
        cut_every_second_newline |
        grep -F -e "Mumble" |
        print_second_column
}

function add_sink () {
    pactl load-module \
        module-null-sink \
        sink_name=Loopback_of_Mumble \
        sink_properties=device.description=Loopback_of_Mumble
}

function add_source () {
    pactl load-module \
        module-virtual-source \
        source_name=VirtualMic \
        master=Loopback_of_Mumble.monitor \
        source_properties=device.description=VirtualMic
}

function get_sink_paid () {
    pacmd list-sinks |
        grep -F -e "index: " -e "name: " |
        cut_every_second_newline |
        grep -F -e "Loopback" |
        print_second_column
}

# https://serverfault.com/a/375098/449626
function cut_every_second_newline () {
    awk 'ORS=NR%2?" ":"\n"'
}

function print_second_column () {
    awk '{print $2}'
}

main


답변

음 그 앱을 전에 시도했지만 작동하지 않으므로이 방법을 권장합니다.

  • 먼저 전화에 IP 카메라 를 설치 한 다음 pulseaudio 를 설치 하십시오.이 완료되면 ipcamera를 열고 전화로 서버를 시작하십시오 .PC가 동일한 네트워크에 연결되어 있는지 확인하십시오.
  • Chrome 또는 Firefox를 열고 ipcamera가 제공 한 IP 주소를 입력하십시오 (ip는 앱에 표시됨).
  • 브라우저에서 오디오 플레이어를 클릭하고 HTML5를 선택하고 소리가 들리는 지 확인하십시오.
  • pulseaudio를 열고 재생 탭으로 이동 한 다음 클릭하여 표시하고 모든 스트림을 선택하십시오 . 크롬 또는 파이어 폭스 응용 프로그램이 마이크를 재생하는 것을 볼 수 있습니다.
  • 애플리케이션 섹션에서 Chrome 또는 Firefox에 대한 전환 확인 을 선택합니다 . 전화에서 마이크 채널로 오디오를 리디렉션하면 VLC를 사용하여 동일한 작업을 수행하고 지연과 같은 문제를 더 잘 처리 할 수 ​​있습니다.

답변