U盘PE| w764位旗舰版下载 | U盘装win7系统 | U盘启动 |win7pe | win10下载 |加入收藏土豆PE官网U盘PE,U盘装win7系统,win7pe,U盘启动,U盘装系统,w764位旗舰版下载站!
当前位置:主页 > 帮助中心 > 土豆PE使用教程 >

FFmpeg Visual Studio开发(二):视频解封装

来源:http://www.tudoupe.com时间:2022-02-10

上一篇 我们在Visual Studio上搭建好了FFmpeg4的环境,本篇文章我们来学习FFmpeg的视频解封装。文章会把程序分成几段来讲解,最后会贴出完整代码。

准备工作

首先创建一个新的控制台工程,把FFmpeg的库配置好,不熟悉的朋友可以看看 上一篇 文章。接着跑一下测试程序看看配置是否成功。

打印了配置信息,说明目前是没有问题的了。(只能说是目前…)
在这里插入图片描述
解封装的过程很简单:打开文件 -> 读取流信息 -> 获取视频流 -> 循环解析帧数据。

打开文件

首先,我们需要打开一个视频文件。方式很简单,输入文件绝对路径(比如:C://WorkZone//Res//video.mp4),把它打开。如果打开失败,则退出程序。

AVFormatContext 结构体包含了流、格式、文件等相关的信息。

avformat_open_input 函数会创建一个 AVFormatContext 实例,并把文件信息写进去。这个函数要和avformat_close_input 函数成对使用,当不再使用 AVFormatContext 实例时,就要调用 avformat_close_input 释放内存。

读取流信息

成功读取文件信息后,再把流信息读入 AVFormatContext 实例。同样的,读取失败时需要释放AVFormatContext 实例的内存。

获取视频流

此时 AVFormatContext 中已经有流的相关信息了,它可能有视频流信息、可能有音频流信息、也可能都有。FFmpeg是通过下标来判断是否有视频流或音频流的。

获取封装帧

AVPacket 结构体用于装载音频帧或视频帧。上面提到FFmpeg是通过下标来判断音频和视频的,因此AVPacket装载的帧类型就用下标来判断(videoIndex)。

注意这个while循环,程序就是在这里读取每一帧的数据的。得到了帧数据后还可以进行解码、转码等操作。本程序仅仅是打印了前10个视频帧的信息。

完整程序

最后

本篇文章讲述如何通过FFmpeg解封装视频。

参考文章

《FFmpeg简单使用:解封装 ---- 基本流程》

Copyright © 2012-2014 Www.tudoupe.Com. 土豆启动 版权所有 意见建议:tdsky@tudoupe.com

土豆系统,土豆PE,win7系统下载,win7 64位旗舰版下载,u盘启动,u盘装系统,win10下载,win10正式版下载,win10 RTM正式版下载,win8下载,电脑蓝屏,IE11修复,网络受限,4K对齐,双系统,隐藏分区,系统安装不了,U盘装系统,笔记本装系统,台式机装系统,diskgenius运用,GHSOT装系统,U盘修复,U盘技巧,U盘速度,U盘不能格式化,U盘复制发生错误,U盘加密,U盘选购,开机黑屏,蓝屏,进不了系统,上不了网,打不开程序,点击无反应,系统设置,PE个性化,PE添加网络,PE维护系统

点击这里给我发消息