首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏用户1692782的专栏

    手撕Rtmp协议细节(8)——publish

    publish 对于端,经过releaseStream,createStream消息之后,得到了_result消息之后,接下来客户端就可以发起publish消息。 端使用publish消息向rtmp服务器端发布一个命名的,发布之后,任意客户端都可以以该名称请求视频、音频和数据。我们首先来看一下publish消息的组织结构: ? ,现在可以流了。 SetDataFrame/OnMetaData 一般在客户端收到服务端返回的针对publish的onStatus消息之后,如果没有异常,端还会向服务器发送一条SetDataFrame的消息,其中包含 onMetaData消息,这一条消息的主要作用是告诉服务端,段关于音视频的处理采用的一些参数,比如音频的采样率,通道数,帧率,视频的宽,高等信息。

    4.2K30发布于 2020-05-26
  • 来自专栏技术综合

    OBS

    1.png 2.png 3.png 4.png 5.png

    7.8K30发布于 2020-08-25
  • 来自专栏转载gongluck的CSDN博客

    使用librtmp

    MAKEWORD(1, 1); WSAStartup(version, &wsaData); int res = 0; RTMP* rtmp = RTMP_Alloc(); RTMP_Init(rtmp); res = RTMP_SetupURL(rtmp, "rtmp://192.168.34.40/live/test");// PRINTERROR(res, 1, "RTMP_SetupURL ; //if unable,the AMF command would be 'play' instead of 'publish' RTMP_EnableWrite(rtmp);//要设置写 \n"); // FILE *fp_push=fopen("save.flv","rb"); FlvHeader flvheader; fread(&flvheader //if unable,the AMF command would be 'play' instead of 'publish' //RTMP_EnableWrite(rtmp);//要设置写

    6.7K60发布于 2018-03-08
  • 来自专栏流媒体

    Android RTMP之MediaCodec硬编码二(RTMPDump

    Android平台下RTMPDump的使用介绍了如何将RTMPDump移植到Android平台下,并读取解析flv文件进行。 主要增加三个方法:建立连接,数据,释放连接。 我们还是使用Android RTMP之MediaCodec硬编码一(H.264进行flv封装)里的代码。 第三步 c++层方法实现 c++层逻辑的编写。我们将方法写到rtmp_handle.cpp。 正好通过小端模式读取出来就是8,所以不需要转换。

    5.3K50发布于 2018-08-23
  • 来自专栏腾讯云产品

    【腾讯云】TRTC直播+页面渲染云直播实践

    图片发布好之后,根据参考文章【腾讯云】TRTC直播实践使用云函数模板"TRTC直播"给对应SdkAppId的对应roomId(111)发送。 注意播放域名地址生成使用的AppName,StreamName必须和的一样,否则之后播放地址看不到图片云直播测试/播放参考云直播文档 web流点击"云直播"->"Web",以"多路混 图片设置好输入源后,可以在右边预览查看图片输入的WebRTC地址后,点击"开始"。 tcplayer 预览直播地址的url,可以看到直播的画面,表示/播放测试成功。 txSecret=c8fbec35de878b0f686a20efdba946bc&txTime=630F5BC0" },

    17.1K102编辑于 2022-08-31
  • 来自专栏呱牛笔记

    FFmpeg命令总结

    今天考虑一个mcu混合的实现,也就是接收多路过来的rtp,然后转发出去一路的rtmp,使用ffmpeg测试做的记录,刚开始一直通过ffmpeg推送的文件不能满足要求,还是对参数配置不熟悉; 0、ffmpeg 1、udp或者rtp >最简单模式: ffmpeg -re -i d:\videos\1080P.264 -vcodec copy -f rtp rtp://127.0.0.1:1234 ffplay 192.168.0.100   m=audio 5005 RTP/AVP 97 a=rtpmap:97 PCM/8000/1 a=framerate:25 c=IN IP4 192.168.0.100 2、rtsp rtsp_transport tcp -f rtsp rtsp://192.168.2.161/live/rtsp_test -rtsp_transport tcp 标识使用tcp作为rtp的通道 3、rtmp /video.m3u8 切片mp3音频文件: ffmpeg -i .

    9.2K40编辑于 2023-05-02
  • 来自专栏Helloted

    在iOS上

    三、 因为librtmp用的是C语言,为了方便调用,我用OC封装了一下一个类RTMPPuser。 用来的代码是 RTMPPusher *pusher = [[RTMPPusher alloc]init]; BOOL success = [pusher connectWithURL = thisChunkSize; [self write:chunk]; sleep(1); } while (offset < length); } 3、写入 RTMP_Write(_rtmp, [data bytes], (int)[data length]); } return sent; } } 以上代码可以在

    2.1K20编辑于 2022-06-07
  • 来自专栏进击的多媒体开发

    【流媒体】与拉简介

    :将直播的内容推送至服务器的过程。 即指的是把采集阶段封包好的内容传输到服务器的过程。其实就是将现场的视频信号传到网络的过程。 “”对网络要求比较高,如果网络不稳定,直播效果就会很差,观众观看直播时就会发生卡顿等现象,观看体验很是糟糕。 要想用于还必须把音视频数据使用传输协议进行封装,变成数据。 在这个过程中有三个要素:1-服务器【提供视频文件存储的地方】 2-传输协议【就是你要通过什么方式传输视频】3-读取终端【就是通过什么播放出来】 示意图 以下是从网络上搜寻到的有关与拉的示意图, 一张示意图没有看明白,没有关系,再来一张示意图: 其实可以简要的理解为就是直播端,而拉就是客户端哦。 每一个码地址唯一指向单个的直播活动。它由rtmp://开头,包含了上传服务器地址,上传目录名和上传节点,三部分组成。

    14.9K42编辑于 2022-10-31
  • 来自专栏C/C++与音视频

    视频RTMP实践

    对应RTMP,业界有很多开源方案。如使用FFMPEG,librtmp(rtmp-dump),gstream。由于ffmpeg和gstreamer比较庞大,仅仅用来,有大炮打蚊子之嫌。 NULL;      NALU * CopyNALU(NALU * src);      void FreeNALU(NALU * nalu); }; Wrapper_RtmpLib对外提供RTMP接口 ");     printf("%s h264_File RTMP_URL FRate  1111\n",p); } char NALBuff[1080 * 1920 * 8]={0}; int NALLen \n");     return 0; } 基本思路如下: 读文件----解析NAL单元---利用 SendData发送一个完成的NAL单元完成 编译main.cpp Wrapper_RtmpLib.cpp 运行可执行程序 .

    9.3K30编辑于 2022-06-14
  • 来自专栏james技术专栏

    FFmpeg循环脚本

    撸了个FFmpeg的循环脚本,你的VPS除了吃灰以外还能24小时不间断直播视频。自己用的脚本,单纯分享一下,如有问题自行解决。 安装FFmpeg才能正常,是否现在安装FFmpeg? ${font}" sleep 2 fi } stream_start(){ # 定义地址和码 read -p "输入你的地址和码(rtmp协议):" rtmp # 判断用户输入的地址是否合法 if [[ $rtmp =~ "rtmp://" ]];then echo -e "${green} 地址输入正确,程序将进行下一步操作. ${font}" echo -e "${green} 1.安装FFmpeg (机器要安装FFmpeg才能正常) ${font}" echo -e "${green} 2.开始无人值守循环 ${font

    4.4K21编辑于 2023-01-07
  • 来自专栏流媒体

    Android平台下使用FFmpeg进行RTMP(摄像头

    简介 前面讲到了在Android平台下使用FFmpeg进行RTMP(视频文件),里面主要是介绍如何解析视频文件并进行,今天要给大家介绍如何在Android平台下获取采集的图像,并进行编码 学习本章之前最好先看之前的文章,这里是一套连贯的教程 RTMP服务器搭建(crtmpserver和nginx) 音视频编码相关名词详解 基于FFmpeg进行RTMP(一) 基于FFmpeg进行RTMP (二) Linux下FFmpeg编译以及Android平台下使用 Android平台下使用FFmpeg进行RTMP(视频文件) 打开摄像头并设置参数 具体代码查看CameraActivity.java (ofmt_ctx, pCodec)这个就和之前的文件一样了。 输出视频数据 ret = av_interleaved_write_frame(ofmt_ctx, &enc_pkt); 释放资源 在结束编码后我们也需要释放相关的资源 if (video_st

    7.4K51发布于 2018-08-23
  • 来自专栏腾讯云原生实践教程

    【云函数SCF】TRTC直播+页面渲染云直播实践

    发布好之后,根据参考文章【腾讯云】TRTC直播实践使用云函数模板"TRTC直播"给对应SdkAppId的对应roomId(111)发送。 云直播测试/播放参考云直播文档 web流点击"云直播"->"Web",以"多路混"为例,选择"多路混" ? 输入的WebRTC地址后,点击"开始"。看到界面上显示已经再 ? url,可以看到直播的画面,表示/播放测试成功。 txSecret=c8fbec35de878b0f686a20efdba946bc&txTime=630F5BC0" },

    7.6K41编辑于 2022-09-01
  • 来自专栏音视频开发技术

    FFmpeg流媒体处理-收

    流媒体系统是一个比较复杂的系统,简单来说涉及三个角色:流媒体服务器、客户端和收客户端。客户端是内容生产者,收客户端是内容消费者。示意图如下: ? 本文提及的收的功能,属于协议层的处理。 2.2 有两个需要注意的地方。 rtmp必须推送flv封装格式,udp必须推送mpegts封装格式,其他情况就当作是输出普通文件。这里使用push_stream变量来标志是否使用功能,这个标志后面会用到。 测试: .

    11K32发布于 2019-04-19
  • 来自专栏流媒体

    Android平台下使用FFmpeg进行RTMP(视频文件)简介

    在Android平台下用FFmepg解析视频文件并进行RTMP。如果对FFmpeg基础不熟或者不知道如何在Android项目中使用,请先阅读流媒体专栏里之前的文章。 新增函数 异常处理 设置回调方法 常见问题 源码 新增函数 首先我们将所有FFmpeg的操作抽取到一个类里面,然后增加方法。 源码见末尾 异常处理 在我们之前的代码中,并没有做异常处理。这样在正式的使用中肯定不太好的。所以我们加上try catch。统一进行资源释放。 源码见末尾 设置回调方法 为了方便我们查看的信息,我们新增一个回调类。 而我们需要在的时候使用到这个对象,所以需要转化成全局变量 pushCallback = env->NewGlobalRef(pushCallback1); 同样也需要定义对应的全局变量 jobject

    7.9K20发布于 2018-08-23
  • 来自专栏字节流动

    FFmpeg 流媒体处理 - 收

    本文提及的收的功能,属于协议层的处理。 2.2 有两个需要注意的地方。 这里使用 push_stream 变量来标志是否使用功能,这个标志后面会用到。 二是要注意的速度,不能一股脑将收到的数据全推出去,这样流媒体服务器承受不住。可以按视频播放速度(帧率)来测试: . 收测试:先按照上一步命令启动,然后运行如下命令收 .

    5.3K01发布于 2021-03-16
  • 使用腾讯云云直播流到抖音,如何获取抖音的地址和

    方案1、获取抖音的地址和码,云直播官网是没有对应的文档的。可以在抖音平台搜索获取抖音地址码等关键词。即可搜索相关视频学习如何获取。 方案2、下载火绒应用商店,搜索推拉小助手,安装应用,打开直播伴侣开启直播,通过改工具即可获取抖音的地址和码。注意:安装使用该应用需要填写用户账号和密码,自己填写记住即可。 如何使用云直播流到抖音,看我的其他的文档。 注意:本文的操作方案和步骤,均参考公网,该推拉助手应用的使用方式也是本文作者从公网处了解到的,特此记录分享,使用该推拉助手应用产生的一切问题本文作者概不负责。

    2.1K00编辑于 2025-06-28
  • 来自专栏毛毛v5

    OBS按钮堆栈信息

    obs-outputs.dll!rtmp_stream_start(void * data) 行 959 C obs.dll!obs_output_actual_start(obs_output * output) 行 239 C obs.dll!obs_output_start(obs_output * output) 行 268 C obs32.exe!AdvancedOutput::StartStreaming(obs_service * service

    2.3K20发布于 2019-06-11
  • 来自专栏nice_每一天

    使用 ffmpeg 命令直播

    rtmp rtmp ffmpeg.exe -re -i "a.mp4" -acodec aac -ar 32000 -vcodec copy -f flv "rtmp://wst.zhihuishu.com k=0a259b-5f10797f" rtmp固定时间 ffmpeg.exe -ss 00:02:45 -re -i "a.mp4" -acodec aac -ar 32000 -vcodec k=b0158c-5f10797f" 成功页面 ?

    8.1K41发布于 2019-10-26
  • 来自专栏曾大稳的博客

    Android使用libRtmp直播

    初始化rtmp //分配空间 RTMP *rtmp = RTMP_Alloc(); //初始化 RTMP_Init(rtmp); //设置URL RTMP_SetupURL(rtmp, url); //设置可写状态 RTMP_EnableWrite(rtmp); //链接服务器 RTMP_Connect(rtmp, NULL); //链接 RTMP_ConnectStream(rtmp, 0); //循环(AAC、H264) //开始 while(1){ int result = RTMP_SendPacket(rtmp, packet, 1); RTMPPacket_Free [i++] = 0xff; //sps个数 1byte body[i++] = 0xe1; //sps长度 2byte body[i++] = (spsLen >> 8) //第7位表示采样精度,0 = 8bits,1 = 16bits。

    6.9K33发布于 2020-01-20
  • 来自专栏音视频技术

    当SRS遇到K8s:如何构建海量源站?

    文 / 杨成立 当SRS遇到K8s:快速构建高并发直播集群 本章描述了基于K8s,如何构建Origin Cluster支持超多推场景。 Origin Cluster通过配置其他源站的信息,在本源站没有时查询到的位置,通过RTMP302定向到指定源站,具体原理可以参考#464。 主要应用场景如下: 源站灾备:即使比较少,也可以用两个源站,这样可以将分散到不同的源站,避免源站出现问题时影响所有的。 海量:单源站可以支持1000到3000路,高码率的支持的路数更少,有DVR和HLS时支持的路更少,源站集群有多个源站同时接收,可以支持10k~100k,参考规格。 复杂源站业务:源站除了支持和拉,还有重要的功能是DVR、转码、转HLS,DVR和HLS涉及磁盘,转码涉及CPU,都是容易发生瓶颈的资源依赖,源站集群扩展能力更强。

    1.4K60发布于 2020-02-17
领券