日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

最简单的基于librtmp的示例:发布H.264(H.264通过RTMP发布)

發(fā)布時間:2024/2/28 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 最简单的基于librtmp的示例:发布H.264(H.264通过RTMP发布) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

=====================================================

最簡單的基于libRTMP的示例系列文章列表:

最簡單的基于librtmp的示例:接收(RTMP保存為FLV)

最簡單的基于librtmp的示例:發(fā)布(FLV通過RTMP發(fā)布)

最簡單的基于librtmp的示例:發(fā)布H.264(H.264通過RTMP發(fā)布)

=====================================================


本文記錄一個基于libRTMP的發(fā)布H.264碼流的程序。該程序可以將H.264數(shù)據(jù)發(fā)布到RTMP流媒體服務(wù)器。目前這個例子還不是很穩(wěn)定,下一步還有待修改。

本程序使用回調(diào)函數(shù)作為輸入,通過自定義的回調(diào)函數(shù),可以發(fā)送本地的文件或者內(nèi)存中的數(shù)據(jù)。


函數(shù)調(diào)用結(jié)構(gòu)圖

本程序的函數(shù)調(diào)用結(jié)構(gòu)圖如下所示。

整個程序包含3個接口函數(shù):
RTMP264_Connect():建立RTMP連接。
RTMP264_Send():發(fā)送數(shù)據(jù)。
RTMP264_Close():關(guān)閉RTMP連接。
按照順序調(diào)用上述3個接口函數(shù)就可以完成H.264碼流的發(fā)送。

結(jié)構(gòu)圖中關(guān)鍵函數(shù)的作用如下所列。

RTMP264_Connect()中包含以下函數(shù):
InitSockets():初始化Socket
RTMP_Alloc():為結(jié)構(gòu)體“RTMP”分配內(nèi)存。
RTMP_Init():初始化結(jié)構(gòu)體“RTMP”中的成員變量。
RTMP_SetupURL():設(shè)置輸入的RTMP連接的URL。
RTMP_EnableWrite():發(fā)布流的時候必須要使用。如果不使用則代表接收流。
RTMP_Connect():建立RTMP連接,創(chuàng)建一個RTMP協(xié)議規(guī)范中的NetConnection。
RTMP_ConnectStream():創(chuàng)建一個RTMP協(xié)議規(guī)范中的NetStream。
RTMP264_Send()中包含以下函數(shù):
ReadFirstNaluFromBuf():從內(nèi)存中讀取出第一個NAL單元。
ReadOneNaluFromBuf():從內(nèi)存中讀取出一個NAL單元。
h264_decode_sps():解碼SPS,獲取視頻的寬,高,幀率信息。
SendH264Packet():發(fā)送一個NAL單元。
SendH264Packet()中包含以下函數(shù):
SendVideoSpsPps():如果是關(guān)鍵幀,則在發(fā)送該幀之前先發(fā)送SPS和PPS。
SendPacket():組裝一個RTMPPacket,調(diào)用RTMP_SendPacket()發(fā)送出去。
RTMP_SendPacket():發(fā)送一個RTMP數(shù)據(jù)RTMPPacket。
RTMP264_Close()中包含以下函數(shù):
RTMP_Close():關(guān)閉RTMP連接。
RTMP_Free():釋放結(jié)構(gòu)體“RTMP”。
CleanupSockets():關(guān)閉Socket。

源代碼

程序提供的3個接口函數(shù)的使用方法如下。可以看出接口比較簡單。

