FFmpeg
文章平均质量分 68
RunningZyx
从事音视频编解码开发, 擅长技术: C/C++、boost、ffmpeg, vlc, live555, h264,h265, MP4,AAC, RTSP,RTP
展开
-
FFmpeg简介
.FFmpeg:著名的音视频处理开源工具.功能:音视频等编码,解码,转码,音视频采集,后处理(抓图,水印,封装/解封装,格式转换等),流媒体处理等,涵盖多媒体技术开发中的绝大多数领域。.开发环境:Linux平台,C语言开发.官方网址:https://ffmpeg.org/2.FFmpeg组成.组成整个FFmpeg工程的共有3个部分.第一部分:四个作用不同的工具软件原创 2016-09-08 21:45:17 · 714 阅读 · 0 评论 -
使用FFmpeg库实现视频解码
视频解码。视频解码是视频处理的一项操作之一,是播放,分析内容等后续工作的基础。视频解码是编码的逆过程,将视频由压缩域的码流解码为像素域的图像信号。视频解码的实际实现由针对不同编码格式的解码器实现,每种解码器可以针对某一种特定标准格式的视频进行解码FFmpeg视频解码的主要步骤。解析输入参数----获取待解码的码流数据。初始化相应的FFmpeg结构。循环读取并解析原创 2016-09-18 23:41:42 · 2772 阅读 · 0 评论 -
使用FFmpeg库实现视频编码
1.FFmpeg进行视频编解码所需要的结构.AVCodec :AVCodec结构保存了一个编解码器的实例,实现实际的编码功能。通常我们在程序中定义一个指向AVCodec 结构的指针指向该实例。.AVCodecContext :AVCodecContext表示AVCodec所代表的上下文信息,保存了AVCodec所需要的一些参数。对于实现原创 2016-09-08 23:02:43 · 856 阅读 · 0 评论 -
学习FFmpeg API -解码视频
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[-]Tutorial 1 Decoding video frames视频播放过程声明变量打开文件分配图像缓存获取图像ffmpeg是编解码的利器,用了很久,以前看过dranger 的教程,非常精彩,受益颇多,是学习ffmpeg api很好的材料。可惜的是其针对的转载 2016-09-16 09:26:06 · 815 阅读 · 0 评论 -
av_read_frame
ffmpeg中的av_read_frame()的作用是读取码流中的音频若干帧或者视频一帧。例如,解码视频的时候,每解码一个视频帧,需要先调 用 av_read_frame()获得一帧视频的压缩数据,然后才能对该数据进行解码(例如H.264中一帧压缩数据通常对应一个NAL)。对该函数源代码的分析是很久之前做的了,现在翻出来,用博客记录一下。上代码之前,先参考了其他人对av_read_转载 2016-09-14 16:17:16 · 2316 阅读 · 0 评论 -
ffmpeg的对象架构简析——解复用器
看这篇文章你需要对ffmpeg已经有一定的使用经验,知道如何read帧,解帧,或者write等。ffmpeg内部使用跑结构体表函数指针的方式,实现了类似C++的多态性,,我们来简析一下。【注册表】我们使用ffmpeg,首先要执行av_register_all,这个玩意儿把全局的解码器、编码器等结构体注册到一些全局的对象表里,以便后面跑表调用。注册的类型有:解复用器、重复用器、解转载 2016-09-14 15:26:21 · 633 阅读 · 0 评论 -
FFmpeg的解码过程总结
对FFmpeg的解码过程再做一个总结。本文的总结分为以下两个部分:数据读取,主要关注在解码过程中所用到的FFmpeg中的结构体。解码过程中所调用的函数在学习的过程主要参考的是dranger tutorial,所以跟着教程在本文的最后使用SDL2.0将解码后的数据输出到屏幕上。数据的读取一个多媒体文件包含有多个流(视频流 video stream,音频流 audi转载 2016-09-14 14:19:43 · 1669 阅读 · 0 评论 -
FFMPEG的重要的结构体
1. FFMPEG中最关键的结构体之间的关系FFMPEG中结构体很多。最关键的结构体可以分成以下几类:a) 解协议(http,rtsp,rtmp,mms)AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议的类型以及状态。URLProtocol存储输入视音频使用的封装格式。每种协议都对应一个URLProtoc转载 2016-09-13 16:51:35 · 2566 阅读 · 0 评论 -
FLV封装格式分析器
转载地址:http://blog.csdn.net/leixiaohua1020/article/details/17934487FLV封装原理FLV格式的封装原理,贴上来辅助学习之用。FLV(Flash Video)是Adobe公司设计开发的一种流行的流媒体格式,由于其视频文件体积轻巧、封装简单等特点,使其很适合在互联网上进行应用。此外,FLV转载 2016-09-13 14:16:25 · 319 阅读 · 0 评论 -
AAC 文件解析及解码流程
OUTLINE: * AAC概述 * AAC规格简述 * AAC特点 * AAC音频文件解析 ——ADIF&ADTS格式 ——ADIF&ADTS头信息 ——ADIF&ADTS数据信息 ——AAC文件处理流程转载 2016-09-13 13:34:38 · 3076 阅读 · 0 评论 -
Windows下使用Visual Studio 2010编译ffmpeg全过程
ffmpeg是一个开源的多媒体库,使用非常广泛。在linux下编译ffmpeg非常简单,而在windows下编译就不是那么容易了。一般在windows下使用MinGW的gcc toolchain进行编译,这样的话,因为ffmpeg的导出函数均是C风格,因而gcc编译的lib可以被vs链接。但是gcc的debug符号与vs的debug符号(*.pdb)是无法兼容的,因此我们用vs来开发基于f转载 2016-09-10 15:14:24 · 2582 阅读 · 0 评论 -
AVFormatContext结构体
在使用FFMPEG进行开发的时候,AVFormatContext是一个贯穿始终的数据结构,很多函数都要用到它作为参数。它是FFMPEG解封装(flv,mp4,rmvb,avi)功能的结构体。下面看几个主要变量的作用(在这里考虑解码的情况):struct AVInputFormat *iformat:输入数据的封装格式AVIOContext *pb:输入数据的缓存转载 2016-09-09 09:58:12 · 423 阅读 · 0 评论 -
FFmpeg的解复用器
看这篇文章你需要对ffmpeg已经有一定的使用经验,知道如何read帧,解帧,或者write等。ffmpeg内部使用跑结构体表函数指针的方式,实现了类似C++的多态性,,我们来简析一下。【注册表】我们使用ffmpeg,首先要执行av_register_all,这个玩意儿把全局的解码器、编码器等结构体注册到一些全局的对象表里,以便后面跑表调用。注册的类型有:解复用器、重复用器、解转载 2016-09-09 08:28:52 · 1477 阅读 · 0 评论 -
视频文件的解封装
视频的封装。音视频文件 = (音频流+视频流)*同步信息。实现方式:音频信号和视频信号通过某种标准格式进行服用,生成封装格式。封装格式:文件扩展名-------.mp4/.avi/.flv/.mkv等封装的视频文件的处理。在底层,只能解析纯视频或者音频数据,不能直接处理封装的文件。如果要实现视频文件的播放,所以想将封装的视频文件分离为音频,视频和字幕等其他辅助信息等原创 2016-09-19 23:12:02 · 3982 阅读 · 0 评论