EasyDSS能支持多屏播放,可兼容Windows、Android、iOS、Mac等操作系统,还能支持CDN转推,具备较强的可拓展性与灵活性。 OBS Studio是免费开源的视频录制与直播流软件,支持Windows、macOS、Linux操作系统,在视频直播功能上,也深受用户的欢迎。 今天和大家分享一个技术干货,如何使用OBS推流到EasyDSS平台实现同屏播放。 操作步骤如下:1)首先,打开OBS:2)打开设置,选择推流:3)按照rtmp://{ip}:{port}/{application}/id这个规则,配置相关参数后,即可推送流成功,实现视频直播同屏的效果 ,如图:我们在此前的文章也分享过如何使用OBS进行推流录屏与直播,感兴趣的用户可以翻阅我们往期的文章进行了解。
很多开发者在做Android平台RTMP推流或轻量级RTSP服务(摄像头或同屏)时,总感觉接口不够用,以大牛直播SDK为例 (Github) 我们来总结下,我们常规需要支持的编码前音视频数据有哪些类型: CAMERA_FACING_BACK with 0, CAMERA_FACING_FRONT with 1 * * @param curOrg: * PORTRAIT = 1; //竖屏 * LANDSCAPE = 2; //横屏 home键在右边的情况 * LANDSCAPE_LEFT_HOME_KEY = 3; //横屏 home键在左边的情况 支持RGBA数据接入(支持裁剪后数据接入,主要用于同屏场景): /** * Set live video data(no encoded data). 支持RGB565数据接入(主要用于同屏场景): /** * Set live video data(no encoded data).
转载请以链接形式标明出处: 本文出自:103style的博客 目录 资源下载 配置环境变量 检查Nginx 是否能成功启动 修改 Nginx 配置 推流测试 关闭 Nginx 资源下载 将下述资源下载到同一个目录 location / { # root html; # index index.html index.htm; # } #} } ---- 推流测试 使用FFmpeg 本地推流。
display this help and exit [root@56-201 ~]# 这里不准备演示 scriptreplay 的使用方法,其实也很简单 这里接合重定向实现文本终端的同屏 qlen 1000 link/ether 52:54:00:16:5e:11 brd ff:ff:ff:ff:ff:ff [root@56-201 ~]# ---- 目标 通过重定向实现文本终端同屏 通过跟踪日志实现文本终端同屏 ---- 创建日志 [root@56-201 jail]# ll total 0 drwxr-xr-x. 2 root root 30 7月 30 19:04 bin bin lib64 [root@56-201 jail]# 之后从客户端 terminal 中看到的就是服务端中的内容,这个方法客户端登录后要主动使用 tail 命令,服务端不用做什么别的操作 两种同屏效果
1.png 2.png 3.png 4.png 5.png
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);//推流要设置写
RT到底是一个什么样的推流协议呢? 针对链路丢包,SRT是如何解决的呢? 本周的技术解码,为您带来 SRT推流技术解析 ? 即便是在网络环境较差的场地,主播们也可以为水友们带来流畅的直播内容,极大提升了移动端主播的推流质量和直播间用户的观看体验。 在首次尝试使用SRT后,RTMP推流和SRT推流对比如下: ? 通过上图的对比可以明显的看到在应用 SRT 推流后卡顿率有所改善 在推流丢包率对比这块,通过终端的信息对比,下行方面在应用 SRT 推流后由于上行质量的优化,下行流畅度也得到相应的提升。 Android 平台SRT 推流性能测试数据(测试平台—MI9) ? iOS 平台SRT 推流性能测试数据(测试平台—iPhone XR): ? 推流端通过 SRT 协议直接传输包含音视频数据的 ts 流,下行复用了现有直播系统。TS over SRT 已作为 Haivision 硬件及 OBS 的推流格式标准。
EasyScreenLive是集采集、编码、组播、推流和流媒体RTSP服务于一身的同屏功能组件,具备低延时, 高效能,低丢包等特点,目前该组件仅支持Windows、Android平台。 image.png 在EasyScreenLive demo程序中,部分用户有将视频流推送到腾讯云进行直播的需求,然而腾讯云给的rtmp推流的地址没有端口,导致EasyScreenLive程序端口无法正确填写 image.png EasyScreenLive demo实际是可以实现推到腾讯云直播的,因为EasyScreenLive支持rtsp和rtmp推流。 rtmp默认端口:1935 下图是腾讯云rtmp推流地址: image.png 解决该问题的方式就是把红色标注的程序填写到EasyScreenLive demo中的RTMP栏。
Android平台下RTMPDump的使用介绍了如何将RTMPDump移植到Android平台下,并读取解析flv文件进行推流。 有了上面两篇文章的基础后,接下了就是整合,在Android平台下使用MediaCodec进行硬编码,然后使用RTMPDump进行推流。 先来张效果图: ? 主要增加三个方法:建立连接,推流数据,释放连接。 我们还是使用Android RTMP推流之MediaCodec硬编码一(H.264进行flv封装)里的代码。 第三步 c++层方法实现 c++层推流逻辑的编写。我们将方法写到rtmp_handle.cpp。
能兼容多种平台,在Windows,Mac以及Linux上都可以使用,它简单且快速的开始串流。 之前我就介绍了OBS推流软件结合我们的流媒体直播服务器如何进行推流直播,我们的流媒体服务器就能够用OBS推流直播,是个非常便捷的工具。那么本篇就为大家介绍下OBS推流录屏或直播的流程。 4、找到“串流”选项,添加直播平台的“推流地址”,比如下面这个地址: rtmp://push-rtmp-l6.douyincdn.com/third/stream-671680522621452129931784 6、然后可以通过点击右边的开始推流,也可以右击 托盘图标,开始推流; ? 这一套简单的推流就完成了,大家也可以用我们的流媒体服务器做尝试。 ?
Airplay Mirroring客户端的同屏交互过程,分为三个主要步骤: 设备广播与发现 信息交互与能力协商 音视频数据接收与解扰 设备广播与发现 Airplay设备间的广播与发现通过Bonjour协议进行 音视频数据接收与解密 双方协商成功后,发送端开始向接收端发送视音频数据,mirroring数据是通过TCP进行发送,为h.264 ES流格式。 音视频流都是通过AES进行了加密处理,密钥需要通过上面一步的进过信息交互后的fairplay模组对setup过程中接收到的加密密钥进行解密,获得的AES解密需要的IV和KEY,然后经过AES解扰,即可以获得最终的视音频清流 其他需要注意的地方 Airplay没过Session传送过来的视频h264码流,只有开头一个关键帧. 因此这种情况并不适合直播这种需要固定GOP的场景. 我们对Airplay相关协议的逆向工程已经封装成了跨平台的类库和框架, 支持windows/Mac/Android/iOS/linux, 在自己内部产品中使用已经非常稳定, 如果有需要可以联系我们.
Airplay Mirroring客户端的同屏交互过程,分为三个主要步骤: 1, 设备广播与发现 2, 信息交互与能力协商 3, 音视频数据接收与解扰 设备广播与发现: Airplay设备间的广播与发现通过 音视频数据接收与解密 双方协商成功后,发送端开始向接收端发送视音频数据,mirroring数据是通过TCP进行发送,为h.264 ES流格式。 音视频流都是通过AES进行了加密处理,密钥需要通过上面一步的进过信息交互后的fairplay模组对setup过程中接收到的加密密钥进行解密,获得的AES解密需要的IV和KEY,然后经过AES解扰,即可以获得最终的视音频清流 其他需要注意的地方: Airplay没过Session传送过来的视频h264码流,只有开头一个关键帧. 因此这种情况并不适合直播这种需要固定GOP的场景. 我们对Airplay相关协议的逆向工程已经封装成了跨平台的类库和框架, 支持windows/Mac/Android/iOS/linux, 在自己内部产品中使用已经非常稳定, 如果有需要可以联系我们.
图片发布好之后,根据参考文章【腾讯云】TRTC直播推流实践使用云函数模板"TRTC直播推流"给对应SdkAppId的对应roomId(111)发送推流。 注意播放域名地址生成使用的AppName,StreamName必须和推流的一样,否则推流之后播放地址看不到图片云直播测试推流/播放参考云直播文档 web推流点击"云直播"->"Web推流",以"多路混流 图片设置好输入源后,可以在右边预览查看图片输入推流的WebRTC推流地址后,点击"开始推流"。 tcplayer 预览直播地址的url,可以看到直播推流的画面,表示推流/播放测试成功。 模拟浏览器打开url来录屏。
今天考虑一个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推流 concat=n=3:v=1:a=1 表示有三个输入文件,输出一条视频流和一条音频流。
三、推流 因为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; } } 以上代码可以在推流
推流 推流:将直播的内容推送至服务器的过程。 即指的是把采集阶段封包好的内容传输到服务器的过程。其实就是将现场的视频信号传到网络的过程。 “推流”对网络要求比较高,如果网络不稳定,直播效果就会很差,观众观看直播时就会发生卡顿等现象,观看体验很是糟糕。 要想用于推流还必须把音视频数据使用传输协议进行封装,变成流数据。 在这个过程中有三个要素:1-服务器【提供视频文件存储的地方】 2-传输协议【就是你要通过什么方式传输视频】3-读取终端【就是通过什么播放出来】 示意图 以下是从网络上搜寻到的有关推流与拉流的示意图, 一张示意图没有看明白,没有关系,再来一张示意图: 其实可以简要的理解为推流就是直播端,而拉流就是客户端哦。 每一个推流码地址唯一指向单个的直播活动。它由rtmp://开头,包含了上传服务器地址,上传目录名和上传节点,三部分组成。
对应RTMP推流,业界有很多开源方案。如使用FFMPEG推流,librtmp(rtmp-dump),gstream推流。由于ffmpeg和gstreamer比较庞大,仅仅用来推流,有大炮打蚊子之嫌。 NULL; NALU * CopyNALU(NALU * src); void FreeNALU(NALU * nalu); }; Wrapper_RtmpLib对外提供RTMP推流接口 \n"); return 0; } 基本思路如下: 读文件----解析NAL单元---利用 SendData发送一个完成的NAL单元完成推流 编译main.cpp Wrapper_RtmpLib.cpp 运行可执行程序推流 . 3.如果是云主机,在云主机内不能推公网IP,而要推内网IP 192.168.1.226,客户端访问需要外网IP。 客户端播放效果如下:。
撸了个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
简介 前面讲到了在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
发布好之后,根据参考文章【腾讯云】TRTC直播推流实践使用云函数模板"TRTC直播推流"给对应SdkAppId的对应roomId(111)发送推流。 云直播测试推流/播放参考云直播文档 web推流点击"云直播"->"Web推流",以"多路混流"为例,选择"多路混流" ? 输入推流的WebRTC推流地址后,点击"开始推流"。看到界面上显示已经再推流 ? url,可以看到直播推流的画面,表示推流/播放测试成功。 模拟浏览器打开url来录屏。