​GSYVideoPlayer是一个国产的移动端视频播放器,它采用了IJKPlayer、Media3(EXOPlayer)、MediaPlayer、AliPlayer等四种播放器内核,支持弹幕、滤镜、广告等多项功能。 GSYVideoPlayer的Github主页为https://github.com/CarGuo/GSYVideoPlayer,截止2024年8月18日,该项目的Github星标数为2万,副本数为0.42万,这个成绩算是相当不错的了,要知道FFmpeg项目同期在Github的星标数也才4.44万。不过在App工程中集成GSYVideoPlayer的话,得注意环境配置以免导入失败...

  GzOsOSnS9UoQ   11小时前   7   0   0 Android开发

​自从互联网普及之后,用于视频直播的流媒体技术就发展起来。这几十年中,比较有影响的主要有MMS、RTSP、RTMP、HLS、SRT、RIST几种,分别介绍如下。 1、MMS协议 MMS全称MicrosoftMultimediaServer,意思是微软多媒体服务器,它是微软公司在上世纪九十年代发布的多媒体服务器解决方案,可用于传输微软音视频格式的流媒体直播数据。MMS协议的直播地址形如mms://,可通过MMS传输的视频格式为WMV,音频格式为WMA,音视频数据封装之后的文件格式为ASF。MMS协议内部又分为MMSU和MMST,其中MMSU表示MMS协议结合UDP数据传送。如果MMSU连接失败,...

  GzOsOSnS9UoQ   2天前   21   0   0 C语言

​很多程序员想学习音视频的编程开发,却不知从何学习,因为音视频技术的体系庞大、知识杂糅,一眼望去就令人生怯。那么学习音视频建议站在前人的肩膀上,从优秀的音视频开源框架开始钻研,先熟悉这些开源工具的具体用法,再深入了解这些开源框架的实现代码。 有鉴于此,博主整理了几个流行的音视频开源框架,分别对它们概要说明如下: 一、计算机视觉库OpenCV OpenCV全称OpenSourceComputerVisionLibrary,它是一个跨平台计算机视觉和机器学习软件库,可运行于Linux、Windows、Android和MacOS等操作系统。OpenCV的官网地址为https://opencv.org...

  GzOsOSnS9UoQ   2天前   18   0   0 C语言

​对各高校即将毕业的学子来说,毕业设计算是在大学里的最后一个大作业。特别是软件、计算机、电子等相关专业,毕业设计非常讲究实操,往往要求实现一个实用的、可用的、易用的软件系统或手机APP。 不管是软件还是APP,都要通过编程来实现。对于编程类的毕业设计,既有图书馆管理系统这样万年不变的增删改查软件,也有电子商务APP那样炫动各种界面特效的美工佳作。那么就编程类大作业而言,怎样才算是让人耳目一新的毕业设计呢?以手机APP为例,现在APP开发技术很成熟了,若想做一个鹤立鸡群的毕业设计APP,就要在代码中运用最新的开发技术,尤其是和5G时代密切相关的音视频技术,比如音视频的基础框架FFmpeg、火爆一...

  GzOsOSnS9UoQ   9天前   101   0   0 Android开发

​音视频技术的一个主要用途是直播,包括电视直播、电脑直播、手机直播等等,甚至在线课堂、在线问诊、安防监控等应用都属于直播系统的范畴。由于直播系统不仅涉及到音视频数据的编解码,还涉及到音视频数据的实时传输,因此直播领域采用的网络技术标准比较高,实现起来也比一般的WEB系统复杂。 一、直播系统的概念结构 如果仅仅从用户的角度来看,直播系统无非是直播的来源方和直播的观看方。来源方支起三脚架,打开补光灯,调好手机摄像头,一顿操作之后就卿卿我我地开始直播了。观看方打开直播APP,蹭蹭蹭进了直播间,一会儿捏脸蛋,一会儿刷火箭,玩得不亦乐乎。对于一般开发者来说,直播的来源方和直播的观看方之间,还要加上一层用...

  GzOsOSnS9UoQ   20天前   74   0   0 C语言

​IT寒冬之下,程序员这个职业不再像以往那么吃香,尤其是APP开发的门槛越来越高,使得安卓程序员不得不求变,如果不在技术上及时转型提高,逆水行舟未来不可期呀。 有鉴于此,博主整理了几个可供安卓程序员的技术转型发展方向,供大家参考。 1、继续深耕Android的应用开发 谷歌爸爸是安卓的爹,要想继续吃安卓这口饭,就要抱紧谷歌爸爸的大腿。爸爸每年都对Android和AndroidStudio升级换代,咱们马上研究Android1x的新特性,钻研AndroidStudio的新功能。爸爸说要把APP的开发语言从Java换成Kotlin,咱们马上学习Kotlin编程,什么KTX扩展库咬牙啃下。爸爸推出了...

  GzOsOSnS9UoQ   20天前   57   0   0 Android开发

