- 博客(28)
- 资源 (9)
- 收藏
- 关注
原创 音视频入门系列-服务器篇(live555 的部署)
本篇文章,我们详细介绍下使用live555来部署一套流媒体服务器,并使用VLC来拉流。1.下载live555源码http://www.live555.com/liveMedia/public/2.解压$tar vxf live.2021.08.24.tar.gz#cd live3.make$./genMakefiles linux-64bit$make4.启动live555$cd mediaServer$sudo ./live555MediaServer5.
2021-12-13 11:59:13 2827
原创 音视频入门系列-服务器篇(SRS 的部署)
本篇文章,我们详细介绍下使用SRS来部署一套流媒体服务器,并用FFmpeg来推流,VLC来拉流。1.下载srs源码https://github.com/ossrs/srs/releases2.解压压缩包$tar xvf srs-3.0-r8.tar.gz3.创建build目录$cd srs-3.0-r8/trunk/$mkdir build4.config & make & make install$./configure --prefix=/hom
2021-12-13 11:59:06 1355
原创 音视频入门系列-服务器篇(nginx-rtmp 的部署)
本篇文章,我们详细介绍下使用nginx-rtmp来部署一套流媒体服务器,并用FFmpeg来推流,VLC来拉流。RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Serv
2021-12-13 11:58:59 741
原创 音视频入门系列-服务器篇(介绍)
“音视频入门系列-服务器”系列,主要介绍下目前常用的流媒体服务器,并实际部署下部分服务器,和小伙伴们一起感受下流媒体服务器是如何工作的。市面上优秀的流媒体服务器解决方案有很多,比如SRS,Red5,EasyDarwin,nginx-rtmp,live555,mediasoup等等。这些服务器框架各有优缺点,但你需要明白的是,世上没有一款完美的流媒体服务器解决方案,在流媒体选型的时候,需要根据自己的业务选择适合的流媒体服务器。音视频入门系列文章已同步在微信公众号(可扫下方二维码关注):八小时码字员
2021-12-13 11:58:49 797
原创 音视频入门系列-协议篇(对比RTMP,HLS和HTTP-FLV)
在开始之前,我们先要明确一个问题,根据应用场景不同,流媒体协议分为:◆ 推流协议◆ 拉流播放协议RTMP可以用在双端,HLS用在拉流端,HTTP-FLV用在拉流端。我们先放一张表格从几个维度来对比下这三种协议。1.RTMP & HTTP-FLV◆ 这两个协议实际上传输的数据是一样的,数据都是flv文件的tag。◆ RTMP:实时播放服务器的 FLV 文件或服务器转发的FLV数据,本地无 FLV 缓存文件,FLV保密性好。◆ HTTP-FLV:将 FLV 下载到本地再播放..
2021-12-13 11:58:29 4012
原创 音视频入门系列-协议篇(RTMP & HLS)
今天,我们来聊聊 RTMP 和 HLS 协议。1.RTMP(Real Time Messaging Protocol)RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。◆ 应用层协议,依靠TCP保证可靠传输。◆ 默认端口:1953,可能被防火墙屏蔽。◆ 在流媒体/交互服务器之间进行音视频和数据通信。2.HLS(HTTP Live Streami
2021-12-13 11:58:19 983
原创 音视频入门系列-协议篇(RPT & RTCP & RTSP)
为什么把 RTP、RPCP、RTSP放在一起介绍呢,因为RTP、RTCP这两个协议一般是成对出现,而他们与RTSP协同工作。本篇我们先介绍下这三篇协议。1.RTP、RTCP、RTSP的关系RTP负责多媒体的传输,RTCP配合RTP做控制和流量统计, RTSP负责建立和控制会话,下图更直观的的描述了三者的关系:2.RTP(Real-time Transport Protocol),实时传输协议:◆ RTP建立在UDP协议上;◆ RTP不确保网络底层的可靠性,不提供按时发送机制或其..
2021-12-13 11:57:45 3358
原创 音视频入门系列-协议篇(介绍)
从事或想要从事音视频相关工作你,或多或少都听过RTP,RTCP,RTMP等等协议的名称,对这些协议一头雾水,那“音视频入门-协议篇”将给大家介绍下流媒体相关的网络协议,话不多说,开始今天的文章。如下罗列了部分流媒体相关协议,稍后的文章中我们详细介绍这些协议:◆RTP(Real-time Transport Protocol),实时传输协议。◆RTCP(Real-time Transport Control Protocol),实时传输控制协议。◆RTSP(Real Time Strea...
2021-11-20 18:29:34 437
原创 音视频入门系列-FFmpeg篇(ffplay源码分析)
前面的文章介绍了FFmpeg的解码、编码、转码流程以及相关的函数调用,并以FFmpeg解码流程为主线,深入分析其中层层调用的FFmpeg代码,想必大家对FFmpeg的编解码有了一个全面的了解。学到这里,你可能想那是不是就可以做一个播放器了?做一个真正的播放器,还有很多问题需要处理:音视频同步,多线程解复用、解码,线程安全等问题需要处理。那带着这些问题,本篇文章将分析下ffplay(FFmpeg提供的一个简单的播放器)的源码。ffplay解码并播放音视频的源码分析如图所示(分为两条主线,一条为解复用、
2021-11-20 18:29:19 757
原创 音视频入门系列-FFmpeg篇(FFmpeg源码分析)
前面的文章分析了FFmpeg的编解码调用过程,也对FFmpeg编解码过程中使用到的关键结构体进行了分析,想必大家对FFmpeg也有了初步的了解。那今天这篇文章将以FFmpeg解码流程为主线,深入分析其中层层调用的FFmpeg代码。先来看一下FFmpeg解码过程涉及到源码调用过程,如图所示(其中,橙色部分+红色箭头为解码主流程,橙色部分为FFmpeg对外提供的接口函数,白色部分为橙色功能函数实现中涉及到主要功能函数):主要函数为(流程同“音视频入门系列-FFmpeg篇(解码)”):◆ av.
2021-11-20 18:29:06 903
原创 视频入门系列-FFmpeg篇(FFmpeg结构体分析)
通过之前的学习,我们知道了如何通过调用FFmpeg代码来进行解码和编码,正所谓知其然还要知其所以然,这篇文章分析下FFmpeg编解码过程中主要的结构体,通过对这些结构体的分析,可以更好的理解FFmpeg的编解码过程。1.FFmpeg结构体分析通过之前对于FFmpeg进行解码、编码的代码学习,我们总结FFmpeg结构体主要分为三个层次:协议层(AVIOContext)、封装层(AVInputFormat)、解码层(AVStream)。具体如下2.FFmpeg编解码关键结构体按照FFm.
2021-11-20 18:28:53 740
原创 音视频入门系列-FFmpeg篇(转码)
前面的文章介绍了通过调用FFmpeg库来解码和编码,今天再介绍下转码的流程。其实,学习完解码和编码后,转码比较好理解,就是将解码和编码结合起来,过程为:解封装->解码->编码->封装。逻辑如下:◆ 解封装:将音视频文件的封装格式去掉,获取视频流(H.264)和音频流(AAC)◆ 解码:将视频流解码成原始图像数据(YUV),将音频流解码成原始音频数据(PCM)◆ 编码:将原始图像(YUV)进行编码(MPG2),将音频流进行编码(MP3)◆ 封装:将视频流和音频流封装成视频文件
2021-11-20 18:28:29 1774
原创 音视频入门系列-FFmpeg篇(编码)
日常开发过程中,我们涉及到的主要是解码相关内容,但FFmpeg同样具有编码的能力。今天这篇文章简单介绍下FFmpeg编码的内容。1.FFmpeg编码视频使用FFmpeg库编码YUV,代码及调用逻辑如下(文末附代码):2.FFmpeg编码音频使用FFmpeg库编码PCM,代码及调用逻辑如下(文末附代码):3.编码YUV源码如下:/* author:八小时码字员 file:encode_yuv_to_h264.cpp */ #include "enco..
2021-11-20 18:26:43 1289
原创 音视频入门系列-FFmpeg篇(解码)
从本篇开始,我们正式进入FFmpeg代码的学习。本片文章结合代码的形式介绍下FFmpeg的解码流程和SDL2播放流程。1. 开发环境◆ FFmpeg 开发库下载地址(自行选定版本号,-shared 为开发库):https://github.com/BtbN/FFmpeg-Builds/releases◆ SDL 开发库下载地址(选择Development Libraries):https://www.libsdl.org/download-2.0.php2.音视频解..
2021-11-20 18:25:40 1121 1
原创 音视频入门系列-FFmpeg篇(ffmpeg & ffplay & ffprobe 参数介绍和使用)
上文中我们介绍了ffmpeg库的下载以及部署,并简单介绍了ffmpeg三个可执行文件的作用,本文具体实操下,ffmpeg的三个可执行文件具体怎用使用。1.ffmpeg.exe◆ 用于音视频转码, 也可以从url/现场音频/视频源抓取输入源等。笔者从网上摘抄了一部分ffmpeg常用参数如下(尤其在开发过程中,由于ffmpeg版本不同,ffmpeg参数也有少量出入,建议在命令行窗口输入“ffmpeg -h”查看本机部署的ffmpeg支持的参数):◆ ffmpeg 网上摘抄参数◆"ffmpe..
2021-11-20 18:24:47 740
原创 音视频入门系列-FFmpeg篇(FFmpeg的安装)
说到音视频编解码,绕不开的就是FFmpeg。资料少,代码晦涩,是大家学习FFmpeg一个重要阻碍。“音视频入门系列-FFmpeg篇”将从FFmpeg解码、FFmpeg编码、FFmpeg转码,播放音视频、ffplay源码分析、FFmpeg源码分析等几个方面带大家一起学习FFmpeg相关知识。文末附有FFmpeg源码下载地址和可执行文件下载地址。1.FFmpeg库的下载通过文末的FFmpeg库可执行文件下载地址,Windows平台下载解压后如图所示(文件名称以-share结尾的是开发库)。2.
2021-11-20 18:23:49 638
原创 音视频入门系列-视频封装格式篇(MP4)
接上文,本篇介绍下MP4的封装格式。1.MP4(MPEG-4)◆ MP4是一套用于音频、视频信息的压缩编码标准,由国际标准化组织(ISO)和国际电工委员会(IEC)下属的“动态图像专家组”(Moving Picture Experts Group,即MPEG)制定,第一版在1998年10月通过,第二版在1999年12月通过。MPEG-4格式的主要用途在于网上流、光盘、语音发送(视频电话),以及电视广播。◆ MP4由许多box组成,每个box包含不同的信息,这些box以树形结构的方式组成,box 当中
2021-11-20 18:23:35 1428
原创 音视频入门系列-视频封装格式篇(TS)
本篇介绍下TS的封装格式。1.什么是TS?TS(Transport Stream,传输流),一种常见的视频封装格式,是基于MPEG-2的封装格式(所以也叫MPEG-TS),后缀为.ts。2.TS的分层结构TS文件分为三层,如下所示(可以倒序看更好理解):◆ TS层(Transport Stream):在PES层基础上加入了数据流识别信息和传输信息。◆ PES层(Packet Elemental Stream):在ES层基础上加入时间戳(PTS/DTS)等信息。◆ ES层(Eleme
2021-11-19 17:30:31 3499
原创 音视频入门系列-视频封装格式篇(FLV)
将图像、音频、字幕封装在一起,就形成了我们常见的视频,本篇文章主要介绍下FLV(后文中将介绍TS和MP4)视频封装格式。
2021-11-19 17:30:08 1204 1
原创 音视频入门系列-字幕篇(SSA & ASS)
前面的文章中已经介绍过音视频中的图像和音频,今天这篇文章介绍下字幕的相关知识。常见的字幕有srt、ssa、ass等格式,本文主要介绍下ssa和ass的格式。1.什么是SSA?◆ SSA(SubStation Alpha),是由CS Low(亦称Kotus)创建,比传统字幕格式(如SRT)功能更加先进的字幕文件格式。◆ 该格式字幕的外挂文件以*.ssa作为后缀。2.什么是ASS?◆ ASS(Advanced SubStation Alpha),是一种比SSA更为高级的字幕格式, 其实质版本是S
2021-11-19 17:25:47 3633
原创 音视频入门系列-音频篇(PCM)
说到音频,主要有两个概念比较重要,一个是采集到的原始音频数据(比如PCM)和压缩后的音频数据(比如AAC),本文将介绍下PCM的相关知识。(AAC相关知识请参见下篇文章)1.什么是PCM?PCM(Pulse Code Modulation,脉冲编码调制)音频数据是未经压缩的音频采样数据裸流,它是由模拟信号经过采样、量化、编码转换成的标准数字音频数据。2.如何理解PCM?PCM是一种用数字表示采样模拟信号方法。主要包括采样,量化,编码三个主要过程。◆先来看看模拟信号采样的过程:..
2021-11-19 16:23:35 2064
原创 音视频入门系列-图像篇(H.264)
H.264作为现在应用比较广泛的视频编码格式标准,本文笔者介绍下H.264相关知识。1.什么是H.264H.264是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准。2.H.264的数据格式是怎样的?H.264由视频编码层(VCL)和网络适配层(NAL)组成。◆ VCL:H264编码/压缩的核心,主要负责将视频数据编码/压缩,再切分。◆ NALU = NALU h
2021-11-19 13:56:02 1005
原创 音视频入门系列-音视频基础知识篇(录播、点播、直播)
在学习音视频技术前,笔者还是希望可以分享给小伙伴们一些音视频方便的基本概念,掌握这些概念,有助于大家对于音视频有一个更直观和清晰的了解。话不多说,今天笔者给大家分享下:录播、点播和直播。
2021-11-19 13:37:21 1798
原创 音视频入门系列 - 开篇
5G时代的来临,抖音、快手、哔哩哔哩等一批优秀互联网公司的崛起,推动了音视频行业的蓬勃发展。各大公司也在短视频、直播、云游戏等领域摩拳擦掌,音视频人才也成为各大公司争相招募的对象。“音视频入门系列”会从基础的图像、音频格式讲起,再到FFmpeg、流媒体协议、直播服务器等,涉及的内容不深,但求尽量做到覆盖全面。希望小伙伴们通过学习“音视频入门系列”,可以对于音视频的学习和研究方向有一个全面的了解,进而选择适合自己的技术路线。
2021-11-19 10:42:48 626
原创 RGB && YUV && HSV 颜色空间
一、RGB1.RGB格式:RGB565、RGB555、RGB24、RGB32(RGBA)二、YUV(YCrCb)1.Y表时明亮度,也就是灰度值;U(Cb)和V(Cr)描述了图像色彩及饱和度,Cr反映了RGB输入信号红色部分与RGB信号亮度值之间的差异,Cb反映的是RGB输入信号蓝色部分与RGB信号亮度值之同的差异。2.RGB和YUV转换公式 Y = 0.299R + 0.587G + 0.114B U (Cb)= -0.147R - 0.289G + 0.436..
2020-07-01 17:59:31 607
h264、h265、ts、yuv、m4a、flv、mov等视频文件
2020-10-02
音频文件(包含 pcm、wav、amr、m4a 共4个文件).zip
2020-07-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人