ffmpeg
文章平均质量分 80
null_null999
这个作者很懒,什么都没留下…
展开
-
av_interleaved_write_frame
LOGI("帧大小 %d",pkt.size); LOGI("帧内存 %d",pkt.data); //ret = av_write_frame(ofmt_ctx, &pkt); ret = av_interleaved_write_frame(ofmt_ctx, &pkt); // pkt.data ...原创 2018-04-06 17:28:25 · 1716 阅读 · 0 评论 -
19种音频格式介绍及音质压缩比的比较
19种音频格式介绍及音质压缩比的比较 目录前言..........................................................................................................................................2 1. 数码音乐简介.................转载 2018-01-17 13:07:15 · 28699 阅读 · 1 评论 -
HTTP协议/RTSP协议/RTMP协议的区别
https://www.cnblogs.com/gongyuhonglou/p/5605320.htmlRTMP有累积延迟HTTP协议/RTSP协议/RTMP协议的区别RTSP、 RTMP、HTTP的共同点、区别共同点:1:RTSP RTMP HTTP都是在应用应用层。2: 理论上RTSP RTMPHTTP都可以做直播和点播,但一般做直播用RTS转载 2018-01-16 17:19:57 · 406 阅读 · 0 评论 -
H264—帧,片,参数集,NALU等概念
http://blog.csdn.net/jammg/article/details/52357351h264是一个编码压缩的格式,可以使用x264库进行编码,源码开放,可下载编译使用。-------------------------------------------------------------------------------------------------转载 2018-01-23 08:23:10 · 821 阅读 · 0 评论 -
h.264的图象参数集和序列参数集
http://blog.sina.com.cn/s/blog_12eb15b660102vk23.htmlh.264解码中首先过滤码流获得参数集,参数集是H.264标准的一个新概念,是一种通过改进视频码流结构增强错误恢复能力的方法。众所周知,一些关键信息比特的丢失(如序列和图像的头信息)会造成解码的严重负面效应,而H.264把这些关键信息分离出来,凭借参数集的设计,确保在易出错的环境中转载 2018-01-23 07:56:02 · 474 阅读 · 0 评论 -
H264码流中SPS PPS详解
转载地址:https://zhuanlan.zhihu.com/p/278962391 SPS和PPS从何处而来?2 SPS和PPS中的每个参数起什么作用?3 如何解析SDP中包含的H.264的SPS和PPS串?1 客户端抓包在做客户端视频解码时,一般都会使用Wireshark抓包工具对接收的H264码流进行分析,如下所示:在这里我们可以看到对解码视频起转载 2018-01-22 09:29:08 · 304 阅读 · 0 评论 -
H.264(层次结构,NAL,SPS) 详细重要参数
一 H.264句法1.1元素分层结构H.264编码器输出的Bit流中,每个Bit都隶属于某个句法元素。句法元素被组织成有层次的结构,分别描述各个层次的信息。 图1H.264分层结构由五层组成,分别是序列参数集、图像参数集、片(Slice)、和宏块和子块。参数集是一个独立的数据单位,不依赖于参数集外的其它句法元素。图2描述了参数集与参数集外的转载 2018-01-22 09:14:48 · 261 阅读 · 0 评论 -
ARM NEON编程初探——一个简单的BGR888转YUV444实例详解
http://galoisplusplus.coding.me/blog/2017/06/10/use-arm-neon-to-accelerate-bgr888-to-yuv444/最近在学习ARM的SIMD指令集NEON,发现这方面的资料真是太少了,我便来给NEON凑凑人气,姑且以这篇入门文章来分享一些心得吧。学习一门新技术,总是有一些经典是绕不开的,对于NEON来说,这份转载 2018-01-21 13:38:18 · 816 阅读 · 0 评论 -
AVPicture中data与linesize关系
AVPicture中data与linesize关系2013年10月09日 ⁄ 综合 ⁄ 共 1388字 ⁄ 字号 小 中 大 ⁄ 评论关闭AVPicture结构中data和linesize关系AVPicture里面有data[4]和linesize[4]其中data是一个指向指针的指针(二级、二维指针),也就是指向视频数据缓冲区的首地址,而d转载 2017-12-18 20:31:28 · 232 阅读 · 0 评论 -
ape
APE是流行的数字音乐无损压缩格式之一,因出现较早,在全世界特别是中国大陆有着广泛的用户群。与MP3这类有损压缩格式不可逆转地删除(人耳听力不敏感的)数据以缩减源文件体积不同,APE这类无损压缩格式,是以更精炼的记录方式来缩减体积,还原后数据与源文件一样,从而保证了文件的完整性。APE由软件Monkey's audio压制得到,开发者为Matthew T. Ashland,源代码开放,因其界面转载 2017-12-27 09:44:36 · 232 阅读 · 0 评论 -
一、为什么会产生field概念 二、MBAFF
一、为什么会产生field概念二、MBAFF一、为什么会产生field概念 人眼可察觉到的电视视频图像刷新中的闪烁为0.02秒,即当电视系统的帧率低于50帧/秒,人眼可感觉得出画面的闪烁。常规如PAL制式电视系统帧率为25帧/秒、NTSC制式的则为30帧/秒,如果采用逐行扫描将不可避免地在视频刷新时产生闪烁现象。而另一方面如果单纯的提高帧率达到避免转载 2017-12-27 08:33:30 · 573 阅读 · 0 评论 -
DTS和PTS的解释
DTS和PTS的解释 FFmpeg里有两种时间戳:DTS(Decoding Time Stamp)和PTS(Presentation Time Stamp)。顾名思义,前者是解码的时间,后者是显示的时间。要仔细理解这两个概念,需要先了解FFmpeg中的packet和frame的概念。 FFmpeg中用AVPacket结构体来描述解码前或编码后的压缩包,用AVFrame结构体来描述解码后或编码前的信转载 2018-01-19 08:34:59 · 1411 阅读 · 0 评论 -
AVpacket与avframe
AVFrame *frame = (AVFrame *)pkt->data;原创 2018-04-06 11:32:32 · 5184 阅读 · 0 评论 -
音频帧概念详解
http://blog.chinaunix.net/uid-26000296-id-3446714.html正常人听觉的频率范围大约在20Hz~20kHz之间。采样频率是指将模拟声音波形进行数字化时,每秒钟抽取声波幅度样本的次数。根据奈奎斯特采样理论,为了保证声音不失真,采样频率应该在40kHz左右。常用的音频采样频率有8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、4...转载 2018-03-19 11:12:48 · 1131 阅读 · 0 评论 -
音视频博客
http://blog.51cto.com/ticktick/1760191转载 2018-03-18 15:48:03 · 256 阅读 · 0 评论 -
Android多媒体框架总结(1) - 利用MediaMuxer合成音视频数据流程分析
场景介绍: 设备端通过服务器传向客户端(Android手机)实时发送视频数据(H.264)和音频数据(g711a或g711u), 需要在客户端将音视频数据保存为MP4文件存放在本地,用户可以通过APP或者直接在手机上观看MP4文件.解决方案: 通过Android MultiMedia Framework提供的MediaMuxer类对音视频数据进行同步合成.流程图:流程分析: 1.整体来看, ...转载 2018-03-18 15:45:45 · 1718 阅读 · 0 评论 -
YUV4:2:0
420是针对每一行说的,如果一行的分量没取,那么后面一行会补上4:2:0并不意味着只有Y,Cb而没有Cr分量。它指得是对每行扫描线来说,只有一种色度分量以2:1的抽样率存储。相邻的扫描行存储不同的色度分量,也就是说,如果一行是4:2:0的话,下一行就是4:0:2,再下一行是4:2:0...以此类推。对每个色度分量来说,水平方向和竖直方向的抽样率都是2:1,所以可以说色度的抽样率是4:1。对非压转载 2018-01-20 13:24:12 · 1265 阅读 · 0 评论 -
ffmpeg码率控制
http://blog.csdn.net/austinblog/article/details/28426587一.VBR与CBR的含义和区别VBR是动态码率。CBR是静态码率。VBR(Variable Bitrate)动态比特率。也就是没有固定的比特率,压缩软件在压缩时根据音频数据即时确定使用什么比特率,这是以质量为前提兼顾文件大小的方式。VBR也称为动态比特率编码,使用转载 2018-01-20 08:15:37 · 1051 阅读 · 0 评论 -
mpeg采样率
90000,所以time_base是1/90000,注意,这个采样率是pts、dts的采样率,视频当然不可能达到这种采样率,所谓的pts,dts采样率,就是每隔1/90000的时间,贴一个timestamp转载 2018-01-19 16:34:37 · 469 阅读 · 0 评论 -
腾讯直播的sdk和文档地址
https://cloud.tencent.com/document/product/454/7877https://cloud.tencent.com/document/product/454/7873原创 2018-01-19 16:21:09 · 1501 阅读 · 0 评论 -
FFMPEG之TimeBase成员理解
转http://blog.csdn.net/supermanwg/article/details/14521869FFMPEG的很多结构中有AVRational time_base;这样的一个成员,它是AVRational结构的typedef struct AVRational{ int num; /// int den; ///} AVRational;AVRational这个结构标转载 2018-01-19 11:17:45 · 210 阅读 · 0 评论 -
B帧的顺序
前面看到一篇文章说出现b帧时输入顺序与编码顺序不一致,所以需要pts和dts,一开始没想明白,后来想想,b帧就是要有前后帧的信息才会出现的帧,也就是说时间上就不是线性的,等后面一帧出现,觉得可以用B帧了,这时候编码器就会在前面插入b帧原创 2018-01-19 08:48:27 · 642 阅读 · 0 评论 -
DTS PTS
FFmpeg里有两种时间戳:DTS(Decoding Time Stamp)和PTS(Presentation Time Stamp)。顾名思义,前者是解码的时间,后者是显示的时间。要仔细理解这两个概念,需要先了解FFmpeg中的packet和frame的概念。 FFmpeg中用AVPacket结构体来描述解码前或编码后的压缩包,用AVFrame结构体来描述解码后或编码前的信号帧。对于视频来说,转载 2018-01-19 08:37:23 · 217 阅读 · 0 评论 -
avcodec_open(pCodecCtx, pCodec
pCodec=avcodec_find_decoder(pCodecCtx->codec_id);if(pCodec==NULL) {fprintf(stderr, ”Unsupported codec!\n”);return -1; // Codec not found}// Open codecif(avcodec_open(pCodecCtx, pCodec)因为原创 2017-12-17 12:28:46 · 753 阅读 · 0 评论 -
wave文件(*.wav)格式、PCM数据格式
http://www.cnblogs.com/cheney23reg/archive/2010/08/08/1795067.html1. 音频简介 经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等.44100HZ 16bit stereo: 每秒钟有 44100 次采样, 采样数据用 16 位(2字节)记录, 双声道转载 2017-08-07 14:25:24 · 663 阅读 · 0 评论 -
flv
http://blog.csdn.net/leixiaohua1020/article/details/17934487其中音频tag 8bit 和16bit表示描述精度的区别音频类型 sndmono表示单声道,sndstereo表示立体声转载 2017-08-07 10:58:17 · 188 阅读 · 0 评论 -
av_guess_format
const char* out_file = "ds.h264"; av_register_all(); //Method1. pFormatCtx = avformat_alloc_context(); //Guess Format fmt = av_guess_format(NULL, out_file,转载 2017-08-04 17:17:32 · 5089 阅读 · 0 评论 -
I,P,B帧
http://www.cnblogs.com/zhangming-blog/articles/6000518.html总结,这些帧的设计实际上主要是用来“网络传输”,减少需要传输的信息量,实际上是增加了计算量,所以对于本地播放等是没有意义的比如I帧,是用来计算下一帧与前面一帧的差值,然后播放下一帧的时候,将差值放上去就行了。如果只是本地播放,计算差值本身就已经将下一帧的所有信息都提取出来了转载 2017-08-11 14:17:11 · 382 阅读 · 0 评论 -
FFmpegFrameRecorder
file=new File(sdcard+"ok.mp4"); if (!file.exists()){ try { file.createNewFile(); }catch (IOException e){ } } try{ // File file1=new Fil原创 2017-08-17 18:23:01 · 8197 阅读 · 4 评论 -
视频格式与编解码方式的关系
编解码格式是数据按那种方式编码压缩,便于网络传输和降低带宽的需要;文件格式是将内容按具体的编码格式压缩后,以该文件所规定的格式进行封装的结果,即容器的概念,文件播放则按容器数据的存放方式解析,提取出编码数据然后解码后交由播放设备进行播放。原始视频通过摄像头采集进来以后很庞大,要想在互联网上进行传输就必须要进行压缩,于是就有了编解码标准,原始视频文件经过压缩以后就有了不同的格式,比如通过h.264压转载 2017-07-26 09:33:46 · 1023 阅读 · 0 评论 -
使用Android Studio编写第一个ffmpeg程序
使用Android Studio编写第一个ffmpeg程序所需材料1、android studio 2.32、android-ndk-r133、ffmpeg编译结果(include,libs)本文实例中需要使用到编译的ffmpeg头文件和静态库。本文使用Android Studio2.3 来开发,主要是考虑到Android Studio对NDK开发已转载 2017-08-10 08:47:36 · 806 阅读 · 0 评论 -
利用FFmpeg将Jpeg图片转为任意视频容器格式
extern"C"//包含C文件头{#include "libavformat/avformat.h"};#define DATASIZE 1024*1024 AVStream *add_vidio_stream(AVFormatContext *oc, enumAVCodecID codec_id)//用以初始化一个用于转载 2017-08-07 18:14:15 · 1678 阅读 · 1 评论 -
ffmpeg解码jpg并编码成h264
不过这是windows的,android平台不知道函数是不是不同,但是至少可以做个参考http://blog.csdn.net/xxq123321/article/details/10002475直接代码:[cpp] view plain copyint getFileSize(const char* sFile) {转载 2017-08-07 18:02:54 · 2742 阅读 · 0 评论 -
ffmpeg解码JPG和PNG等图片
http://blog.chinaunix.net/uid-25272011-id-3690729.html 【特别提醒:本文写作时,贴上去的代码,"\n"回车符号的"\"没有了,不知道为啥,所以阅读代码时请注意区分,或者欢迎到我的CSDN网站阅读 http://blog.csdn.net/jgf_ntu/article/details/8928977】转载 2017-08-07 16:00:18 · 9428 阅读 · 1 评论 -
H.264
This guide assumes that you will be using the libx264 encoder, which currently offers the best possible quality at fast encoding speeds. Other encoders may be more efficient, but slower, e.g. libx26转载 2017-08-25 18:03:34 · 212 阅读 · 0 评论 -
H264解码SPS获取宽高和帧率
#include #include #include #include typedef unsigned int UINT; typedef unsigned char BYTE; typedef unsigned long DWORD; UINT Ue(BYTE *pBuff, UINT nLen, UINT &nStart转载 2017-12-24 15:48:24 · 1001 阅读 · 0 评论 -
深入浅出理解视频编码H264结构(内涵福利)
https://www.jianshu.com/p/9522c4a7818d原文链接引言:在国内直播"欣欣向荣"(ps: 其实大多都亏钱,为的就是炒概念)的年代,相信很多小伙伴也投入了技术的浩瀚大洋当中(ps: 其实就是搬砖),日复一日,音/视频的神秘面纱开始让更多的小伙伴扯下,而本博主,也只是刚窥探门道,慢慢摸索。好了,废话不扯,我们今天就来说说我们经常在视频编码当中用到的 H.转载 2017-12-24 10:43:33 · 871 阅读 · 0 评论 -
AVFrame关于视音频数据存储
http://blog.csdn.net/dancing_night/article/details/456424931、概述这几天用ffmpeg实现简单音频转码,在写程序的过程中发现音频在AVFrame中存储与视频很相似,音频要复杂一些,本人记性不好,所以在这里记录下来,以作备忘。2、2个数据成员在AVFrame中有2个很重要的数据成员,一个是data,一个是转载 2017-12-20 19:08:53 · 1400 阅读 · 0 评论 -
av_read_frame()
ffmpeg中的av_read_frame()的作用是读取码流中的音频若干帧或者视频一帧。例如,解码视频的时候,每解码一个视频帧,需要先调用 av_read_frame()获得一帧视频的压缩数据,然后才能对该数据进行解码(例如H.264中一帧压缩数据通常对应一个NAL)。转载 2017-12-20 10:06:16 · 1202 阅读 · 0 评论 -
ffmpeg avpicture_fill的一些使用
这个FFMPEG我没找到详细的中文教程,只有将自己的使用心得记录。1 int avpicture_fill(AVPicture *picture, uint8_t *ptr, int pix_fmt, int width, int height);这个函数的使用本质上是为已经分配的空间的结构体AVPicture挂上一段用于保存数据的空间,转载 2017-12-20 08:34:25 · 506 阅读 · 0 评论