对应RTMP推流,业界有很多开源方案。如使用FFMPEG推流,librtmp(rtmp-dump),gstream推流。由于ffmpeg和gstreamer比较庞大,仅仅用来推流,有大炮打蚊子之嫌。针对客户端特别是瘦客户端,使用librtmp(rtmp-dump)方案更加精简,更加高效。
本方案基本思路:
RTMP视频推流流程
1. 下载并编译librtmp。
下载地址:
http://rtmpdump.mplayerhq.hu/download/
编译后产生一个librtmp.so 库
2. 调用librtmp,封装一个视频层Wrapper_RtmpLib.cpp,该类定义如下:
1classWrapper_RtmpLib 2 3{ 4 5public: 6 7Wrapper_RtmpLib(char*url); 8 9~Wrapper_RtmpLib();1011intOpen();1213intSendData(char*data,intdataLength,unsignedinttimeStamp,intdebug=-1);1415intIsConnect();1617intClose();1819private:2021intInitSockets();2223voidCleanupSockets();2425intpushSPSPPS(char*sps,intspsLen,char*pps,intppsLen,intm_stream_id,unsignedinttimeStamp);2627intpushVideoData(char*data,intdataLen,boolkeyFrame,intm_stream_id,unsignedinttimeStamp);2829intGetStartPrixLen(char*Pack,intoffest);3031char*rtmpUrl=NULL;3233RTMP*m_pRtmp=NULL;3435NALU*CopyNALU(NALU*src);3637voidFreeNALU(NALU*nalu);3839};
3. Wrapper_RtmpLib对外提供RTMP推流接口。
基本使用步骤:
1. 定义一个Wrapper_RtmpLib对象test
2. Test.open(),与服务器建立rtmp信令相关连接
3. int SendData(char * data,int dataLength, unsigned int timeStamp,int debug = -1);发送RTMP数据
注意data,必须是一个完整的NAL单元。所以应用程序调该接口前必须解析出NAL单元。
下面是一个h264裸文件推送RTMP过程。
基本思路如下:
读文件—-解析NAL单元—利用 SendData发送一个完成的NAL单元完成推流
编译main.cpp Wrapper_RtmpLib.cpp 并链接librtmp.so生成可执行文件h2642rtmp.
编译生成可执行文件
运行可执行程序推流
./h264tortmp avc.h264 rtmp://192.168.1.226:8085/live/1830562240700540100 25
使用该方案注意:
1. SendData 必须是一个完整的NAL单元。如果是文件需要解析或网络流必须解析出NAL单元
2. 时间戳采用间隔时间。即时间戳按每帧时间间隔递增,可能因为网络抖动或者1000/帧率不是帧率会存在累计误差。该demo因为不存在音视频同步,时间戳影响不大。
3.如果是云主机,在云主机内不能推公网IP,而要推内网IP 192.168.1.226,客户端访问需要外网IP。
客户端播放效果如下:
RTMP流web端播放效果
2023新疆五一车展举办时间+地点 2021新疆五一车展
2023新疆五一国际车展牢牢把握假日经济,在利好政策的支持下,冲刺汽车市场的消费新增量。(2)人阅读时间:2024-09-142024余姚hpv疫苗打过二价还能打九价吗(余姚4价疫苗哪里可以打?)
根据接种要求显示,已接种过二价HPV疫苗的请勿申请摇号。既往全程接种过四价HPV疫苗,拟接种九价HPV疫苗的,至少间隔1年以上方可接种。(3)人阅读时间:2024-09-14大学生口语四级考试考什么?(大学生口语四级考试考什么题型)
大学英语四、六级口语考试主要考核学生的英语口头表达能力,具体内容和考试过程、答题时间可以在正文查看。(3)人阅读时间:2024-09-142024宁波象山九价HPV疫苗预约接种攻略 象山九价疫苗价格
HPV疫苗接种是预防HPV感染及相关疾病的有效方法,象山九价HPV疫苗在浙里办摇号女神节福利名额,一起来看。(3)人阅读时间:2024-09-14教师考编条件(教师编制考试报名条件)
先在省/自治区的教育厅官网、政府官网或人力资源保障局官网、地方人事考试网、培训机构网站查看招考信息,招聘公告会发布报名网站或报..2024-09-14100元的意外保险包含哪些(100元意外保险介绍)
目前,100元的意外保险有交通意外险、旅行意外险、航空意外险以及个人综合意外险,承担的保险责任包括意外身故、意外残疾、意外残疾以及..2024-09-14昆山花海旅游景点在哪里 昆山有花的游玩景点
金华花海景区坐落于江苏省昆山市张浦镇金华村,是目前长三角地区种植规模很大的纯香草园区。总面积近500亩以普罗旺斯薰衣草,四季薰衣草..2024-09-14花剌子模是现在哪国 花剌子模是现在哪国啊姆耳河
花剌子模位于中亚西部的地理区域,阿姆河下游、咸海南岸,今乌兹别克斯坦及土库曼斯坦两国的土地上。花剌子模的历史花剌子模有时也被写..2024-09-14