[cpp]?view plaincopy
  • /**?
  • ?*?Simplest?Librtmp?Send?264?
  • ?*?
  • ?*?雷霄驊,張暉?
  • ?*?leixiaohua1020@126.com?
  • ?*?zhanghuicuc@gmail.com?
  • ?*?中國傳媒大學(xué)/數(shù)字電視技術(shù)?
  • ?*?Communication?University?of?China?/?Digital?TV?Technology?
  • ?*?http://blog.csdn.net/leixiaohua1020?
  • ?*?
  • ?*?本程序用于將內(nèi)存中的H.264數(shù)據(jù)推送至RTMP流媒體服務(wù)器。?
  • ?*?This?program?can?send?local?h264?stream?to?net?server?as?rtmp?live?stream.?
  • ?*/??
  • ??
  • #include?<stdio.h>??
  • #include?"librtmp_send264.h"??
  • ??
  • ??
  • ??
  • FILE?*fp_send1;??
  • ??
  • //讀文件的回調(diào)函數(shù)??
  • //we?use?this?callback?function?to?read?data?from?buffer??
  • int?read_buffer1(unsigned?char?*buf,?int?buf_size?){??
  • ????if(!feof(fp_send1)){??
  • ????????int?true_size=fread(buf,1,buf_size,fp_send1);??
  • ????????return?true_size;??
  • ????}else{??
  • ????????return?-1;??
  • ????}??
  • }??
  • ??
  • int?main(int?argc,?char*?argv[])??
  • {??
  • ????fp_send1?=?fopen("cuc_ieschool.h264",?"rb");??
  • ??
  • ????//初始化并連接到服務(wù)器??
  • ????RTMP264_Connect("rtmp://localhost/publishlive/livestream");??
  • ??????
  • ????//發(fā)送??
  • ????RTMP264_Send(read_buffer1);??
  • ??
  • ????//斷開連接并釋放相關(guān)資源??
  • ????RTMP264_Close();??
  • ??
  • ????return?0;??
  • }??

  • 接口函數(shù)內(nèi)部的代碼比較多,不再詳細記錄。

    下載


    Simplest LibRTMP Example


    項目主頁

    SourceForge:https://sourceforge.net/projects/simplestlibrtmpexample/

    Github:https://github.com/leixiaohua1020/simplest_librtmp_example

    開源中國:http://git.oschina.net/leixiaohua1020/simplest_librtmp_example


    CSDN下載: http://download.csdn.net/detail/leixiaohua1020/8291757

    本工程包含了LibRTMP的使用示例,包含如下子工程:
    simplest_librtmp_receive: 接收RTMP流媒體并在本地保存成FLV格式的文件。
    simplest_librtmp_send_flv: 將FLV格式的視音頻文件使用RTMP推送至RTMP流媒體服務(wù)器。
    simplest_librtmp_send264: 將內(nèi)存中的H.264數(shù)據(jù)推送至RTMP流媒體服務(wù)器。

    總結(jié)

    以上是生活随笔為你收集整理的最简单的基于librtmp的示例:发布H.264(H.264通过RTMP发布)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 操操网| 毛片在哪里看 | 五月婷激情 | 国产网红在线 | 欧美老肥妇做.爰bbww视频 | 91导航 | 91在线免费视频观看 | 一区二区视频在线 | 强辱丰满人妻hd中文字幕 | 精品久草| 亚洲一区二区图片 | 美女色诱男人激情视频 | 亚洲女人av | 国产啪视频 | 爱爱视频网 | 久久亚洲少妇 | 美女啪啪一区二区 | 欧日韩视频 | 色爱AV综合网国产精品 | 亚洲精品美女久久久 | 国产第3页 | 久久av一区二区 | 精品国产乱码一区二区三 | 亚欧洲精品在线视频免费观看 | 一级片欧美 | 三级免费观看 | 青青草99| 九九九视频在线观看 | 国产精品无遮挡 | 超碰天天 | 夜久久 | 亚洲二区在线视频 | 侵犯女教师一区二区三区 | 黄色一级小视频 | 婷婷伊人久久 | 国精产品一区一区三区免费视频 | 黄色h视频| 丝袜淫脚 | 女生脱裤子让男生捅 | 亚洲人成电影在线播放 | 春草 | 一本一道久久a久久精品综合 | 91丨porny丨海角社区 | 无码国产精品久久一区免费 | 能在线观看的av | 五月婷婷六月色 | 国产成人精品视频一区二区 | 激情开心成人网 | 91精品国产91综合久久蜜臀 | 激情拍拍 | 国产人妖在线 | 日韩中文字幕在线一区 | 国产乱淫av公 | 亚洲经典在线 | 欧美精品久久天天躁 | 色婷婷综合久久久久中文 | 色欧美综合| 国产欧美日韩综合精品一区二区三区 | www亚洲视频 | 99只有精品 | 制服诱惑一区二区 | 北条麻妃一区二区三区在线观看 | 国产夫妻精品 | 高清乱码免费网 | 日韩欧美在线观看视频 | 理论片中文| 刘亦菲久久免费一区二区 | av在线网页 | 黄色片网站国产 | 日本高清视频免费看 | 丁香四月婷婷 | 成年人在线视频观看 | 久国产精品 | 伊人色综合久久天天 | 龚玥菲三级露全乳视频 | 一区二区日韩在线观看 | 天天躁日日躁aaaaxxxx | 毛片一级在线观看 | 顶级嫩模啪啪呻吟不断好爽 | 韩日一级片 | 亚洲国产综合av | 麻豆精品视频在线 | 亚洲国产精品久久久久爰色欲 | 精品国产乱码久久久久久1区二区 | 岛国av片| 97夜夜操| av免播放器在线观看 | 欧美日韩福利视频 | 国产欧美日韩三区 | 欧美黄色一区 | 国产吞精囗交免费视频 | 就要操av | 超清纯大学生白嫩啪啪 | 亚洲第一区av | 少妇一区二区三区四区 | www.国产黄色 | 日韩有码第一页 | 国产午夜在线视频 | 91免费视 |