1. 程式人生 > >FFMPEG對RTP直播流轉發的實現

FFMPEG對RTP直播流轉發的實現

一、RTP的流釋出

    (見上篇)

二、對不同RTP流媒體的SDP檔案定義

    1、Wireshark對RTP流的抓包分析:

       首先分析SIP訊息中SIP/SDP訊息中的SDP定義,得到基本的SDP檔案,如下

儲存檔案h264.sdp

SDP:
v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
c=IN IP4 192.168.0.52
t=0 0
a=tool:libavformat 52.93.0
m=audio 7300 RTP/AVP 8
a=rtpmap:8 PCMU/8000
m=video 7310 RTP/AVP 104
a=rtpmap:104 H264/90000
a=fmtp:104 profile-level-id=42e00a; packetization-mode=1; max-br=452; max-mbps=11880

     其次,有了以上SDP後通過ffplay h264.sdp 還不能正確的播放,因為H264的具體解碼格式在RTP流的前兩個包裡,如果ffplay錯過了該包,就不能正確播放,所以必須要獲得sprop-parameter-sets值。

  2、Wireshark抓RTP包中的SPS和PPS

    得到包的Base64值的SPS和PPS值。

    SPS:67 42 c0 14 f4 0b 04 b4 20 00 00 03 00 20 00 00 03 03 d1 e2 85 54

    PPS:68 ce 04 f2

    67是SPS起始位,68是PPS起始位。

  3、轉換SPS/PPS到sprop-parameter-sets

    sprop-parameter-sets=Z0LAFPQLBLQgAAADACAAAAMD0eKFVA==,aM4E8g==

  4、合併H264.sdp

    v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
c=IN IP4 192.168.0.52
t=0 0
a=tool:libavformat 52.93.0
m=audio 7300 RTP/AVP 8
a=rtpmap:8 PCMU/8000
m=video 7310 RTP/AVP 104
a=rtpmap:104 H264/90000
a=fmtp:104 profile-level-id=42e00a; packetization-mode=1; max-br=452; max-mbps=11880; sprop-parameter-sets=Z0LAFPQLBLQgAAADACAAAAMD0eKFVA==,aM4E8g==

三、播放

    通過ffplay H264.sdp就可以正確播放,錯過SPS/PPS包也可以。

四、RTSP流媒體釋出

   1、流媒體伺服器(real server)

      real server獲取H264.sdp檔案實現釋出。

五、RTMP流媒體釋出

   1、流媒體伺服器(rtmp server)

   2、ffmpeg轉發

      ffmpeg -i "e:\tt.sdp" -vcodec flv -acodec aac -ab 8000 -f flv rtmp://192.168.0.201:1935/live/stream3   

   3、播放

      jwplayer 實現:

      rtmp://192.168.0.201:1935/live/stream3

      成功。

相關推薦

FFMPEGRTP直播流轉實現

一、RTP的流釋出     (見上篇) 二、對不同RTP流媒體的SDP檔案定義     1、Wireshark對RTP流的抓包分析:        首先分析SIP訊息中SIP/SDP訊息中的SDP定義,得到基本的SDP檔案,如下 儲存檔案h264.sdp S

Android 音視頻深入 十六 FFmpeg 推流手機攝像頭,實現直播 (附源碼下載)

音視頻 FFmpeg RTMP 直播 Android 源碼地址https://github.com/979451341/RtmpCamera/tree/master 配置RMTP服務器,雖然之前說了,這裏就直接粘貼過來吧 1.配置RTMP服務器 這個我不多說貼兩個博客分別是在mac和win

依賴Jetty實現流轉功能的實踐

最近在寫檔案的下載服務,主要功能是將請求URL呼叫業務介面進行解析,解析到真實的下載地址,然後將下載流透傳出去。這一部分之前使用nginx-lua實現,由於維護過於困難(優雅上下線、截流、熔斷能力缺乏, 證書相關運維支援缺失),因此改用Java實現。本文也主要論

實現rtp H264碼流的組幀

rtp打包h264,包含了三種類型的包:  一個rtp包攜帶了一幀資料(single)  多個rtp包攜帶了一幀資料(FU-A)  一個rtp包攜帶了多幀資料(STAP-A) 在實際應用中絕大部分採用的是前兩種方式,對方式1常見的是對nalu的sps,pps進行打包

Android 音視訊深入 十六 FFmpeg 推流手機攝像頭,實現直播 (附原始碼下載)

原始碼地址https://github.com/979451341/RtmpCamera/tree/master配置RMTP伺服器,雖然之前說了,這裡就直接貼上過來吧1.配置RTMP伺服器這個我不多說貼兩個部落格分別是在mac和windows環境上的,大家跟著弄MAC搭建RT

python基礎----socketserver多並實現、FTP上傳多並

span end 沒有 res hasattr ret net packet except 一、socketserver多並發 基於tcp的套接字,關

含有象的List集合實現字母數字混合排序

