
C++
文章平均质量分 58
码农突围
这个作者很懒,什么都没留下…
展开
-
C++总结学习(一)
继承:公有继承 class A : public B 可以调用父类的成员函数,或成员变量保护继承 class A : protected B私有继承 class A : private B如果继承方式是public的,基类成员访问属性 继承方式 派生类成员访问属性 类型 基类 访问权限 private成员 public 无法访问 protected原创 2017-03-05 00:11:53 · 1961 阅读 · 1 评论 -
FFmpeg总结(八)windows下用ffmpeg获取视频缩略图
环境:VS 2015运行程序,生成RGB图像数据:将RGB图像数据转换成yuv格式,通过ffmpeg命令,如下:验证画面完整性,需要用YUVplayer来打开yuv文件:如下:完整代码:#include "stdafx.h"extern "C"{#include "libavformat\avformat.h"#include "libswscale\swscale.h"}#defin原创 2017-04-25 11:03:29 · 3841 阅读 · 0 评论 -
C++中this指针小记
首先C语言中,是没有this指针或this关键字,this是在c++中特有。this指针的用处 一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成原创 2017-05-28 19:43:23 · 1444 阅读 · 0 评论 -
H.264标准(二)FLV封装格式详解
首先用工具分析一个flv文件,flv是一种封装格式,是adobe公司推出的。官方文档可以参考:video_file_format_spec_v10_1,本文根据官方文档总结。http://img.blog.youkuaiyun.com/20170616095103836?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGVqanVubGlu/font/5a6L5...原创 2017-06-16 10:27:05 · 4312 阅读 · 1 评论 -
H.264标准(三)F4V封装格式详解
F4V是Adobe公司为了迎接高清时代而推出继FLV格式后的支持H.264的流媒体格式。它和FLV主要的区别在于,FLV格式采用的是H263编码,而F4V则支持H.264编码的高清晰视频,码率最高可达50Mbps。由于采用H264高清编码,相比于传统的FLV,F4V在同等体积的前提下,能够实现更高的分辨率,并支持更高比特率。随着网络带宽的发展和视频网站的发展,以及人们对视频清晰度越来越高的要求,F4原创 2017-07-02 17:21:37 · 2759 阅读 · 0 评论 -
H.264标准(一)MP4封装格式详解
MP4(MPEG-4 Part 14)是一种常见的多媒体容器格式,它是在“ISO/IEC 14496-14”标准文件中定义的,属于MPEG-4的一部分,是“ISO/IEC 14496-12(MPEG-4 Part 12 ISO base media file format)”标准中所定义的媒体格式的一种实现(在H.264标准文档约14章位置),后者定义了一种通用的媒体文件结构标准。MP4是一种描述较原创 2017-06-13 10:28:44 · 12000 阅读 · 3 评论 -
VS2015 编译问题记录(更新)
2017-03.31 记录错误 LNK1295 “/OPT:NOREF”与“/LTCG:incremental”规范不兼容;链接时不使用“/LTCG:incremental”链接器->优化然后又报如下错误:开始在命令行进行设置 /SAFESEH:NO 问题解决原创 2017-03-31 09:40:48 · 8308 阅读 · 3 评论 -
jni问题总结:jni error (app bug): accessed stale local reference
连续两个错误: jni error (app bug): accessed stale local reference 0xd0100019 (index 6 in a table of size 1)一、jclass直接赋值导致的问题。原因:不能直接引用jclass 解决方案:static jclass myClass;jclass cls = env->FindClass("com/xxx原创 2017-07-17 18:49:21 · 8412 阅读 · 0 评论 -
FFmpeg总结(十四)FFmpeg如何解析直播点播m3u8
看下直播m3u8结构:#EXTM3U原创 2017-07-19 13:39:33 · 11082 阅读 · 4 评论 -
VLC框架总结(一)VLC源码及各modules功能介绍
一般情况下,播放一个音视频分为4个步骤1、access访问2、demux解复杂3、decode解码4、output输出access:访问可以理解为接收、获取、得到数据资源,包括解析访问源(url), 使用http协议,rtsp协议,ftp协议,建立连接,获取数据。demux:解复用就是把通常合在一起的音频和视频分离,当然也有可能有字幕。通过分析数据包头来判断是什么数据文件,需要用什么解码原创 2017-09-07 23:54:57 · 11047 阅读 · 1 评论 -
C++11中移动语义(std::move)和完美转发(std::forward)
前言所有的手段都是为了解决已存在的问题。std::move和std::forward是C++11中的特性,是为了解决C++98/C++0x中遗留的问题,虽从理解上来看比较复杂,却是较好的解决手段。左值(lvalue)与右值(rvalue)左值与右值的概念其实在C++0x中就有了。概括的讲,凡是能够取地址的可以称之为左值,反之称之为右值,C++中并没有对左值和右值给出明确的定义,从其解决手段来看类似上原创 2017-09-26 17:24:55 · 8311 阅读 · 0 评论 -
C++11中内联函数(inline)
Agenda:为什么要用inlineinline使用时机原创 2017-10-15 11:14:16 · 2497 阅读 · 0 评论 -
FFmpeg总结(十三)用ffmpeg基于nginx实现直播功能,不用第三方SDK,自研推流拉流
请尊重分享成果,转载请注明出处,本文来自逆流的鱼yuiop,原文链接: http://blog.youkuaiyun.com/hejjunlin/article/details/71976574直播app实现流程1.采集2.滤镜处理3.编码4.推流5.CDN分发6.拉流7.解码8.播放9.聊天互动图像格式: public static final int DEPTH16 = 1144原创 2017-05-14 14:33:09 · 7941 阅读 · 5 评论 -
FFmpeg总结(十一)用ffmpeg进行转格式,Android下播放网络音频流
思路: 1、mp3转成pcm(音频数据),ffmpeg做的事 2、OpenSL ES引擎创建AudioPlayer,实际调用了AudioTrack遇到的错误: Error #include nested too deeply 原因:c文件互相引用 解决方案:1、将两个头文件共用的那一部分抽出来单独建一个头文件。2、加预处理#ifndef.. #define…#endifx86平台没有原创 2017-05-07 11:13:34 · 5990 阅读 · 1 评论 -
FFmpeg总结(五)AV系列结构体之AVCodec、AVCodecParameters、AVCodecParser、AVCodecParserContext、AVCodecDescriptor
AVCodec: 编解码器结构体 位于libavcodec/avcodec.h中typedef struct AVCodec { const char *name; // codec的名字,保持全局唯一,标识名 const char *long_name; // codec的名字,全名 enum AVMediaType type; // Media类型,是视频,音频,还是字幕原创 2017-04-12 10:53:32 · 11402 阅读 · 0 评论 -
FFmpeg总结(六)AV系列结构体之AVPacket
AVPacket位置:libavcodec/avcodec.h下:AVPacket:通常通过demuxer导出的data packet作为解码器的input data或是收到来自编码器的data packet,通过muxer进入输出的output data看如下图,更易理解: 对于视频来说,它通常应该包含一个压缩的帧,对于音频,可能包含多个压缩帧,允许编码器输出为空的packet,没有压缩数原创 2017-04-13 10:47:22 · 4845 阅读 · 0 评论 -
FFmpeg总结(七)AV系列结构体之AVIOContext
AVIOContext结构体位于libavformat/avio.h下:AVIOContext的描述:是字节流IO上下文, AVIOContext不能直接被函数指针调用,应当在应用程序实现自定义IO时,通常是通过avio_alloc_conext()函数进行设置函数指针。AVIOContext的成员变量:typedef struct AVIOContext { // 一个私有类选项原创 2017-04-18 10:11:40 · 3691 阅读 · 0 评论 -
FFmpeg总结(二)AV系列结构体之AVFrame
位于libavutil下frame.h文件中这个结构体用来描述解码出音视频数据。AVFrame必须使用av_frame_alloc分配()。AVFrame必须与av_frame_free释放()。AVFrame通常分配一次,然后重复使用多次,不同的数据(如一个AVFrame持有来自解码器的frames。)在再次使用时,av_frame_unref()将自由持有的任何之前的帧引用并重置它变成初原创 2017-04-01 11:32:39 · 19465 阅读 · 0 评论 -
FFmpeg总结(九)用ffmpeg进行切片生成m3u8索引文件
在直播和点播中,通常后台并不会直接给一个http://xxx.xxx.xxx.xxx/xxx.mp4这样的url给客户端,而是通过m3u8索引列表,给客户端。今天来通过ffmpeg进行切片生成m3u8索引文件。首先将视频文件转为视频编码h.264,音频编码aac格式的mp4文件 1、使用ffprobe查看文件编码方式 2、如果不是mp4的,可以用如下命令进行转ffmpeg -i input.原创 2017-04-30 11:22:05 · 32069 阅读 · 8 评论 -
FFmpeg总结(三)AV系列结构体之AVCodecContext
位置: libavcodec/avcodec.h描述:主要扩展API的结构体New fields can be added to the end with minor version bumps.原创 2017-04-06 10:26:41 · 5710 阅读 · 0 评论 -
Windows下编译FFmpeg
MinGW:配置path:gcc测试:入口:下载yasm:直接拷贝到System32,当然你也可以放到MinGw/bin下,都没关系:用ffmpeg-3.1.3,之前用linux编译,mac编译,都是这个版本。通过./configure脚本 生成make文件:开行执行如下命令:这里会报一个warning的错:pkg-config not found, library detection may fa原创 2017-04-15 00:27:41 · 2391 阅读 · 2 评论 -
FFmpeg总结(四)AV系列结构体之AVBuffer、AVBufferRef、AVBufferPool
位置:libavutil/buffer.h AVBuffer采用引用计数的数据Buffer的API。有两个核心对象这个API——AVBuffer和AVBufferRef。AVBuffer代表数据缓冲区本身,它是私有的,不能直接被调用者调用。我们可以通过AVBufferRef,调用者须要检查两个AVBuffer指针是否指向两个不同的引用在同一数据buffer中。AVBufferRef 代原创 2017-04-06 19:26:44 · 7330 阅读 · 0 评论 -
FFmpeg总结(十)用ffmpeg进行在视频中加水印图、加gif图
centos下编译ffmpeg,mac,windows,linux都编译过了,最复杂是windows,当然会了,也不复杂。原创 2017-05-02 21:12:45 · 11405 阅读 · 2 评论 -
FFmpeg总结(一)FFmpeg官方文档分块
正式开启FFmpeg总结,预计这个将是一个2-3年的时间线,今天是从官方文档出发,找到最小块的切入点。原创 2017-03-30 11:20:29 · 4496 阅读 · 2 评论 -
FFmpeg总结(十二)用ffmpeg与nginx实现直播多路流并发播放
下载 nginx 和 nginx-rtmp源码: http://nginx.org/download/nginx-1.5.10.tar.gz https://github.com/arut/nginx-rtmp-module/archive/master.zip编译安装: cd nginx-1.5.10 ./configure –with-http_ssl_module –add-modul原创 2017-05-07 16:21:10 · 36190 阅读 · 17 评论 -
如何编译并使用x264库
x264是性能最好的H.264/AVC编码器,基于GNU GPL协议。FFmpeg可以使用x264作为编码库,能够提高编码性能。准备环境linux下载ffmpeg源码: http://www.ffmpeg.org/download.html下载x264源码: git://git.videolan.org/x264.git下载linux版ndk: http://developer.and...原创 2018-10-09 11:07:43 · 4916 阅读 · 0 评论