Red5

flv、MP4 视频播放问题

↘锁芯ラ 提交于 2021-02-12 06:52:31
我们平常笼统说的「视频格式」其实包含三个部分:视频编码、音频编码、容器格式。其中「编码」这个概念其实又包含两个方面:编码和解码。「视频编码」作为动词指的是将动态的图像信息转化为二进制数据的过程;其逆过程称为「视频解码」。「视频编码」作为名词则通常指的是某种特定的编码方式。同样的概念也适用于「音频编码」,只不过它转化的是声音信息。大多数「视频文件」都同时包含视频和音频,因此编码后至少都有两组二进制数据,并且两组数据必须按照特定的方式同步起来,否则我们看到的画面和听到的声音将不吻合。为了解决编码后多组不同类型的的数据的存储、传输问题,需要将他们按照一定的规律组织起来,这种组织方式即是「容器格式」。 我们常见的视频文件扩展名包括 .avi, .rmvb, .mp4, .mkv 等。其实扩展名都是指的某种容器格式。这些容器里面存放的数据可能采用了多种不同的编码方式。例如,常见的 avi 文件里面存放的通常是 xvid 或 divx 编码的视频和 mp3 编码的音频。rmvb 文件里面存放的通常是 RV40 编码的视频和 cook 编码的音频。mp4 文件里面通常存放的是 H.264 编码的视频和 AAC 编码的音频。mkv 文件里面存放的则可能包含前面各种。 目前业界主流的封装是MP4.因为MP4有着良好的特性,并对HTML5友好。mp4新规范实际已经支持无缝拼接,真正流媒体封装器

Extract frames as images from an RTMP stream in real-time

给你一囗甜甜゛ 提交于 2021-02-08 10:22:03
问题 I am streaming short videos (4 or 5 seconds) encoded in H264 at 15 fps in VGA quality from different clients to a server using RTMP which produced an FLV file. I need to analyse the frames from the video as images as soon as possible so I need the frames to be written as PNG images as they are received. Currently I use Wowza to receive the streams and I have tried using the transcoder API to access the individual frames and write them to PNGs. This partially works but there is about a second

RTMP推流组件EasyRTMP在弱网环境下推流稳定吗?会不会有推流失败的问题?

