学习的第一个FFmpeg-demo---解封装且解码视频后存储为yuv和h.264文件

本文记录了作者在大四保研期间使用FFmpeg进行视频解封装和解码的学习过程,特别是将10bit的AVI视频转换为YUV和H.264格式的实践经历,同时提到了在项目中遇到的挑战和雷博士的ffmpeg研究对其的启发。
摘要由CSDN通过智能技术生成

在大四保研时,接到了一个任务,从最底层书写AVI格式的解封装,并提取YUV数据,再由公式计算对应值。

依稀记得那是一个10bit的avi超大视频,编码是m102和另一个种(保密),因为是从底层写起,所以并没有想太多,就用最基本的的c语言一句一句完成,后来还遇到很多Bug.

听雷博士(http://blog.csdn.net/leixiaohua1020)介绍了关于他关于ffmpeg的研究后,打算尝试着玩玩ffmpeg这个东东。以下代码是来之雷博士小学期课程的公开代码。我对其作了部分注释,如有错误,请指出~


#include <stdio.h>

#define __STDC_CONSTANT_MACROS

extern "C"  //由于ffmpeng是c为底层语言,所以c++调用时,需要去掉函数类型
{
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libswscale/swscale.h"
};


int main(int argc, char* argv[])
{
	AVFormatContext	*pFormatCtx;//视频格式内容,最大的一个结构体
	int i, videoindex;
	AVCodecContext	*pCodecCtx;//解码器上下文
	AVCodec	*pCodec;//解码器
	AVFrame	*pFrame,*pFrameYUV;//一帧画面
	uint8_t *out_buffer;
	AVPacket *packet;//h.264由多个packet包组成
	int y_size;
	int ret, got_picture;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值