gets 以及 實現 基本 ride man substring new 混合 List<PageData> varList = [{BOMCode=10A, mantotal=4}, {BOMCode=10B, mantotal=1}, {BOMCo

python之面向象(繼承的實現原理及封裝)

let 基類 什麽 isp odi speed utf-8 賦值 類名 一、繼承的實現原理 繼承的順序 class A(object): def test(self): print(‘from A‘) class B(A): def t

用VLC讀取攝像頭產生RTSP流,DSS主動取流轉(一)

sdp nco con alt 分享 pad 流轉 publish enc 用VLC讀取攝像頭產生RTSP流,DSS主動取流轉發(一) 攝像機地址是192.1.101.51,VLC運行在192.1.101.77上,DSS服務器架設在192.1.101.

javaFile文件夾實現刪除

pub rgs ring string void static new rec del //刪除文件夾 public void delete(File f){   //判斷是否文件,若是文件,直接刪除,否則遞歸,刪除所有文件   if(!f.isDirectory()

JavaScript裏的Date 象屬性及象方法--實現簡單的日歷

tor 個數 lin all date rip rec 說明 進行 上網搜索"js 日歷插件"就會出來各種效果的功能豐富的日歷插件,很多都可以下載源碼,然後根據各自的需求對源碼進行修改就可以直接用了. 但今天講的不是如何使用這些插件,而是講如何實現一個很簡單的只有當前這

《卡拉偶客》直播版吸金179萬 花椒直播持續力打造PGC內容

花椒直播歷經去年的“百播大戰”,網絡直播已經結束野蠻生長,轉而進入資本搭臺巨頭唱戲頭部競爭的下半場。環顧2017年上半年,集資源、資金、流量於一身的頭部平臺,為了在競爭中保持優勢,不斷在平臺、內容以及運營方面發力,並集體重金打造專業PGC內容建設。五月份,花椒直播宣布投入1億資金打造PGC內容。近日,花椒直播

熊貓直播Rancho布系統構建之路(二)

熊貓 直播 rancho 前段時間寫了一篇關於熊貓直播Rancho發布構建之路文章,裏面涵蓋了發布平臺的全部功能,也列舉了技術架構,當前使用和支撐情況,包括產品開發的目的,設計等等。接下來的時間裏,我們又在發布平臺上開發了新功能,而且前期在排期,而時間有限無法抽身做的功能,現於開發完成,並且上線使

Java原子類AtomicInteger實現原理的一點總結

sync add cef 比較 and offset active 基本 即時編譯 java原子類不多,包路徑位於:java.util.concurrent.atomic,大致有如下的類: java.util.concurrent.atomic.AtomicBoolean

利用Apach abnodejs進行並負載的壓力測試

img http ole pad 圖片 png ons UNC ber 大家應該都有聽過,nodejs性能優越,並發也很好之類的話,那我們用Apache ab對node這個空框架測試一下,然後再對一些網站測試一下,或或少一定的參考意義把。 Apache ab測試工具是模擬多

侯捷《C++面向象開發》——動手實現自己的復數類

using ble 養成 參數類型 打破 什麽 自己 ret polar 前言 最近在看侯捷的一套課程《C++面向對象開發》,剛看完第一節introduction之後就被瘋狂圈粉。感覺侯捷所提及所重視的部分也正是我一知半解的知識盲區,我之前也寫過一些C++面向對象的程序

[PHP] 算法-數組歸並排序並計算逆序的個數的PHP實現

sep 可能 ret sort 輸入一個數 data UNC 總數 fun 在數組中的兩個數字,如果前面一個數字大於後面的數字,則這兩個數字組成一個逆序對。輸入一個數組,求出這個數組中的逆序對的總數P。並將P對1000000007取模的結果輸出。 即輸出P%1000000

要重塑網際網路內容質量的Primas;美國一州再次四項ICO停止令

    今日要聞 要重塑網際網路內容質量的Primas 以太坊君士坦丁堡硬分叉或於1月16日進行 美國科羅拉多州再次對四項ICO發出停止令 美國運通獲得中國業務批准   今日價格走勢   行業動態 要重塑

一對一直播開發愈發火熱,11直播源碼到底價值何在

ges 廣告 我們 交友 完整 傳輸 設計 平臺 常見 直播行業態勢平穩,在現今所有APP中,直播APP變現也是是最容易的,土豪一揮手,火箭天天有,直播平臺賺的盆滿缽滿。而作為直播行業發展的新風口——一對一直播也越來越火,不少直播平臺都準備引入一對一直播的方式,為此一對一直

android平臺下基於ffmpeg相機採集的NV21資料編碼為MP4視訊檔案

音視訊實踐學習 android全平臺編譯ffmpeg以及x264與fdk-aac實踐 ubuntu下使用nginx和nginx-rtmp-module配置直播推流伺服器 android全平臺編譯ffmpeg合併為單個庫實踐 android-studio使用c