最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在Ubuntu上使用FFmpeg實(shí)現(xiàn)RTP音頻傳輸與播放的完整流程

 更新時(shí)間:2025年07月28日 10:20:14   作者:is0815  
在音視頻開(kāi)發(fā)或遠(yuǎn)程通信場(chǎng)景中,RTP是一種常用的實(shí)時(shí)音頻傳輸協(xié)議,本文將介紹如何使用 FFmpeg 在 Ubuntu 上實(shí)現(xiàn)從一臺(tái)主機(jī)發(fā)送音頻流,另一臺(tái)主機(jī)接收并播放音頻的完整流程,需要的朋友可以參考下

引言

在音視頻開(kāi)發(fā)或遠(yuǎn)程通信場(chǎng)景中,RTP(Real-time Transport Protocol) 是一種常用的實(shí)時(shí)音頻傳輸協(xié)議。本文將介紹如何使用 FFmpeg 在 Ubuntu 上實(shí)現(xiàn)從一臺(tái)主機(jī)發(fā)送音頻流,另一臺(tái)主機(jī)接收并播放音頻的完整流程。

目標(biāo):從 192.168.1.129 推送 test.wav 音頻文件,通過(guò) RTP 發(fā)送到 192.168.1.137,后者通過(guò) ffplay 播放。

環(huán)境準(zhǔn)備

兩臺(tái) Ubuntu 主機(jī)(或一臺(tái)主機(jī)多個(gè)終端模擬)

安裝 FFmpeg:

sudo apt install ffmpeg

音頻測(cè)試文件 test.wav,要求:

  • 格式:PCM 16-bit Big Endian(對(duì)應(yīng) RTP 中的 L16
  • 采樣率:16000 Hz
  • 聲道:單聲道

可用以下命令確認(rèn):

ffmpeg -i test.wav

推送端配置(192.168.1.129)

使用 ffmpeg 推送音頻流:

ffmpeg -re -stream_loop -1 -i test.wav \
  -acodec pcm_s16be -ar 16000 -ac 1 \
  -payload_type 97 \
  -f rtp rtp://192.168.1.137:5004

說(shuō)明:

  • pcm_s16be:必須是 Big Endian,才能對(duì)應(yīng) RTP 中的 L16
  • -payload_type 97:動(dòng)態(tài)負(fù)載編號(hào),需與 SDP 一致
  • 5004:目標(biāo)主機(jī) RTP 監(jiān)聽(tīng)端口

接收端配置(192.168.1.137)

Step 1:創(chuàng)建 SDP 文件

RTP 接收端需要通過(guò) SDP 文件了解流的參數(shù)。

新建 audio.sdp 文件:

v=0
o=- 0 0 IN IP4 192.168.1.137
s=RTP Audio
c=IN IP4 192.168.1.137
t=0 0
m=audio 5004 RTP/AVP 97
a=rtpmap:97 L16/16000/1

97 為動(dòng)態(tài) payload 類型,與推送端匹配
L16/16000/1 表示 16-bit PCM / 16000Hz / Mono

Step 2:使用 ffplay 播放

運(yùn)行:

ffplay -protocol_whitelist file,udp,rtp -i audio.sdp

如果推送成功,你將聽(tīng)到 test.wav 被循環(huán)播放。

常見(jiàn)問(wèn)題排查

問(wèn)題原因與解決方法
聽(tīng)到「嘟嘟」噪音使用 nc 監(jiān)聽(tīng)原始 RTP 數(shù)據(jù) → 無(wú)法解碼 RTP header,不能作為播放器使用
沒(méi)有聲音,ffplay 無(wú)報(bào)錯(cuò)編碼格式不匹配,確保 pcm_s16be 與 SDP 中的 L16 一致
ffplay 顯示 0KB 緩沖推送沒(méi)啟動(dòng) / IP 寫錯(cuò) / 防火墻阻擋
播放器顯示 Unable to receive RTP payloadSDP 文件不完整或 payload type 不一致

網(wǎng)絡(luò)連通性驗(yàn)證技巧

在接收端檢查 UDP 流是否達(dá)到:

tcpdump -n -i any udp port 5004

確認(rèn)有數(shù)據(jù)包進(jìn)來(lái)再進(jìn)一步排查音頻格式問(wèn)題。

附加:麥克風(fēng)實(shí)時(shí)采集推流(可選)

使用 arecord 實(shí)時(shí)采集麥克風(fēng)音頻并通過(guò) FFmpeg 發(fā)送:

arecord -D hw:0,0 -f S16_LE -c 1 -r 16000 -t raw | \
ffmpeg -f s16le -ar 16000 -ac 1 -i - \
  -acodec pcm_s16be -f rtp rtp://192.168.1.137:5004

此時(shí)接收端仍可使用前文 SDP 文件播放。

總結(jié)

通過(guò)本文方法,你可以成功實(shí)現(xiàn):

  • RTP 音頻流從一臺(tái)主機(jī)傳輸?shù)搅硪慌_(tái)
  • 使用標(biāo)準(zhǔn) SDP 描述流參數(shù)
  • 基于 FFmpeg 與 ffplay 全流程構(gòu)建測(cè)試環(huán)境

附錄:完整腳本示例

播放器腳本 play_rtp.sh

#!/bin/bash
cat > audio.sdp <<EOF
v=0
o=- 0 0 IN IP4 192.168.1.137
s=RTP Audio
c=IN IP4 192.168.1.137
t=0 0
m=audio 5004 RTP/AVP 97
a=rtpmap:97 L16/16000/1
EOF

