hls

初识RTMP、HttpFlv和HLS

无人久伴 提交于 2020-01-16 02:10:08
理解RTMP、HttpFlv和HLS的正确姿势 一、前述 HttpFlv(http+flv ):将音视频数据封装成FLV格式,然后通过 HTTP 协议传输给客户端。 HLS(HTTP Live Streaming):工作原理简单来说就是把一段视频流,分成一个个小的基于HTTP的文件来下载。当媒体流正在播放时,客户端可以根据当前网络环境,方便地在不同的码率流中做切换,以实现更好的观影体验。 hls的出现是为了解决苹果原生环境中的流媒体播放,这个协议可以方便的让Mac和iPhone播放视频流,不依赖Adobe,更不用去管什么标准委员会。 就苹果来说,HLS经过10年的发展,RFC 8216发布了HLS的第七个版本。Adobe早已是昨日黄花,未来已来,这是一个Html5的世界。在视频播放领域,全民直播已经开启,这是一个实时性需求强于稳定性的播放环境。苹果也跟曾经的Adobe一样,猜中了故事的开始,却踩空了这个故事的结局。 二、三个协议基本认识 两端加一服 在开始之前,先把流媒体服务器中的双端关系说一下。在一个完整的流媒体服务框架中,角色就是:两端加一服。推流端、拉流端、媒体服务器。 同时按照应用场景不同,协议又分: 1.推流协议; 2.拉流播放协议; RTMP可以用在双端,但HLS只能用在拉流端 2.1为什么RTMP比HLS快? 首先,这个问题发生在拉流端,协议也都是拉流协议

VIVADO HLS U96 OPENCV CANNY

江枫思渺然 提交于 2020-01-15 14:47:18
1、根据VIVADO HLS U96 opencv这篇博客,新建canny工程,将…\xfopencv_master\examples中canny文件夹中的源文件复制到新建工程中。 2、修改个别文件 (1)xf_canny_config.h头文件中 ,修改图片的宽和高,为了快速仿真,如下图所示 (2)xf_canny_accel.cpp源文件中,将XF_USE_URAM注销掉,如下图所示 3、修改后的并建立完的工程如下图所示, 4、点击综合 5、综合完成后,进行仿真 (1)原图片 (2)opencv软件计算结果 (3)hls调用opencv的处理结果 6、优化,接口约束。 7、本文并没有讲太多理论性的东西,原理可自行百度。 来源: CSDN 作者: sinat_39724439 链接: https://blog.csdn.net/sinat_39724439/article/details/103986247

用nginx搭建http/rtmp/hls协议的MP4/FLV流媒体服务器

自闭症网瘾萝莉.ら 提交于 2020-01-15 09:00:25
前前后后搭建了两三个星期,终于可以告一段落,nginx实在是有点强大。写一篇笔记来记录一下这个过程中的思路和解决方案。 一.搭建nginx平台: 基本是基于http://blog.csdn.net/xiaoliouc/article/details/8363984 一步步安装nginx搭建流媒体服务器 这篇博客来搭建。 我的ubuntu是14.04LTS。各种包的版本是: nginx-1.9.9 nginx_mod_h264_streaming-2.2.7.tar.gz openssl-0.9.8zh.tar.gz pcre-8.12.tar.gz zlib-1.2.7.tar.gz 为了支持rtmp,还下载了一个模块nginx-rtmp-module-master,没有版本的区别。 在安装过程中的注意事项: 1.上述无非是./configure make make install. 2.记住如果要修改nginx的./configure的话只用make无需install因为不是覆盖安装。 3.要在sbin的目录下检查./nginx -V 才能看到nginx的配置。 4.nginx在make的时候注意把objs里面的Makefile的权限改成a+w,并且将-Werror删掉,这样就不会把warning看成error来对待。修改makefile是在configure之后make之前。

前段播放 流媒体(RTMP,RTSP,HLS)

