FFMpeg数据流处理 抽取音视频流

本文介绍了FFMpeg数据流处理的基本概念,包括多媒体文件中的流容器、重要结构体如AVFormatContext、AVStream和AVPacket。详细阐述了操作流的基本步骤:解复用、获取流、读取数据包和释放资源。实战部分展示了如何使用FFMpeg打印音频的Meta信息以及如何抽取音频数据。
摘要由CSDN通过智能技术生成

FFMpeg数据流处理

1.基本概念

(1)多媒体文件里面其实是流的容器
(2)流有很多种比如,stream/track…但是各路流互不影响
(3)每种流是由不同的编码器编码的
(4)从流中解码出的数据称为包
(5)在一个包中包含着一个或者多个帧

2.重要结构体

(1)AVFormatContext 上下文,连接多个api的桥梁
(2)AVStream 通过AVStream可以获取各种包
(3)AVPacket 包中包含的就是数据帧

3.操作流的基本步骤

(1)【解复用】-【获取流】-【读取数据包】-【释放资源】

4.(实战)FFMpeg打印音频的Meta信息

(1)API

av_register_all();
 AVFormatContext avformat_open_input();
 avformat_close_input(AVFormatContext  *);
 av_dump_format(); 
 av_err2str(ret);

(2)代码

void handleMedia(){
   
	AVFormatContext* fmt_ctx = NULL; 
	int ret;
	av_register_all();
	//打开多媒体文件
	ret = avformat_open_input(&fmt_ctx,
	"./test.mp4",
	/*输入文件格式,比如mp4*/NULL,
	/*通过命令行传入的参数,一般不用*/NULL);
	if(ret < 0){
   
		av_log(NULL,AV_LOG_ERROR,"Can't open file,%s\n",av_err2str(ret));
	}else{
   
		av_dump_format(fmt_ctx
			,/*s索引值,一般是0*/0
			,/*文件路径*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值