ffmpeg
文章平均质量分 87
面海烹鲜
000001XX
展开
-
[学习笔记]基于ffmpeg的视频解码,输出YUV图像到文件。
虽然在音视频领域工作了一段时间,但是对于ffmpeg还是比较陌生,从这周开始入手学习。拜读了雷霄骅的《最简单的基于FFMPEG+SDL的视频播放器 ver2》,受益匪浅,链接如下http://blog.csdn.net/leixiaohua1020/article/details/38868499采用文中的方法,利用ffmpeg的库对视频进行解码,在这里把步原创 2015-11-06 14:49:50 · 4682 阅读 · 0 评论 -
视频解码研究之PTS(2)Mp4格式,AVI格式和MKV格式
关于其他格式的PTS请看:视频解码研究之PTS(1)TS格式和FLV格式3.MP4格式Mp4格式中涉及到PTS信息的atom包括:stts,ctts和elst。先说stts,格式如下:存储着一系列的参数对(sample_count, sample_time_delta)。每一个参数对给出了具相同时间间隔的连续的sample的个数和这些sample的时间间原创 2015-12-20 10:44:26 · 11373 阅读 · 0 评论 -
视频解码研究之PTS(1)TS格式和FLV格式
今天来讨论下PTS,这片东西涉及的方面比较多,许多结论我也是从大胆推测的,有什么不对的,希望大家帮我指出来。PTS是presentation time stamp的缩写,简单说就是播放时间戳。ffmpeg中音视频的同步是通过PTS完成的,而PTS是怎样从码流中解析出来的呢?其实不同的多媒体文件格式有不同获取方式。1.TS流的PTS:这可以说是PTS的出处。PTS是在mpeg-1,2原创 2015-12-08 14:18:47 · 20773 阅读 · 5 评论 -
多年前写的解复用应用程序demuxbox
很多年以前写的代码了,一个小程序实现了对Avi和mp4格式文件的解复用,将视频流和音频流从格式文件中分离出来。没有使用ffmpeg的库,所有底层的功能都是一行行用手码出来的,这种方法十分的不可取。但是通过这些代码可以清楚的了解avi和mp4文件的结构以及解复用的原理。原创 2016-11-21 16:36:47 · 723 阅读 · 0 评论 -
HEVC的环路滤波(2)
2.3 边界滤波2.3.1 概述 VOR方向 亮度块滤波步骤: 1 变量nD等于1 2 xDk等于k 0时。 2.1 进行2.5.3的步骤,得到决定dE, dEp, and dEq,和变量β和 tC 2.2 进行2.5.4的步骤,得到滤波图像recPictureL原创 2016-09-08 11:12:27 · 2380 阅读 · 0 评论 -
ffmpeg的HEVC解码源代码分析(一)整体框架
通过调试ffmpeg对HEVC码流(格式为es流,就是rawvideo)的解码过程,分析ffmpeg的HEVC解码过程和实现方法。首先要说的是调试所用的工程的config为:./configure –disable-asm –disable-pthreads –enable-debug –disable-optimizations进行configure。禁用了pthread,所以涉及到pt原创 2015-12-02 09:53:19 · 3451 阅读 · 0 评论 -
ffmpeg重要结构体之HEVCContext和HEVCFrame
HEVCContext和HEVCFrame是ffmpeg的HEVC解码中非常重要的结构体。首先来看下HEVCContext,定义位于libavcodec\Hevc.h中。代码如下:typedef struct HEVCContext { const AVClass *c; // needed by private avoptions AVCodecContext *a原创 2015-11-25 10:50:15 · 1706 阅读 · 0 评论 -
Linux环境下,用eclipse对ffmpeg源代码进行调试
Linux环境下,用eclipse对ffmpeg源代码进行调试。1.从官网(ffmpeg.org)上下载ffmpeg的源码。2. 解压代码压缩包。3. 个人的系统和配置都不相同,但要用eclipse编译和调试ffmpeg,有几点必须满足:a.GNU Make 必须为3.81版本或者更高版本,否则在编译过程中会导致不可预知的错误,并且错误提示不一定告知是因为GNU Make的原创 2015-11-20 15:54:11 · 1236 阅读 · 0 评论 -
ffmpeg重要结构体之AVIOContext
AVIOContext是有关输入输出数据的结构体,其定义位于文件libavformat\avio.h中。在结构体AVFormatCtx中有AVIOContext类型的成员。定义代码如下:typedef struct AVIOContext { /** * A class for private options. * * If this AVIOCo原创 2015-11-13 09:38:32 · 1537 阅读 · 0 评论 -
ffmpeg重要结构体之AVCodec
AVCodec结构体是有关codec的结构体。在文件"libavcodec/avcodec.h" 中。typedef struct AVCodec { /** * Name of the codec implementation. * The name is globally unique among encoders and among decoders (but原创 2015-11-12 17:18:06 · 1466 阅读 · 0 评论 -
ffmpeg重要结构体之AVStream
AVStream结构体存储有关流(视频流或者音频流)的信息。此定义位于libavformat/avformat.h中。typedef struct AVStream { int index; /**< stream index in AVFormatContext */ /** * Format-specific stream ID. * decodi原创 2015-11-13 14:56:40 · 1733 阅读 · 0 评论 -
ffmpeg重要结构体之AVCodecContext
结构体AVCodecContext位于文件libavcodec/avcodec.h中,是有关编解码的结构体。typedef struct AVCodecContext { /** * information on struct for av_log * - set by avcodec_alloc_context3 */ const AVClass原创 2015-11-12 16:29:03 · 4573 阅读 · 0 评论 -
ffmpeg重要结构体之AVFrame
通过对FFmpeg的基本了解,并利用其库文件,输出YUV图像到文件。(见连接 [学习笔记]基于ffmpeg的视频解码,输出YUV图像到文件),我们知道解码后的图像(YUV)数据是存放在AVFrame结构体中的。今天我们就来了解下结构体AVFrame,这个结构体的定义位于文件libavutil/frame.h中。以下是代码:typedef struct AVFrame {#define原创 2015-11-12 10:51:53 · 6495 阅读 · 3 评论 -
ffmpeg重要结构体之AVPacket
AVPacket是ffmpeg中有关格式信息的结构体,在文件libavcodec/avcodec.h中。typedef struct AVPacket { /** * A reference to the reference-counted buffer where the packet data is * stored. * May be NULL, t原创 2015-11-13 16:03:14 · 1869 阅读 · 0 评论 -
ffmpeg重要结构体之AVFormatContext
结构体AVFormatContext位于文件libavformat/avformat.h中。是有关文件格式的结构体。typedef struct AVFormatContext { /** * A class for logging and @ref avoptions. Set by avformat_alloc_context(). * Exports (de)原创 2015-11-12 15:07:32 · 2067 阅读 · 0 评论 -
HEVC有关量化参数Qp的计算
量化参数,简称QP,是解码中反量化过程中最重要的参数,我觉得HEVC解码的中Qp的计算有那一点复杂,标准有那么一点晦涩,这里来一起探讨下。1.参数PPS中关于Qp的参数:init_qp_minus26:加上26表示初始Qp,范围[-26,25]。cu_qp_delta_enabled_flag:1表示语法元素diff_cu_qp_delta_depth(PPS中)存原创 2017-02-28 10:18:55 · 11228 阅读 · 0 评论