一个人想着一个人 提交于 2020-01-14 08:57:01
前言 最近项目需要流媒体的播放,后端一共提供了 三种流数据(RTSP,RTMP,HLS),在不同的场景可能会使用到不同方式播放,就需要做到适配, 支持所有的流数据播放。花了一段时间研究,在这里和大家分享一下,还有些遗留问题,看大家有没有好的方法。 RTSP 简介 这种协议流数据前段播放,没有特别好的解决方法,需要在本机装一个vlc 插件,依靠这个插件才能让 RTSP 协议 在网页上能播放,但是目前高版本的 Chrome 浏览器不支持 NPAPI 插件,也就是说高版本的 Chrome 浏览器还是不能播放(46 以上的版本都不行)。 html code <object type='application/x-vlc-plugin' id='vlc' width="200" height="500" events='True' pluginspage="http://www.videolan.org" codebase="http://downloads.videolan.org/pub/videolan/vlc-webplugins/2.0.6/npapi-vlc-2.0.6.tar.xz"> <param name='mrl' value='rtsp://***********************/Streaming/Channels/1' /> <param name=

Java工具集-视频操作工具类

岁酱吖の 提交于 2020-01-11 02:39:41
代码示例 package com . simple . util . base . extend . video ; import java . io . BufferedReader ; import java . io . File ; import java . io . FileReader ; import java . io . IOException ; import java . io . InputStream ; import java . util . ArrayList ; import java . util . List ; /** * @program: simple_tools * @description: 视频操作工具类 * @author: ChenWenLong * @create: 2020-01-07 09:19 **/ public class VideoUtil { private String ffmpeg_path = "D:\\Program Files\\ffmpeg-20180227-fa0c9d6-win64-static\\bin\\ffmpeg.exe" ; //ffmpeg的安装位置 private String video_path = "D:\\BaiduNetdiskDownload\\test1.avi" ;

Tutorial 4: Resources, Shaders, and HLSL

泄露秘密 提交于 2020-01-11 02:33:08
Continued from Rastertek.com: DirectX 12 Tutorials Tutorial 4: Resources, Shaders, and HLSL This tutorial will be the introduction to writing vertex and pixel shaders in DirectX 12. It will also be the introduction to using resources like vertex and index buffers in DirectX 12. These are the most fundamental concepts that you need to understand and utilize to render 3D graphics. Vertex Buffers The first concept to understand is vertex buffers. To illustrate this concept let us take the example of a 3D model of a sphere: The 3D sphere model is actually composed of hundreds of triangles: Each of

视频播放与HLS直播技术总结

ぐ巨炮叔叔 提交于 2020-01-10 13:04:12
上一个项目有接触到网页视频播放,给到我的是一个m3u8的文件格式,之前并没有接触到视频这一块的技术,而且对于这种文件格式也是第一次,查资料写demo折腾一番,终于成功的在网页播放m3u8格式的视频文件,这里也整理记录一下自己查询到关于视频播放还有流媒体文件播放原理的资料。 视频播放主要技术 视频播放的主要技术点,封装技术,视音频压缩编码技术,流媒体技术 封装技术 :就是把视频数据和音频数据打包成一个文件的规范。既我们生活中所看到的各种视频格式,包括avi、mp4、rmvb、flv、mkv、ts等。 视音频压缩编码技术 :视频是由一张一张的照片组成的,每秒24帧,如果把所有的图片存储起来,数据量会很大,基于相邻的图片只会有比较微小的差别,视频压缩的原理就是存储每张图片和上一张不一样的地方,这样就大大的压缩的视频的体积,目前常用技术包括H.264、MPEG2、VP9、VP8等,音频编码压缩主要使用AAC、AC-3、MP3、WMA。 流媒体技术 :流媒体技术主要用于网络视频播放和直播,在所有封装格式中,除了avi其他都支持流媒体。 视频播放原理 解协议 :这一步主要针对流媒体,本地文件播放不需要,将流媒体协议数据解析为相应的封装格式。 解封装 :输入的封装格式数据,分离成为视音频流的压缩编码数据。 解码 :讲视音频流解码成非压缩的原始数据。 当前主要直播技术 目前最常用的是HLS协议

从0到1打造直播 App

 ̄綄美尐妖づ 提交于 2020-01-06 05:43:10
转自http://dev.qq.com/topic/5811d42e7fd6ec467453bf58 概要 分享内容: 互联网内容载体变迁历程,文字——图片/声音——视频——VR/AR——…….。从直播1.0秀场时代(YY),2.0游戏直播(斗鱼、虎牙、熊猫)到如今全民直播3.0泛生活娱乐时代(映客、花椒),国外直播app(Meerkat 、Periscope),随着VA/AR/MR提出的沉浸式视听体验,直播4.0时代很快就能到来。 在这个全民娱乐的时代,直播已经火得不要不要的,各大公司都有自己的直播产品。本文主要从直播的一些基本知识,一步步打造直播app。直播那么火的背后有什么样的技术支撑呢? 先将这些APP按照视频网站按照视频网站、弹幕视频、直播平台、在线秀场、移动短视频、移动直播来划分类别。再按照内容和社交这个维度来进行区分,可以明显看出视频网站、弹幕网站和直播平台更偏内容,他们对内容的需求更加高,用户在上面进行社交沉淀相对比较浅。 而后面三者更加偏向社交,他们强调人而不强调内容。所以短期内不会有大的竞争关系,只是前三类、后三者之间的竞争会出现。 大体框架 大体框架 基本是下图这个套路: 录制->编码->网络传输->解码->播放 以上为直播的整体流程,根据该流程分为以下技术点: 怎样录制直播视频 怎样实时上传直播视频 怎样播放直播视频 直播间的用户是如何交互 一

iOS 直播类APP开发流程分解:

北战南征 提交于 2019-12-31 00:39:05
1 . 音视频处理的一般流程: 数据采集→数据编码→数据传输(流媒体服务器) →解码数据→播放显示 1、 数据采集: 摄像机及拾音器收集视频及音频数据,此时得到的为原始数据 涉及技术或协议: 摄像机:CCD、CMOS 拾音器:声电转换装置(咪头)、音频放大电路 2、 数据编码: 使用相关硬件或软件对音视频原始数据进行编码处理(数字化)及加工(如音视频混合、打包封装等),得到可用的音视频数据 涉及技术或协议: 编码方式:CBR、VBR 编码格式 视频:H.265、H.264、MPEG-4等,封装容器有TS、MKV、AVI、MP4等 音频:G.711μ、AAC、Opus等,封装有MP3、OGG、AAC等 3、 数据传输: 将编码完成后的音视频数据进行传输,早期的音视频通过同轴电缆之类的线缆进行传输,IP网络发展后,使用IP网络优传输 涉及技术或协议: 传输协议:RTP与RTCP、RTSP、RTMP、HTTP、HLS(HTTP Live Streaming)等 控制信令:SIP和SDP、SNMP等 4、 解码数据: 使用相关硬件或软件对接收到的编码后的音视频数据进行解码,得到可以直接显示的图像/声音 涉及技术或协议: 一般对应的编码器都会带有相应的解码器,也有一些第三方解码插件等 5、 播放显示: 在显示器(电视、监视屏等)或扬声器(耳机、喇叭等)里,显示相应的图像画面或声音

HTTP Live Streaming直播(iOS直播)技术分析与实现

拈花ヽ惹草 提交于 2019-12-20 02:47:14
http://www.cnblogs.com/haibindev/archive/2013/01/30/2880764.html   不经意间发现,大半年没写博客了,自觉汗颜。实则2012后半年,家中的事一样接着一样发生,实在是没有时间。快过年了,总算忙里偷闲,把最近的一些技术成果,总结成了文章,与大家分享。   前些日子,也是项目需要,花了一些时间研究了 HTTP Live Streaming ( HLS )技术,并实现了一个HLS编码器 HLS Live Encoder ,当然,C++写的。其功能是采集摄像头与麦克风,实时进行H.264视频编码和AAC音频编码,并按照HLS的协议规范,生成分段的标准TS文件以及m3u8索引文件。通过我的 HLS Live Encoder 和第三方Http服务器(例如:Nginx),成功实现了 HTTP Live Streaming 直播,并在iphone上测试通过。我就把这当中的一些收获写在这里。 HLS技术要点分析    HTTP Live Streaming ( HLS )是苹果公司(Apple Inc.)实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,主要应用在 iOS 系统,为 iOS 设备(如iPhone、iPad)提供音视频直播和点播方案。 HLS 点播,基本上就是常见的分段HTTP点播,不同在于,它的分段非常小