​不管是传统互联网还是移动互联网,实时数据传输都是刚需,比如以QQ、微信为代表的即时通信工具,能够实时传输文本和图片。其中一对一的图文通信叫做私聊,多对多的图文通信叫做群聊。 除了常见的图文即时通信,还有实时音视频通信,比如一对一的音频通话、一对一的视频通话等等,此时可采用WebRTC技术,有关WebRTC的编程开发及其项目实战参见《AndroidStudio开发实战:从零基础到App上线(第3版)》的第20章“20.2 给App集成WebRTC”。但是一对多的在线直播采用WebRTC技术就不太合适了,因为WebRTC只管打洞把双方的网络打通,不考虑综合负载。一旦连接WebRTC的设...

  GzOsOSnS9UoQ   29天前   56   0   0 C语言

​SRTStreamer是一个安卓手机端的开源SRT协议直播推流框架,可用于RTMP直播和SRT直播。SRTStreamer支持的视频编码包括H264、H265等等,支持的音频编码包括AAC、OPUS等等,可谓功能强大的APP直播框架。 相比之下,另一款APP直播框架RTMPStreamer支持RTMP直播和RTSP直播,不支持SRT协议的直播。而本文讲述的SRTStreamer支持RTMP直播和SRT直播,不支持RTSP协议的直播。有关RTMPStreamer的说明参见之前的文章《使用RTMPStreamer开启APP直播推流》,下面介绍如何使用SRTStreamer开启手机的APP直播推流...

  GzOsOSnS9UoQ   30天前   64   0   0 C语言

​一年一度的毕业季就要到了,毕业设计算是大学生毕业前的最后一个大作业,尤其是计算机相关专业的毕业设计,通常要通过编程开发一个软件,比如开发一个图书馆管理系统,开发一个电商APP等等。 一个好的毕业设计可以给作者加分,可以评优,还能获得编程开发的实战经验,所以很有必要认真去做毕业设计。那么就计算机相关专业来说,怎样算是一个好的毕业设计呢? 以手机APP为例,毕业设计做APP就要结合行业发展趋势。现在5G技术已经很普及了,很多商用APP都在音视频方面深根细作,有短视频APP比如抖音、快手等等,有聊天APP比如微信、畅联等等,有播音APP比如酷狗、喜马拉雅等等,有视频剪辑APP比如剪映等等。那么毕业...

  GzOsOSnS9UoQ   2024年08月07日   34   0   0 Android开发

​ 《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境的流媒体服务器还要看SRS或者ZLMediaKit。 SRS是一款国产的开源流媒体服务器,支持RTMP、SRT等主流直播协议,它的安装说明参见之前的文章《Linux环境安装SRS实现视频推流》。结合SRS与ffmpeg实现RTMP协议的推流功能,已在《Linux环境安装SRS实现视频推流》一文中详细介绍,这里单独讲解如何通过SRS与ffmpeg...

  GzOsOSnS9UoQ   2024年08月07日   44   0   0 C语言

​ 《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境的流媒体服务器还要看SRS或者ZLMediaKit。 ZLMediaKit是一款国产的开源流媒体服务器,支持RTSP、RTMP、SRT等主流直播协议,它的安装说明参见之前的文章《Linux环境安装ZLMediaKit实现视频推流》。结合ZLMediaKit与ffmpeg实现RTSP/RTMP协议的推流功能,已在《Linux环境安装ZLMedia...

  GzOsOSnS9UoQ   2024年08月07日   58   0   0 C语言

​ 《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2 FFmpeg推流和拉流”提到直播行业存在RTSP和RTMP两种常见的流媒体协议。除此以外,还有于2017年推出的SRT协议,相比常见的RTMP协议,SRT协议具有更低的延迟,并且消除了卡帧、抖动等花屏现象。腾讯视频云已经引入了SRT协议,在实践中取得了良好的视频直播效果。 FFmpeg从4.0开始支持集成第三方的libsrt库,该库为SRT协议的支持库。OBSStudio、MediaMTX等开源软件也纷纷支持SRT,国产的两个开源流媒体服务器SRS和ZLMediaKit都支持SRT协议,可见在直播领域SRT取代RTM...

  GzOsOSnS9UoQ   2024年08月07日   38   0   0 C语言

​ 《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2 FFmpeg推流和拉流”提到直播行业存在RTSP和RTMP两种常见的流媒体协议。除此以外,还有比较两种比较新的流媒体协议,分别是SRT和RIST。 其中SRT全称为SecureReliableTransport,中文叫做安全可靠传输协议。RIST全称为ReliableInternetStreamTransport,中文叫做可靠的互联网流传输协议。SRT和RIST两个协议均在2017年发布,腾讯视频云已将SRT作为传输层之上的协议。根据腾讯视频云的实践,相比传统的RTMP直播协议,SRT对推流卡顿问题有明显改善。下面就...

  GzOsOSnS9UoQ   2024年08月07日   41   0   0 C语言