浪尽此生 提交于 2021-01-03 16:32:09
EasyRTMP推流组件是一套调用简单、功能完善、运行高效稳定的RTMP专用推流组件,能够应用于各种行业的直播需求,手机直播、桌面直播、摄像机直播、课堂直播等方面。 TSINGSEE青犀视频有用户使用libeasyrtmp在弱网环境下推流,经常会有推流失败或者断开的问题。对于这种问题,开发人员通过网络抓包进行查看。 推流断开是由libeasyrtmp客户端主动断开的。而其他的推流工具,同样的网络环境下并没有断开。 从抓包看,由于网络环境差,存在很多超时重传,同样的对于libeasyrtmp中的超时,直接断开连接了。查看代码,libeasyrtmp对于socket超时设置的2s,所以对于超时超过2s就会断开连接。 我们可以重新设置超时时间,设置为10s. int timeout = 10000; if (setsockopt(r->m_sb.sb_socket, SOL_SOCKET, SO_SNDTIMEO, (char*)&timeout, sizeof(timeout)) == -1) { RTMP_Log(RTMP_LOGERROR, "%s, Setting socket timeout to %ds failed!", `ls_function` , timeout); } else { RTMP_Log(RTMP_LOGDEBUG, "%s, Setting

移动视频直播完整的流程

百般思念 提交于 2020-08-15 15:50:39
互联网内容载体变迁历程,文字 —— 图片 / 声音 —— 视频 ——VR/AR——……. 。从直播 1.0 秀场时代( YY ), 2.0 游戏直播(斗鱼、虎牙、熊猫)到如今全民直播 3.0 泛生活娱乐时代(映客、花椒),国外直播 app ( Meerkat 、 Periscope ),随着 VA/AR/MR 提出的沉浸式视听体验,直播 4.0 时代很快就能到来。 在这个全民娱乐的时代,直播已经火得不要不要的,各大公司都有自己的直播产品。本文主要从直播的一些基本知识 , 一步步打造直播 app 。直播那么火的背后有什么样的技术支撑呢? 直播的整体流程:录制 -> 编码 -> 网络传输 -> 解码 -> 播放 根据该流程分为以下技术点: 怎样录制直播视频 怎样实时上传直播视频 怎样播放直播视频 直播间的用户是如何交互 移动视频直播发展 PC 直播(固定场所) ——> 移动端(形式自由)。 随着越来越多的直播类 App 上线,移动直播进入了前所未有的爆发阶段,目前大多数移动直播以 Native 客户端为主。但是 H5 端的直播在移动直播端也承载着不可替代的作用,例如 H5 有着传播快,易发布的优势。 完整的直播包括: 视频录制端 电脑上的音视频输入设备或者手机端的摄像头或者麦克风,目前以移动端的手机视频为主。 视频播放端 可以是电脑上的播放器,手机端的 Native 播放器,还有 H5

开源视频会议bigbluebutton开发(3)——架构体系图

ε祈祈猫儿з 提交于 2020-08-09 18:03:02
开源视频会议bigbluebutton开发(3)——架构体系图 体系结构概述 bbb使用nginx(engine x)作为代理服务器将请求发送给bbb客户端,tomcat6调用api,支持当客户端连接使用RTMPT(port 80, RTMPT 协议是HTTP协议的扩展,Adobe的Flash Player和media server支持。RTMPT的命令基本都是用来控制网络连接的持久性的。)代替RTMP(port 1935,RTMP 全称Routing Table Maintenance Protocol(路由选择表维护协议) 在 AppleTalk 协议组中,路由选择表维护协议(RTMP,Routing Table Protocol)是一种传输层协议,它在 AppleTalk 路由器中建立并维护路由选择表。)时支持http通道! 1,Ngnix代理bbb-web和bbb-aps来支持RTMPT服务bbb-client! 2,Grails应用负责操作创建会议和调度,同时负责加入会议登进登出! 3,负责将pdf资料转换成flash! 4,当SWFTools无法进行转换时,负责将pdf演示文档转换成flash,当然,会生成缩略图! 5,bbb-web与bbb-apps之间的信息通道! 6,red5负责同步会议的各个参与者! 7,负责监听用户的事件,如进入或者离开会议

RTMP 协议包头参考

我怕爱的太早我们不能终老 提交于 2020-08-08 09:36:10
为了方便查阅,把RTMP协议的包头记录下来,以便参考: RTMP协议在握手完成以后,服务器与客户端通过包(chunk)来进行信令交换。 包(thunk)格式如下 每个包有包头与数据组成。而包头自身是由三部分组成: 包头可以是4种长度的任意一种:12, 8, 4, 1 byte(s).完整的RTMP包头应该是12bytes,包含了时间戳,AMFSize,AMFType,StreamID信息, 8字节的包头只纪录了时间戳,AMFSize,AMFType,其他字节的包头纪录信息依次类推 。 包体最大长度默认为128字节,通过chunkSize可改变包体最大长度,通常当一段AFM数据超过128字节后,超过128的部分就放到了其他的RTMP封包中,包头为一个字节. 完整的12字节RTMP包头每个字节的含义: 用途 大小(Byte) 含义 Head_Type 1 包头 TiMMER 3 时间戳 AMFSize 3 数据大小 AMFType 1 数据类型 StreamID 4 流ID 一、Head_Type 第一个字节Head_Type的前两个Bit决定了包头的长度.它可以用掩码0xC0进行"与"计算: Head_Type的前两个Bit和长度对应关系: Bits Header Length 00 12 bytes 01 8 bytes 10 4 bytes 11 1 byte Head

h.264 live stream

浪子不回头ぞ 提交于 2020-05-28 08:04:37
问题 After reasearching for a few days, i m still lost with this issue: I have a webcam connected over WiFi to my Android device. I wrote an Android app to connect to a specified Socket of the webcam (IP and port). From this Socket i get an InputStream which is already encoded in H.264. Then i redirect this InputStream from the android device to my server, where i managed to decode it to images/frame by using Xuggler. I would like to stream my webcam live to the internet to a flash player or

h.264 live stream

时光毁灭记忆、已成空白 提交于 2020-05-28 08:01:36
问题 After reasearching for a few days, i m still lost with this issue: I have a webcam connected over WiFi to my Android device. I wrote an Android app to connect to a specified Socket of the webcam (IP and port). From this Socket i get an InputStream which is already encoded in H.264. Then i redirect this InputStream from the android device to my server, where i managed to decode it to images/frame by using Xuggler. I would like to stream my webcam live to the internet to a flash player or

OpenMeetings安装

孤街浪徒 提交于 2020-04-07 04:13:57
OpenMeetings 是一个开源的视频会议软件。 它是基于OpenLaszlo’s的新流媒体格式和开源的Flash服务器---Red5! 采用了flash流媒体服务器Red5+OpenMeetings。其实是OpenMeetings的运行依赖于Red5,也就是说OpenMeetings是一个基于Flash的视频会议解决方案。 OpenMeetings的一大亮点是能够在会议过程中做 PPT的演示,这一功能得益于OpenOffice的文档转换能力和提供Java远程访问的能力。 运行所需的软件支持: jdk 、mysql 、openoffice 、 ghostscript 、imagemagick 、 swftools 、 ffmpeg 、 red5 、 openmeetings 。 说一下安装依赖的软件,共有:OpenOffice,ImageMagick,GhostScript,SWFTools,Red5.如果你下载的是包含了Red5的话,就不用单独下载Red5了。Red5自带了Tomcat6,直接启动Red5后,tomcat6将会自动启动。如果只是运行起来系统的化,是不只需要Openmeetings,Red5,就可以了。不安装OpenOffice,ImageMagick等将让你无法得到某些功能,比如ppt处理,pdf转换等。 (申明一下我的平台,windows xp。所以

流媒体服务器+EasyDarwin+EasyPusher+VLC+Red5+OBS+Unity+RTSP+RTMP+FFMPEG

喜你入骨 提交于 2020-04-06 08:31:15
最近有个需求在Unity中直播桌面,着用到了视频流。 ------------------------------ VLC自身有流服务器功能,但是非常慢非常慢,还是用VLC拉流吧,好像大家也是这么做的 ------------------------------ 流媒体服务器用的EasyDarwin,刚好最近出了最新版本NodeJS版本easydarwin-8.0.0-1804031316,否则配置nginx也是令人不开心。 这样的话,安装NodeJS,下载EasyDarwin和推流器EasyPusher,就OK了 https://github.com/EasyDarwin/EasyDarwin https://github.com/EasyDSS/EasyPusher/releases 运行easydarwin-8.0.0-1804031315\start.bat 然后运行EasyPusher_Win_v1.3.17.0803\EasyPusher.exe,配置屏幕采集,点击Start按钮 没问题的话,就算推流成功了,接下来可以用VLC来测试 到此为止流媒体服务器EasyDarwin+推流器EasyPusher+接流器VLC的全套流程展示完毕。 Unity中播放视频流的插件我尝试了VLC for Unity和EasyMovieTexture,其中VLC for