ffplay -protocol_whitelist file,udp,rtp -i audio.sdp

推流腳本 send_rtp.sh

#!/bin/bash
ffmpeg -re -stream_loop -1 -i test.wav \
  -acodec pcm_s16be -ar 16000 -ac 1 \
  -payload_type 97 -f rtp rtp://192.168.1.137:5004

如有更高需求,例如 RTP over RTSP 或 WebRTC,可以進(jìn)一步拓展。

以上就是在Ubuntu上使用FFmpeg實(shí)現(xiàn)RTP音頻傳輸與播放的完整流程的詳細(xì)內(nèi)容,更多關(guān)于Ubuntu FFmpeg RTP音頻傳輸與播放的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解虛擬機(jī)下CentOS 6.5配置IP地址的三種方法

    詳解虛擬機(jī)下CentOS 6.5配置IP地址的三種方法

    本篇文章主要介紹了虛擬機(jī)下CentOS 6.5配置IP地址的三種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • linux如何編寫同步文件的腳本

    linux如何編寫同步文件的腳本

    這篇文章主要介紹了linux如何編寫同步文件的腳本問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Linux系統(tǒng)配置(服務(wù)控制)詳細(xì)介紹

    Linux系統(tǒng)配置(服務(wù)控制)詳細(xì)介紹

    大家好,本篇文章主要講的是Linux系統(tǒng)配置(服務(wù)控制)詳細(xì)介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • linux服務(wù)器磁盤擴(kuò)容的方法(圖)

    linux服務(wù)器磁盤擴(kuò)容的方法(圖)

    如果你的linux服務(wù)器磁盤不夠用了,那就需要給磁盤擴(kuò)容了,下面我們介紹一下linux服務(wù)器磁盤擴(kuò)容的方法,大家參考使用吧
    2014-01-01
  • Apache簡(jiǎn)介及安全配置方案

    Apache簡(jiǎn)介及安全配置方案

    Apache HTTP Server(簡(jiǎn)稱Apache)是Apache軟件基金會(huì)的一個(gè)開(kāi)放源碼的網(wǎng)頁(yè)服務(wù)器,可以在大多數(shù)計(jì)算機(jī)操作系統(tǒng)中運(yùn)行,由于其多平臺(tái)和安全性被廣泛使用,是最流行的Web服務(wù)器端軟件之一。它快速、可靠并且可通過(guò)簡(jiǎn)單的API擴(kuò)展,將Perl/Python等解釋器編譯到服務(wù)器中。
    2014-08-08
  • Linux gnome桌面環(huán)境切換KDE_Plasma實(shí)現(xiàn)過(guò)程

    Linux gnome桌面環(huán)境切換KDE_Plasma實(shí)現(xiàn)過(guò)程

    這篇文章主要介紹了Linux gnome桌面環(huán)境切換KDE_Plasma實(shí)現(xiàn)過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2026-01-01
  • Linux服務(wù)器VPS的Windows?DD包詳細(xì)的制作教程

    Linux服務(wù)器VPS的Windows?DD包詳細(xì)的制作教程

    這里就說(shuō)下Windows?dd包的制作過(guò)程,雖然網(wǎng)上很多這樣的dd包,但對(duì)于一些來(lái)歷不明的,也會(huì)有點(diǎn)不放心,所以我們有時(shí)間的話可以自己定制一個(gè)
    2022-08-08
  • PHP腳本內(nèi)存泄露導(dǎo)致Apache頻繁宕機(jī)解決方法

    PHP腳本內(nèi)存泄露導(dǎo)致Apache頻繁宕機(jī)解決方法

    這篇文章主要介紹了PHP腳本內(nèi)存泄露導(dǎo)致Apache頻繁宕機(jī)解決方法,本文的原因是因?yàn)镸axRequestsPerChild參數(shù)沒(méi)有配置正確,配置MaxRequestsPerChild后解決了本文中的問(wèn)題,需要的朋友可以參考下
    2014-09-09
  • 關(guān)于VPS內(nèi)存不足的一些說(shuō)明和解決辦法

    關(guān)于VPS內(nèi)存不足的一些說(shuō)明和解決辦法

    關(guān)于VPS內(nèi)存不足的一些說(shuō)明和解決辦法,需要的朋友可以參考下。
    2011-11-11
  • Linux如何安裝JDK 17

    Linux如何安裝JDK 17

    本文詳細(xì)介紹了在Linux系統(tǒng)上安裝JDK17的步驟,包括下載安裝包、創(chuàng)建安裝目錄、上傳與解壓、配置環(huán)境變量、使環(huán)境變量生效以及驗(yàn)證安裝
    2025-02-02

最新評(píng)論

高州市| 迭部县| 南丰县| 秦安县| 丰县| 瑞安市| 湟源县| 苏州市| 天台县| 新野县| 沙湾县| 库车县| 平远县| 长寿区| 崇阳县| 武义县| 琼结县| 乐清市| 大悟县| 沈阳市| 安宁市| 娄烦县| 剑川县| 怀宁县| 海丰县| 大荔县| 手游| 无锡市| 长岭县| 南昌市| 龙口市| 吴堡县| 政和县| 卢氏县| 文安县| 电白县| 加查县| 清河县| 虹口区| 普陀区| 长海县|