流媒体
文章平均质量分 88
ChenYuanshen
这个作者很懒,什么都没留下…
展开
-
最简单的基于FFmpeg的移动端例子:Android HelloWorld
从本文开始打算记录一系列FFmpeg在Android/IOS开发的示例程序。前面几篇文章记录FFmpeg安卓端开发的例子,后面几篇文章记录FFmpeg IOS端开发的例子。这些例子中FFmpeg相关的代码源自于《FFmpeg示例合集》中的程序。本文记录第一个程序:安卓平台下基于FFmpeg的HelloWorld程序。该程序的源代码源自于《最简单的基于FFMPEG的Helloworld程序》。转载 2016-06-16 11:51:03 · 1287 阅读 · 0 评论 -
FFmpeg获取DirectShow设备数据(摄像头,录屏)
这两天研究了FFmpeg获取DirectShow设备数据的方法,在此简单记录一下以作备忘。本文所述的方法主要是对应Windows平台的。1. 列设备[plain] view plain copy ffmpeg -list_devices true -f dshow -i dummy 命令执行后转载 2016-06-16 09:46:47 · 1349 阅读 · 0 评论 -
TS协议解析第三部分(PES)
1. PES:1.1 PES介绍:1.2. PES句法句法示意图:2. 分析PES包:2.1 PES包数据:3. PES语法解析:原创 2016-06-05 20:46:40 · 19652 阅读 · 2 评论 -
TS协议解析第四部分(adaptation field)
1. 调整字段(adaptation field):1.1 调整字段介绍:在MPEG-2TS中,为了传送打包后长度不足188B(包括包头)的不完整TS,或者为了在系统层插入节目时钟参考PCR字段,需要在TS包中插入可变长度字段的调整字段调整字段则包括对较高层次的解码功能有用的相关信息,调整字段的格式基于采用若干标志符,以表示该字段的某些特定扩展是否存在。调整字段由1B调整字段长度、不连原创 2016-06-15 17:49:44 · 3776 阅读 · 0 评论 -
TS协议解析第一部分(PAT)
1. 前言1.1 工具准备:1) 一个ts文件:2) UltraEdit:3) EStreamAnalyzer:4) Iso13818-1 规范:原创 2016-06-03 22:38:14 · 19948 阅读 · 9 评论 -
TS协议解析第二部分(PMT)
1. PMT:PMT(Program Map Table):节目映射表,该表的PID是由PAT提供给出的。通过该表可以得到一路节目中包含的信息,例如,该路节目由哪些流构成和这些流的类型(视频,音频,数据),指定节目中各流对应的PID,以及该节目的PCR所对应的PID。PMT表中包含的数据如下: (1) 当前频道中包含的所有Video数据的PID原创 2016-06-05 17:07:06 · 8169 阅读 · 3 评论 -
ffmpeg h264解码, 屏蔽因为网络丢包等各种原因导致的花屏帧
ffmpeg h264解码, 屏蔽因为网络丢包等各种原因导致的花屏帧 ---->看来问题只能这样解决了,现在还要多测测,防止产生新的问题。目前来看,对现有代码没有影响,花屏的帧直接屏蔽掉了。思路:问了下机顶盒方面h264解码的,他们用的是硬件解码,他们做到不花屏的方法就是简单的设置了一个硬件解码提供的接口:设置了错误处理模式。我想这个错误处理模式肯定对那些错误的帧直接屏原创 2016-06-08 10:32:27 · 10872 阅读 · 4 评论 -
H264视频压缩编码标准(二)
3. 帧内预测 在帧内预测模式中,预测块P是基于已编码重建块和当前块形成的。对亮度像素而言,P块用于4×4子块或者16×16宏块的相关操作。4×4亮度子块有9种可选预测模式,独立预测每一个4×4亮度子块,适用于带有大量细节的图像编码;16×16亮度块有4种预测模式,预测整个16×16亮度块,适用于平坦区域图像编码;色度块也有4种预测模式,类似于16×16亮度块预测模式。编码器通常选择使P原创 2016-06-01 16:43:23 · 1307 阅读 · 0 评论 -
MPEG2 TS小结
1. 应该说真正了解TS,还是看了朋友推荐的《数字电视业务信息及其编码》一书之后,MPEG2 TS和数字电视是紧密不可分割的,值得总结一下其中的一些关系。ISO/IEC-13818-1:系统部分;ISO/IEC-13818-2:视频;ISO/IEC-13818-3:音频;ISO/IEC-13818-4:一致性测试;ISO/IEC-13818-5:软件部分原创 2016-05-31 11:29:50 · 3770 阅读 · 0 评论 -
H264视频压缩编码标准(三)
3. 帧间预测3.1树状结构运动补偿 –每个宏块(16×16像素)可以4种方式分割:一个16×16,两个16×8,两个8×16,四个8×8。其运动补偿也相应有四种。而8×8分割还可以有四种方式的分割:一个8×8,两个4×8或两个8×4及4个4×4。这种分割下的运动补偿则称为树状结构运动补偿。原创 2016-06-16 14:57:09 · 820 阅读 · 0 评论 -
H264视频压缩编码标准(四)
4.变换与量化4.1树状结构运动补偿 –每个宏块(16×16像素)可以4种方式分割:一个16×16,两个16×8,两个8×16,四个8×8。其运动补偿也相应有四种。而8×8分割还可以有四种方式的分割:一个8×8,两个4×8或两个8×4及4个4×4。这种分割下的运动补偿则称为树状结构运动补偿。原创 2016-06-16 14:58:46 · 625 阅读 · 0 评论 -
AAC的封装
ADTS ADTS 头中相对有用的信息,如:采样率、声道数、帧长度,每一个带ADTS头信息的AAC流会清晰的告送解码器他需要的这些信息。 ADTS的头信息为两部分组成,其一为固定头信息,紧接着是可变头信息。固定头信息中的数据每一帧都相同,而可变头信息则在帧与帧之间可变,一般情况下ADTS的头信息都是7个字节,分为2部分,固定头占28位,可变头占28位。 AD转载 2016-06-11 09:08:23 · 1752 阅读 · 0 评论 -
Matlab JPEG详细介绍
作为一个基本的图像压缩方式,JPEG 已经得到了广泛的运用,但 JPEG 相关的基本原理,却经常被忽视,或解释得很不确切。这里我们详细讨论一下 JPEG 的编码原理,并结合实例来给出一个更加感性的认识。JPEG 编码的详细过程有着诸多的信息可以给我们巨大的启发,我们在这里讨论的就是要对这些信息做一个具体细致的分析,通过我们的讨论,大家会对 JPEG 编码过程中出现的内容有一个确切的了解,并且能了解转载 2016-09-04 22:34:48 · 7612 阅读 · 1 评论 -
MATLAB分析图像的离散余弦变换(DCT)
1. MATLAB的介绍以及所需函数的说明: 1.1 MATLAB MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程原创 2016-08-20 10:37:33 · 76931 阅读 · 3 评论 -
ffmpeg 在linux下编译
1、下载ffmpeg。 wget http://down1.chinaunix.net/distfiles/ffmpeg-0.4.9-p20051120.tar.bz2 我是在这个网址上下载ffmpeg-0.4.9-p20051120.tar.bz2,看网上有人用的是svn下载,但是我的机子中没有svn客户端,然后就在网上搜索,下载了这个版本。如果利用svn可以下载ff原创 2016-08-28 00:05:47 · 683 阅读 · 0 评论 -
MP4文件格式解析
目前MP4的概念被炒得很火,也很乱。最开始MP4指的是音频(MP3的升级版),即MPEG-2 AAC标准。随后MP4概念被转移到视频上,对应的是MPEG-4标准。而现在我们流行的叫法,多半是指能播放MPEG-4标准编码格式视频的播放器。但是这篇文章介绍的内容跟上面这些都无关,我们要讨论的是MP4文件封装格式,对应的标准为ISO/IEC 14496-12,即信息技术 视听对象编码的第12部分:ISO转载 2016-08-28 00:00:16 · 1466 阅读 · 1 评论 -
MP4文件格式的解析,以及MP4文件的分割算法
mp4应该算是一种比较复杂的媒体格式了,起源于QuickTime。以前研究的时候就花了一番的功夫,尤其是如何把它完美的融入到视频点播应用中,更是费尽了心思,主要问题是处理mp4文件庞大的“媒体头”。当然,流媒体点播也可以采用flv格式来做,flv也可以封装H.264视频数据的,不过Adobe却不推荐这么做,人家说毕竟mp4才是H.264最佳的存储格式嘛。 这几天整理并重构了一下mp4文件的解转载 2016-08-27 23:51:15 · 786 阅读 · 0 评论 -
H.264量化参数QP和量化步长Qstep
1. 量化参数QP是量化步长Qstep的序号。对于亮度(Luma)编码而言,量化步长Qstep共有52个值,QP取值0~51,对于色度(Chroma)编码,Q的取值0~39。QP取最小值0 时,表示量化最精细;相反,QP取最大值51时,表示量化是最粗糙的。QP和Qstep具有线性相关性,Qstep随着QP的增加而增加,每当QP值增加6,Qstep便增加一倍。量化是在原创 2016-07-21 23:04:39 · 24202 阅读 · 1 评论 -
H264的句法和语义(二)
1.2 句法元素的分层结构1.2.1 句法元素与变量编码器将数据编码为句法元素然后依次发送。在解码器端,通常要将句法元素作求值计算,得出一些中间数据,这些中间数据就是H.264定义的变量。从句法元素解出变量pic_width_in_mbs_minus1 是解码器直接从码流中提取的句法元素,这个句法元素表征图像的宽度以宏块为单位。我们看到,为了提高编码效率,H.264将图像实原创 2016-06-17 17:29:30 · 2032 阅读 · 0 评论 -
Jacobian矩阵和Hessian矩阵
1. Jacobian在向量分析中, 雅可比矩阵是一阶偏导数以一定方式排列成的矩阵, 其行列式称为雅可比行列式. 还有, 在代数几何中, 代数曲线的雅可比量表示雅可比簇:伴随该曲线的一个代数群, 曲线可以嵌入其中. 它们全部都以数学家卡尔·雅可比(Carl Jacob, 1804年10月4日-1851年2月18日)命名;英文雅可比量”Jacobian”可以发音为[ja ˈko bi ən]转载 2016-07-14 22:13:48 · 771 阅读 · 0 评论 -
H264的句法和语义(一)
1. 句法在编码器输出的码流中,数据的基本单元是句法元素,每个句法元素由若干比特组成,它表示某个特定的物理意义,例如:宏块类型、量化参数等。句法表征句法元素的组织结构,语义阐述句法元素的具体含义。所有的视频编码标准都是通过定义句法和语义来规范编解码的工作流程。1.1 句法元素的分层结构编码器输出的比特码流中,每个比特都隶属于莫格句法元素,也就是说,码流有一个个句法元素依次衔接组成的,码原创 2016-06-16 15:33:52 · 1687 阅读 · 0 评论 -
H264视频压缩编码标准(一)
1. H.264/AVC编码器:1)H264 编码器特点:H264并不明确地规定一个编码器如何实现,而是规定了一个编码的视频比特流的句法,和该比特流的解码方法,各个厂家的编码器和解码器在此框架下应能够互通,在实现上具有较大灵活性,而且有利于相互竞争。2)编码器:a)编码器采用的仍是变换和预测的混合编码法。输入的帧或场Fn以宏块单位被编码器处理。首先,按帧内或帧间预测编码的方法进行处原创 2016-06-01 15:38:43 · 16148 阅读 · 0 评论 -
ffmpeg直播h.264源卡顿
ffmpeg 转码H.264 High Profile的输入做直播时会有卡顿的现象;而且设定的帧率也达不到;是因为解码H.264 HP的速度达不到造成的。将编译时的“--disable-optimizations”去掉就可以了;转载 2016-05-31 17:28:10 · 5373 阅读 · 0 评论 -
【FFmpeg】Windows下64位ffmpeg编译
本文主要记录在64位Windows 7下,编译64位ffmpeg的过程。1.资源准备 (1). MSYS http://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/ (2). MinGW-w64 http://www.drangon.org/mingw/ (3). SD转载 2016-05-31 17:45:38 · 2300 阅读 · 0 评论 -
数字视频编码概述(熵编码/Huffman编码)
1. 数字视频压缩的必要性和可能性按ITU-R BT. 601建议,数字化后的输入图像格式为720*576像素,帧频为25帧/s,采样格式为4:2:2,量化精度为8bit,则数码率:(720 * 576 + 360 * 576 + 360 * 576) * 25帧/s * 8bit = 165.888Mbit/s。如果视频信号数字化后直接存放在650MB的光盘中,在原创 2015-11-30 16:18:23 · 7026 阅读 · 0 评论 -
流媒体必备学习工具
最佳把自己平常学习H264常用的工具汇总一下,以后会慢慢补充,还有这些工具的使用,有机会也会慢慢补上,当做自己的一个总结,也方便自己以后查找。1. Source Insight - 阅读代码最佳工具下载地址:http://download.csdn.net/detail/u013354805/88789372. Doxygen - 生成手册辅助阅读H.264代码,因此是分析代码结构的好原创 2015-11-30 10:38:36 · 1472 阅读 · 0 评论 -
电视信号的数字化
1. 信号的数字化:将模拟信号转换成数字信号,一般需要完成采样、量化和编码三个步骤。上述数字化的过程又称为脉冲编码调制(PCM)。1.1 采样用每隔一定时间(或空间)间隔的信号样本值序列代替原来在时间(或空间)上连续的信号,也就是在时间(或空间)上将模拟信号离散化。根据奈奎斯特(Nyquist)采样定理:只要采样频率大于或等于模拟信号的最高频率的2倍,即:1.2 量化用有限个幅原创 2015-11-27 11:29:03 · 4974 阅读 · 1 评论 -
数字电视概论
1. 数字电视和高清晰度电视得概念: 数字电视(Digital Television, DTV):是数字电视系统得简称,是指采用数字技术将音频、视频和数字等信号进行信源编码、信道编码和调制等处理,经存储或实时广播后,供用户接收、播放得电视系统。高清晰度电视(HDTV):是一种电视业务,原CCIR(国际无线电咨询委员会,现改名为ITU-R)给高清电视的定义是:“高清晰度电视是一原创 2015-11-26 21:51:06 · 595 阅读 · 0 评论 -
ffmpeg入门基础知识
1. 获取ffmpeg源代码如果你是在Windows环境下,则可以先装SVN的一个客户端TortoiseSVN(非常好用,强烈推荐),他安装完成后会集成在右键菜单中,点Checkout菜单,在弹出的界面中输入:svn://svn.mplayerhq.hu/ffmpeg/trunk,然后选择一个本地目录,按确定就可以把ffmpeg的源代码下载到你指定的目录中了。2. FFMPEG原创 2015-11-26 10:03:01 · 654 阅读 · 0 评论 -
I帧,P帧,B帧简介
视频压缩中,每帧代表一幅静止的图像。而在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的。 简单地说,I帧是关键帧,属于帧内压缩。就是和AVI的压缩是一样的。 P是向前搜索的意思。B是双向搜索。他们都是基于I帧来压缩数据。 I帧表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成(因为包含完整画面)P帧表示的是这一帧跟之前的一个关键帧原创 2015-11-26 15:52:44 · 660 阅读 · 1 评论 -
音频帧概念详解
一. 音频帧概率详解:1. 概念1)采样率(Sample Rate):每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。一般音乐CD的采样率是44100Hz,所以视频编码中的音频采样率保持在这个级别就完全足够了,通常视频转换器也将这个采样率作为默认设置。2)帧率(Frame rate):是用于测量显示帧数的量度。所谓的测量单位为每秒显示帧数(Frames per原创 2015-12-09 12:34:59 · 26502 阅读 · 4 评论 -
傅里叶分析之掐死教程(完整版)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者:Heinrich链接:http://zhuanlan.zhihu.com/wille/19763358来源:知乎作 者:韩 昊知 乎:Heinrich微 博:@花生油工人 知乎专栏:与时间无关的故事谨以此文献给大连海事大学的吴楠老师,柳晓鸣老师,王新年老师以及张晶泊老师。转载的同学转载 2015-12-04 11:19:17 · 659 阅读 · 0 评论 -
H264基础概念
一、MPEG-4说明1、VOP视频编码技术VO(Video Object):视频对象,它是场景中的某个物体,最简单的情况下就是矩形框,它是有生命期的,由时间上连续的许多帧构成。VOP(Video Object Plane):视频对象平面,它可以看作是VO在某一时刻的采样,即一帧VO。2、运动估计与运动补偿技术I-VOP、P-VOP、B-VOP三种帧格式来表征不同的运动补偿类原创 2016-04-21 15:52:08 · 856 阅读 · 0 评论 -
【FFmpeg】Windows下FFmpeg调试
为了深入了解ffmpeg的工作原理,需要阅读源代码,调试源代码。在Windows下调试ffmpeg源码,一种方法是在MinGW+Msys环境下,利用GDB进行调试;另一种是借助Eclipse进调试,其本质也是调用GDB进行调试,只是提供了良好界面,便于用户交互。本文主要记录利用Eclipse调试FFmpeg源码的过程。1.Eclipse安装 Eclipse安装过程可参考网上其他资转载 2016-05-31 17:43:19 · 879 阅读 · 0 评论 -
【FFmpeg】Windows下FFmpeg编译
由于FFmpeg是基于Linux开发的开源项目,源代码和Windows下最常见的Visual Studio提供的C/C++编译器不兼容,因此它不能使用MSVC++编译,需要在Windows下配置一个类似Linux的编译环境。本文主要记录Windows下FFmpeg编译的过程。1.资源准备准备编译过程所需的软件工具和源代码。(1). MinGW-MSYS Bundle htt转载 2016-05-31 17:35:58 · 1586 阅读 · 0 评论 -
【FFmpeg】ffplay播放rtsp视频流花屏问题
原文链接:http://www.cnblogs.com/dwdxdy/p/3240217.html问题描述:ffplay播放rtsp视频流时,播放过程中随机出现花屏现象。基本流程学习:阅读ffplay源码,熟悉其播放rtsp视频流的基本流程。在ffplay源码阅读和分析的基础上,画出了其播放rtsp的函数调用关系,如下图所示:avformat_open_转载 2016-05-31 17:31:28 · 1875 阅读 · 0 评论 -
视频切分与合并
视频切分与合并在应用场景中很常见,如视频剪辑,去广告等。本文以MP4文件为目标,对其进行切分合并一. VLC做前期处理如果需要加亮,锐化,对比度,可以使用VLC来实现,cvlc nikita.mp4 --sout="#transcode{vfilter={adjust{}:sharpen{sigma=0.12}: deinterlace{mode=mean}},vc原创 2016-05-31 17:25:03 · 4238 阅读 · 0 评论 -
Mp4box的下载、安装和使用
简介MP4Box是GPAC的多媒体包,它可以被用来对诸如AVI, MPG, TS, 但更多地是对于ISO媒体文件(如MP4, 3GP)进行操作。简单地说MP4Box可以被用来: 对诸如MP4, 3GP之类的ISO文件进行操作,如:添加、移除、混流 执行流的加密操作 将元数据附着到单独的流上去MP4Box可以对ISO媒体文件的已经存在的内容进行重新封装,值转载 2016-05-31 17:19:04 · 10190 阅读 · 0 评论 -
ffmpeg对mpeg2-TS详细解析
介绍: MPEG的系统层编码为不同的应用场景设计了两种格式: TS(Transport Stream) 和PS(Program Stream),它们两者之间不具有层级关系,在逻辑上,它们两者都是由PES(Packetized Elementary Stream)包组成的,所以可以很方便地实现相互转换.TS(Transport Stream原创 2016-05-31 17:14:48 · 4898 阅读 · 0 评论 -
ffmpeg 中av_rescale_rnd 的含义
一、函数声明:int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding rnd);直接看代码, 它的作用是计算 "a * b / c" 的值并分五种方式来取整.用在FFmpeg中, 则是将以 "时钟基c" 表示的 数值a原创 2016-05-31 15:31:05 · 1892 阅读 · 0 评论