如何控制Wi-fi語音傳輸? (gstreamer)

如何控制Wi-fi語音傳輸? (gstreamer)

我正在嘗試透過 Wi-Fi 建立電話傳輸 我想做的是,將一個可編程 Wi-Fi 耳機(它並不真正存在,它實際上是一台 Linux 電腦)與也是 Wi-Fi 的手機連接已啟用。這就像一個人擁有一部與藍牙配對設備配對的手機的情況,當您接到電話時,您可以使用耳機本身控制呼叫建立和中止。不同的是我想使用 Wi-Fi 而不是藍牙。所以到目前為止我所做的是在 Gstreamer 中實現一個媒體串流,它可以透過 IP 發送立體聲語音訊號。這是發送者管道:

gst-launch -v  alsasrc ! audioconvert ! audio/x-raw-int,
channels=2,depth=16,width=16,rate=44100 ! rtpL16pay ! udpsink 
host=192.168.178.110 port=5000  //sender

在接收端,我做了以下操作,在 UDP 連接埠上偵聽以接收語音訊號並進行解碼和播放:

    gst-launch udpsrc port=5000 ! "application/x-rtp,media=(string)audio,
    clock-rate=(int)44100, encoding-name=(string)L16, 
    channels=(int)2, payload=(int)96" ! rtpL16depay !
    audioconvert ! alsasink    //receiver

如果我在每一端手動運行兩個串流,我會收到立體聲訊號,並透過交換在每台 Linux 電腦上的單獨終端機中運行的兩個管道,我可以在兩台 Linux 電腦之間進行即時語音。

問題在於,我必須在每個 Linux 上手動運行管道來建立雙向連接,並且眾所周知,在藍牙配對中,配對後,用戶無需手動執行任何進一步的步驟來連接手機使用耳機。來初始化兩端的發送/接收過程。

現在我的問題是這個自動化過程的正確方法是什麼,當我想建立從一台Linux計算機到另一台計算機的調用時,另一端會被通知具有指定字符的Linux(例如xxx.xxx。xxx. xxx IP 和xxxx 連接埠號碼)正在嘗試連接,在另一端確認後,上述管道開始雙向傳輸音頻,並在一端掛斷,結束對話。

相關內容