H264是一种高度压缩的数字视频,常用于监控视频,它可以由VLC、5Kplayer、Potplayer、暴风影音和Mplayer软件播放。
1.VLC播放器:支持windows、MaC、Linux、BSD、Beos、Solaris、QNX、IOS平台,可播放现有非加密视频的所有格式。它是第一个在Win/Lin/Mac平台上实现硬件加速的播放器。即使在硬件加速之前,VLC的性能也得到了改善。
2.Mplayer播放器:Mplayer播放器是一个非常实用的计算机端视频播放工具。Mplayer播放器支持大部分视频格式文件,可以为用户提供最佳的视频播放体验、高度还原的图像质量和音质,支持视频文件的最佳播放级别。
3.Potplayer:Potplayer软件配有专业的编解码器,方便快捷。安装后,可以观看任何格式的视频文件。.Potplayer启动速度快,回放稳定,支持视频字幕。其次,potplayer支持32位和64位系统,内置硬件加快解码速度。
4.5kplayer:5kplayer支持MKV/TS/M2TS/AVI/flv/RM/RMVB/VOB/ISO/SWF等格式。该软件专为4K/5K设计,提供多字幕、画面旋转反转、音画面同步、曲目选择等功能,方便播放各类和流媒体视。
5.暴风影音:暴风影音是世界领先的媒体播放器。暴风影音致力于为用户带来更快的播放体验和视觉效果。新版本的暴风影音优化了解码方案,支持多种视频格式,包括MPEG4、flv和WMV。
参考资料来源:百度百科-VLC
百度百科-Mplayer
百度百科-PotPlayer
百度百科-暴风影音
H264 是MPEG-4 标准所定义的最新,同时也是技术含量最高、代表最新技术水平的视频编码格式之一。 H264 最具价值的部分无疑是更高的数据压缩比。在同等的图像质量条件下,H264 的数据压缩比能比当前 DVD 系统中使用的 MPEG-2 高2-3 倍,比MPEG-4 高15-2 倍。正因为如此,经过H264 压缩的视频数据, 在网络传输过程中所需要的带宽更少,也更加经济。在 MPEG-2 需要6Mbps 的传输速率匹配时,H264 只需 要1Mbps-2Mbps 的传输速率。 与MPEG-4 一样,经过H264 压缩的视频文件一般也是采用avi 作为其后缀名,同样不容易辨认,只能通过解码器来自己识别H264 与MPEG4 区别 压缩方式是DVR 的核心技术,压缩方式很大程度上决定着图像的质量、压缩比、 传输效率、传输速度等性能,它是评价DVR 性能优劣的重要一环。 随着多媒体 技术的发展,相继推出了许多压缩编码标准,目前主要有JPEG/M-JPEG、 H261/H263 和MPEG 等标准。 1、JPEG/M-JPEG ①、JPEG 是一种静止图像的压缩标准,它是一种标准的帧内压缩编码方 式。当硬件处理速度足够快时,JPEG 能用于实时动图像的视频压缩。在画面变 动较小的情况下能提供相当不错的图像质量,传输速度快,使用相当安全,缺点 是数据量较大。 ②、M-JPEG 源于JPEG 压缩技术,是一种简单的帧内JPEG 压缩,压缩 图像质量较好,在画面变动情况下无马赛克,但是由于这种压缩本身技术限制, 无法做到大比例压缩,录像时每小时约1-2GB 空间,网络传输时需要2M带宽, 所以无论录像或网络发送传输,都将耗费大量的硬盘容量和带宽,不适合长时间 连续录像的需求,不大实用于视频图像的网络传输。 2、H261/H263 ①、H261 标准通常称为P64,H261 对全色彩、实时传输动图像可以达 到较高的压缩比,算法由帧内压缩加前后帧间压缩编码组合而成,以提供视频压 缩和解压缩的快速处理。由于在帧间压缩算法中只预测到后1 帧,所以在延续时 间上比较有优势,但图像质量难以做到很高的清晰度,无法实现大压缩比和变速 率录像等。 ②、H263 的基本编码方法与H261 是相同的,均为混合编码方法,但H263 为适应极低码率的传输,在编码的各个环节上作了改进,如以省码字来提高编码 图像的质量,此外, H263 还吸取了MPEG 的双向运动预测等措施,进一步提 高帧间编码的预测精度,一般说,在低码率时,采用H263 只要一半的速率可 获得和H261 相当的图像质量。 3、MPEG MPEG 是压缩运动图像及其伴音的视音频编码标准,它采用了帧间压缩, 仅存储连续帧之间有差别的地方 ,从而达到较大的压缩比。MPEG 现有 MPEG—1、MPEG—2 和MPEG—4 三个版本,以适应于不同带宽和图像质量 的要求。 ①、MPEG—1 的视频压缩算法依赖于两个基本技术,一是基于1616(像 素行)块的运动补偿,二是基于变换域的压缩技术来减少空域冗余度,压缩比 相比M-JPEG 要高,对运动不激烈的视频信号可获得较好的图像质量,但当运 动激烈时,图像会产生马赛克现象。 MPEG-1 以15Mbps 的数据率传输视音频 信号,MPEG-1 在视频图像质量方面相当于VHS 录像机的图像质量,视频录像 的清晰度的彩色模式≥240TVL,两路立体声伴音的质量接近CD 的声音质 量。 MPEG-1 是前后帧多帧预测的压缩算法,具有很大的压缩灵活性,能变速 率压缩视频,可视不同的录像环境,设置不同的压缩质量,从每小时 80MB 至 400MB 不等,但数据量和带宽还是比较大。 ②、MPEG-2 它是获得更高分辨率(720572)提供广播级的视音频编码标 准。MPEG-2 作为MPEG-1 的兼容扩展,它支持隔行扫描的视频格式和许多高 级性能包括支持多层次的可调视频编码,适合多种质量如多种速率和多种分辨率 的场合。它适用于运动变化较大,要求图像质量很高的实时图像。对每秒30 帧、 720572 分辨率的视频信号进行压缩,数据率可达3-10Mbps。由于数据量太大, 不适合长时间连续录像的需求。 ③、MPEG-4 是为移动通信设备在Internet 网实时传输视音频信号而制定的 低速率、高压缩比的视音频编码标准。 MPEG-4 标准是面向对象的压缩方式, 不是像MPEG-1 和MPEG-2 那样简单地将图像分为一些像块,而是根据图像的 内容,其中的对象(物体、人物、背景)分离出来,分别进行帧内、帧间编码, 并允许在不同的对象之间灵活分配码率,对重要的对象分配较多的字节,对次要 的对象分配较少的字节,从而大大提高了压缩比,在较低的码率下获得较好的效 果, MPEG-4 支持MPEG-1、MPEG-2 中大多数功能,提供不同的视频标准源 格式、码率、帧频下矩形图形图像的有效编码。 总之,MPEG-4 有三个方面的优势: ①、具有很好的兼容性; ②、MPEG-4 比其他算法提供更好的压缩比,最高达200:1; ③、MPEG-4 在提供高压缩比的同时,对数据的损失很小。所以,MPEG-4 的应用能大幅度的降低录像存储容量,获得较高的录像清晰度,特别适用于长时 间实时录像的需求,同时具备在低带宽上优良的网络传输能力。 H264 是ITU-T 的VCEG(视频编码专家组)和ISO/IEC 的MPEG(活动图像 编码专家组)的联合视频组(JVT:joint video team)开发的一个新的数字视频 编码标准,它既是ITU-T 的H264,又是ISO/IEC 的MPEG-4 的第10 部分。 1998 年1 月份开始草案征集, 1999 年9 月,完成第一个草案,2001 年5 月制 定了其测试模式TML-8,2002 年6 月的 JVT 第5 次会议通过了H264 的FCD 板。目前该标准还在开发之中,预计明年上半年可正式通过。 H264 和以前的标准一样,也是DPCM加变换编码的混合编码模式。但它 采用“回归基本”的简洁设计,不用众多的选项,获得比H263++好得多的压缩性 能;加强了对各种信道的适应能力,采用“网络友好”的结构和语法,有利于对误 码和丢包的处理;应用目标范围较宽,以满足不同速率、不同解析度以及不同传 输(存储)场合的需求;它的基本系统是开放的,使用无需版权。 在技术上, H264 标准中有多个闪光之处,如统一的VLC 符号编码,高精 度、多模式的位移估计,基于4×4 块的整数变换、分层的编码语法等。这些措 施使得 H264 算法具有很的高编码效率,在相同的重建图像质量下,能够比 H263 节约50%左右的码率。H264 的码流结构网络适应性强,增加了差错恢 复能力,能够很好地适应IP 和无线网络的应用。 其实现在多数的什么H264 都是H263++通过改进后的算法,是压缩率变的小 了点(包括现在有个别的生产厂家,我同事都看到过他们的源代码)!如果是从 单个画面清晰度比较,MPEG4 有优势;从动作连贯性上的清晰度,H264 有优 势!您好,H264是一种视频编码格式,它可以将视频数据压缩到更小的文件大小,以便更快地传输和存储。H264不支持4K,因为它的压缩比率较低,无法支持4K视频的高分辨率。此外,H264的编码速度较慢,也不能满足4K视频的高帧率要求。因此,H264不适用于4K视频的编码和解码。
直播APP源码可以是原生的或混合型的。原生直播APP源码专为特定平台设计的,这种APP的代码是通过使用该平台所采用的编程语言来创建的。混合型的是同时支持多个平台的APP,代码是用HTML,CSS或JavaScript编写。
一、直播APP源码架构
直播APP源码的产品架构,可以理解为以服务器为信息载体,将用户的观看请求与直播的实时画面内容相串联,而用户端和主播端分别通过播放URL、推流URL的协议封装起来;在信息转化过程中主播端需要涉及降噪、流量控制、美颜等优化手段,而用户端则涉及硬件加速、视频解码、卡顿监控等方式提升用户体验。
二、直播APP源码实现直播流程上需要注意的内容
首先,音视频采集及编码环节,通过调用手机摄像头等采集设备,依托美颜及图像处理工具,实现音视频内容的采集以及处理。音视频编码格式的选取也是十分有讲究的。音频编码格式常见的为Mp3、ACC等;视频编码格式常用的则是Mpeg4、H264、H265等。
其次,推流环节特别要关注的是流媒体传输协议的选择。比较常见的流媒体传输协议有UDP、RTSP、RTMP、HLS等。现如今,绝大多数情况下开发直播APP软件采用的是RTMP协议,这是专为视频直播量身定制的,直播延时很容易就可以控制在5s以内,提升了直播观看的体验度。
最后,内容分发层面多采用三方CDN服务,除非有特殊需求的情况下会选择自建流媒体服务器。三方CDN服务商拥有众多的节点服务器,能够快速实现直播内容的传输分发,极大地增强直播体验,但高额的流量费用也是后期直播平台运营中需要精打细算的。
除了直播APP源码开发直播实现流程上需要注意的这些内容外,完整的直播APP源码开发工作还会涉及到众多的服务模块。WEB服务主要负责PC直播,管理后台,接口逻辑的实现;REDIS服务提供的则是数据的缓存,用于存储常用的动态数据;Mysql服务提供的是直播中的静态数据存储;socket服务则属于nodejs组件,用于实现直播群聊、私聊、消息通知等功能实现;视频直播服务提供视频直播、旁路直播、转码、点播、存储等;监控服务提供的是主播异常掉线监听,直播消息推送等。
三、直播APP源码的难点和细节
1、在网络信号弱的情形下,需求保障食品质量。假如发生信号不好需求缓存的情形,那么会大大减少用户体验。
2、直播画面的延迟情形。数据传输是依照客户端下载到服务器,服务器再上传到客户端的模式,数据越大特别是高清视频画面,那么整体上传下载速度越慢,客户端显示出现延迟,会员会出现不停缓冲等状况,影响会员的采取。
3、页面交互动画。互动直播的内在就是主播与观众互动历程。主流的直播APP通常会增添诸如送花、打赏等等,对于系统兼容性、直播APP运行速度以及流畅度都会导致肯定的影响,甚至会出现BUG。
最近需要做实时录屏并把视频推流到RTSP服务器,具体流程是抓取屏幕内容(bitmap),并把bitmap转化为YUV,接着把YUV编码成H264,再把H264码流推到RTSP服务器;把采集到的PCM编码为AAC,再把AAC推流至RTSP服务器。
看了雷神的一篇文章: 最简单的基于FFmpeg的推流器(以推送RTMP为例) ,他是把本地的视频文件推流至RTMP服务器,并不符合我的要求。
接着我找到另一篇文章: ffmpeg实现H264压缩并且推流至RTSP ,这篇文章只有图像编码,并没有音频编码,并且推流之后并没有播放成功。
我综合上面两位大佬的思路,和查找一些资料实现了这个功能。
RTSP服务器使用的是 HappyTime 的免费试用版本。
我抓到的bitmap是BGRA格式的,所以使用的图像格式是 AV_PIX_FMT_BGRA , cropImage 是含有rgba图像的数组
调用:
由于我是实时抓取的屏幕, frame_yuv->pts 设为当前的时间戳,以保证能正常播放。
调用:
调用:
其中pcm_buff是包含pcm数据的数组
使用udp传输时传到1400多帧就断开链接了,原因不明,所以改用使用tcp协议传输
延迟有15秒左右
参考:
>
一视音频的采集和编码技术
编码技术不仅包括算法实现,还涉及到通过是通过x86平台实现还是通过嵌入式方式实现。
二视音频的流媒体传输技术。目前通常使用的方式主要包括:
1通过>
2通过RTMP协议传输,需要通过技术开发来实现高性能的RTMP流媒体服务器;
3通过UDP协议传输,这种方式通常用于大规模的可控网络中,比如IPTV电视直播应用,通过交换机即可支持这种传输方式;
4通过P2P方式传输,P2P方式所用的传输协议可以由用户自主定义,并且可以基于UDP或TCP来实现,这种方式通常也是用于
超大规模组网环境中。
三CDN内容分发技术。
需要自主开发实现支持流媒体的CDN内容分发软件平台,来完成内容从源站节点到各边缘节点服务器的调度。
这方面的技术已经很成熟,目前有多家这类产品提供商,也有多家CDN服务提供商(软件平台、硬件服务器、出口带宽整体租用)。
四终端解码技术。
解码技术主要根据终端的类型分为如下几类:
1PC端解码技术
比如当前视频网站采用的H264视频解码技术(AdobeFlashPlayer)、VLC和FFMPEG这种桌面客户端软件(可支持H264、H265等大部分视音频格式的解码)
2移动终端解码技术
目前主要分为Android和iOS量大阵营,两大移动平台的视音频解码实现方式也主要分为两种,一种是通过设备自带的GPU硬件解码,另一种是通过软件方式调用中央处理器来解码。
海康流媒体服务器转发出来的rtsp流不是标准的,不用使用vlc/real player等播放。海康的H264不是标准的,文件头中有hk自己添加的字段。网络摄像设备只能用hk的自己的API访问。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)