音视频编解码
记录在案
这个作者很懒,什么都没留下…
展开
-
H264--NAL层的处理--3
------------------------------H.264的NAL层处理------------------------------H264以NALU(NAL unit)为单位来支持编码数据在基于分组交换技术网络中传输。NALU定义了可用于基于分组和基于比特流系统的基本格式,同时给出头信息,从而提供了视频编码和外部世界的接口。H264编码转载 2013-01-21 15:09:45 · 1375 阅读 · 0 评论 -
RTSP协议转换RTMP直播协议
RTSP协议转换RTMP直播协议 RTSP协议也是广泛使用的直播/点播流媒体协议,最近实现了一个RTSP协议转换RTMP直播协议的程序,为的是可以接收远端设备或服务器的多路RTSP直播数据,实时转换为RTMP直播协议,推送到FMS、Red5、wowza server等RTMP服务器,以实现flash观看RTSP直播源的需求。程序同时也具备从FLV文件获取输入数据并转换RTMP直播。实现的转载 2014-05-16 14:37:11 · 1120 阅读 · 0 评论 -
实现输出h264直播流的rtmp服务器
实现输出h264直播流的rtmp服务器 RTMP(Real Time Messaging Protocol)是常见的流媒体协议,用来传输音视频数据,结合flash,广泛用于直播、点播、聊天等应用,以及pc、移动、嵌入式等平台,是做流媒体开发经常会接触到的协议。我之前曾经写过一篇文章“RTMP协议发送H.264编码及AAC编码的音视频”,简单介绍过如何在自己的程序里使用rtmp协议,不过那转载 2014-05-16 14:41:05 · 869 阅读 · 0 评论 -
HTTP Live Streaming直播(iOS直播)技术分析与实现
HTTP Live Streaming直播(iOS直播)技术分析与实现 不经意间发现,大半年没写博客了,自觉汗颜。实则2012后半年,家中的事一样接着一样发生,实在是没有时间。快过年了,总算忙里偷闲,把最近的一些技术成果,总结成了文章,与大家分享。 前些日子,也是项目需要,花了一些时间研究了HTTP Live Streaming(HLS)技术,并实现了一个HLS编码器HLSL转载 2014-05-16 14:39:31 · 657 阅读 · 0 评论 -
crtmpserver 基本流程分析
最近在研究crtmpserver,这里记录下学习过程,首先我们先分析下基本流程。1、初始化流程InitNetworking---初始化网络InitializeLogger::Init()---初始化日志lowerCase(extension) == "lua"---加载.lua后缀配置文件LoadLuaFileNormalizeNormalizeLogAppen转载 2014-07-17 16:17:50 · 738 阅读 · 0 评论 -
ffmpeg 解复用视频文件
解复用视频文件:就是提取出音频文件和视频文件的ES流数据。而对于aac和h264来说,提取出来的数据直接保存并不能成功的播放,原因就在ffmpeg解出的ES数据比较纯净,没有ADTS头,而很多解码器都是需要ADTS头信息来进行解码的,所以就要对aac数据进行头部adts结构的添加。 对于h264文件来说,h264有两种封装,一种是annexb模式,传统模式,有startcode,S转载 2014-05-26 10:19:54 · 1552 阅读 · 0 评论 -
C++实现RTMP协议发送H.264编码及AAC编码的音视频,摄像头直播
RTMP(Real Time Messaging Protocol)是专门用来传输音视频数据的流媒体协议,最初由Macromedia 公司创建,后来归Adobe公司所有,是一种私有协议,主要用来联系Flash Player和RtmpServer,如FMS, Red5, crtmpserver等。RTMP协议可用于实现直播、点播应用,通过FMLE(Flash Media Live Encoder转载 2014-05-16 14:31:09 · 1437 阅读 · 0 评论 -
ffmpeg中的sws_scale算法性能测试
经常用到ffmpeg中的sws_scale来进行图像缩放和格式转换,该函数可以使用各种不同算法来对图像进行处理。以前一直很懒,懒得测试和甄别应该使用哪种算法,最近的工作时间,很多时候需要等待别人。忙里偷闲,对ffmpeg的这一组函数进行了一下封装,顺便测试了一下各种算法。简单说一下测试环境,我使用的是Dell的品牌机,i5的CPU。ffmpeg是2010年8月左右的当时最新版本编译而成,我转载 2014-02-11 16:01:55 · 804 阅读 · 0 评论 -
H264--H264编码--4
----------------------------------编码器输出格式----------------------------------总的来说H264的码流的打包方式有两种,一种为annex-b byte stream format的格式,这个是绝大部分编码器的默认输出格式,就是每个帧的开头的3~4个字节是H264的start_code,0x00000001或者0x00转载 2013-01-21 15:12:35 · 1648 阅读 · 0 评论 -
ffmpeg: ‘UINT64_C’ was not declared in this scope
ffmpeg 默认是用C文件来编译的,如果某个CPP文件想引用ffmpeg中的某些函数或者头文件,有可能出现‘UINT64_C’ was not declared in this scope的错误情形大概如下The same issue i'm getting here when compiling chromium with ffmpeg from svn:In file inc转载 2013-01-24 16:30:06 · 968 阅读 · 0 评论 -
H264--编码原理以及I帧B帧P帧--1
-----------------------前言-----------------------H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内。所以对于一段变化不大图像画面,我们可转载 2013-01-21 15:05:33 · 1868 阅读 · 0 评论 -
ffmpeg解码流程 turorial5详解
FFMPEG解码流程1. 注册所有容器格式和CODEC:av_register_all()2. 打开文件:av_open_input_file()3. 从文件中提取流信息:av_find_stream_info()4. 穷举所有的流,查找其中种类为CODEC_TYPE_VIDEO5. 查找对应的解码器:avcodec_find_decoder()转载 2013-01-22 11:03:32 · 1153 阅读 · 0 评论 -
H264—MP4格式及在MP4文件中提取H264的SPS、PPS及码流
一、MP4格式基本概念MP4格式对应标准MPEG-4标准(ISO/IEC14496)二、MP4封装格式核心概念1 MP4封装格式对应标准为 ISO/IEC 14496-12(信息技术 视听对象编码的第12部分: ISO 基本媒体文件格式/Information technology Coding of audio-visual objects Part 12:转载 2013-01-25 09:51:51 · 1057 阅读 · 0 评论 -
H.264RTP封包原理
1.引言随着信息产业的发展,人们对信息资源的要求已经逐渐由文字和图片过渡到音频和视频,并越来越强调获取资源的实时性和互动性。但人们又面临着另外一种不可避免的尴尬,就是在网络上看到生动清晰的媒体演示的同时,不得不为等待传输文件而花费大量时间。为了解决这个矛盾,一种新的媒体技术应运而生,这就是流媒体技术。流媒体由于具有启动时延小、节省客户端存储空间等优势,逐渐成为人们的首选,流媒体网络应用也在全球转载 2013-01-25 09:52:48 · 661 阅读 · 0 评论 -
H264--语法及结构--2
---------------前言-------------H264结构中,一个视频图像编码后的数据叫做一帧,一帧由一个片(slice)或多个片组成,一个片由一个或多个宏块(MB)组成,一个宏块由16x16的yuv数据组成。宏块作为H264编码的基本单位。-------------------------名词解释 -------------------------场转载 2013-01-21 15:07:17 · 1213 阅读 · 0 评论 -
H264--H264解码--5
解码器在解码时,首先逐个字节读取NAL的数据,统计NAL的长度,然后再开始解码。nal_unit( NumBytesInNALunit ) {/* NumBytesInNALunit为统计出来的数据长度 */forbidden_zero_bit // forbidden_zero_bit 等于 0表示网络传输没有出错nal_ref_idc // 指示当前 NAL 的优先级。取值范围为转载 2013-01-21 15:17:28 · 1031 阅读 · 0 评论 -
PAT、PMT、SDT详解 MPEG2-TS流的分析
下面针对解复用程序详细分析一下PAT,PMT和SDT三类表格的格式.PAT---Program Association Table,节目关联表。PAT表携带以下信息:(1) TS流ID--- transport_stream_id,该ID标志唯一的流ID(2)节目频道号-- program_number,该号码标志TS流中的一个频道,该频道可以包含很多的节目(即可以包含多个Vide转载 2013-10-08 18:07:56 · 8035 阅读 · 0 评论 -
混音器编程接口讨论
译自:MIXER API ARGUMENTATION为了理解混音器API是如何工作的,必须先了解典型的声卡的硬件布局。我们有必要想象一下,声卡上有各种独立的,清楚的,但是却又互相连接的元件。先看一种典型的,最基本的声卡。首先,如果声卡有数字音频录音功能,它必定有一个麦克风输入接口(以及某种前置放大器(pre-amp)),还有一个模数转换器(ADC)用来转换麦克风的模拟信号为数字信号翻译 2013-10-24 17:17:47 · 1280 阅读 · 0 评论 -
RTMP流媒体播放过程
本文描述了从打开一个RTMP流媒体到视音频数据开始播放的全过程。注意:RTMP中的逻辑结构RTMP协议规定,播放一个流媒体有两个前提步骤:第一步,建立一个网络连接(NetConnection);第二步,建立一个网络流(NetStream)。其中,网络连接代表服务器端应用程序和客户端之间基础的连通关系。网络流代表了发送多媒体数据的通道。服务器和客户端之间只能建立一个网络连接,但是基于转载 2014-08-18 17:27:16 · 596 阅读 · 0 评论