​ 《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境的流媒体服务器还要看SRS或者ZLMediaKit。 SRS是一款国产的开源实时视频服务器,支持RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH和GB28181等流媒体协议。SRS媒体服务器和FFmpeg、OBS、VLC、WebRTC等客户端配合使用,提供音视频流的接收和分发的能力,是一个典型的发布(推流)和订阅(播...

  GzOsOSnS9UoQ   2024年08月07日   50   0   0 C语言

​ 《FFmpeg开发实战:从零基础到短视频上线》一书的“2.1.2 音视频文件的封装格式”介绍了视频流的PS格式和TS格式。由于TS包的长度固定,从TS流的任一片段开始都能独立解码,因此可以把TS当成音视频文件的封装格式。 鉴于TS包的独立解码特性,HLS协议引入了TS格式作为传输单元。HLS协议的实现原理是对一个大的媒体分片,并将分片后的文件路径记录于m3u8文件,客户端依据该m3u8文件即可获取对应的分片列表,再依次播放分片内容。每个TS分片都以SPS与PPS等配置帧开头,其中指定了视频的规格信息及其编码参数,因此每个TS片段都能正常解析播放。关于SPS与PPS的详细说明参见之...

  GzOsOSnS9UoQ   2024年08月07日   49   0   0 C语言

​ 《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境的流媒体服务器还要看SRS或者ZLMediaKit。 SRS是一款开源流媒体服务器,最开始是做RTMP直播的,那时全称为“SimpleRTMPServer”,意思是简单的RTMP服务器。后来SRS增加支持了其他流媒体协议,包括HLS、SRT、WebRTC等等,它的全称又改为“SimpleRealtimeServer”,意思是简单的实时服务器。有...

  GzOsOSnS9UoQ   2024年08月07日   38   0   0 C语言

​ 《FFmpeg开发实战:从零基础到短视频上线》一书的“第11章 FFmpeg的桌面开发”介绍了如何在Windows环境对Qt结合FFmpeg实现桌面程序,那么Windows系统通过VisualStudio开发桌面程序也是很常见的,下面就介绍如何在VisualStudio的C工程中集成FFmpeg库和SDL2库。 首先按照《FFmpeg开发实战:从零基础到短视频上线》一书第1章“1.3 Windows系统安装FFmpeg”的介绍,把已编译好的FFmpeg库安装到个人电脑的E:\msys64\usr\local\ffmpeg(该安装目录可替换为自己电脑实际的安装路径,注意一...

  GzOsOSnS9UoQ   2024年08月07日   32   0   0 C语言

《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2.2 FFmpeg向网络推流”介绍了轻量级流媒体服务器MediaMTX,虽然MediaMTX使用很简单,可是不能满足复杂的业务需求,故而实际应用中需要引入专业的流媒体服务器。nginx-rtmp是开源WEB服务器Nginx可增强的第三方rtmp模块,该模块封装了rtmp服务器,可以提供简单的rtmp流媒体服务器功能。由于Nginx本身是个高性能的WEB服务器,支持代理分发多种协议的数据,因此通过Nginx集成RTMP服务器也是个可行的方案。Nginx默认没开启rtmp模块,需要在编译nginx时添加rtmp模块,还要修改配...

  GzOsOSnS9UoQ   2024年08月07日   45   0   0 C语言

​ 《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2 FFmpeg推流和拉流”提到直播行业存在RTSP和RTMP两种常见的流媒体协议。除此以外,还有比较两种比较新的流媒体协议,分别是SRT和RIST。 其中SRT全称为SecureReliableTransport,中文叫做安全可靠传输协议。RIST全称为ReliableInternetStreamTransport,中文叫做可靠的互联网流传输协议。SRT和RIST两个协议均在2017年发布,腾讯视频云已将SRT作为传输层之上的协议。根据腾讯视频云的实践,相比传统的RTMP直播协议,SRT对推流卡顿问题有明显改善。下面就...

  GzOsOSnS9UoQ   2024年08月07日   44   0   0 C语言

​ 《FFmpeg开发实战:从零基础到短视频上线》一书的“3.4.3 把原始的H264文件封装为MP4格式”介绍了如何把H.264裸流封装为MP4文件。那么在网络上传输的H.264裸流是怎样被接收端获取视频格式的呢?前文指出H.264流必定以“SPS帧→PPS帧→IDR帧”开头,接下来就来验证是否确实如此。 这里用到了雷霄骅雷神写的H264分析器,在此向雷神致敬,雷神10年前写的小程序至今仍然好用。打开H264分析器,该软件的初始界面如下图所示: 单击文件路径栏右边的打开按钮,在弹出的文件对话框中选择某个H.264裸流文件,再单击界面右下角的开始按钮,分析器便开始分析H264文件的...

  GzOsOSnS9UoQ   2024年08月07日   44   0   0 C语言
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~