您现在的位置是:首页» windows系统» ffmpeg开发视频播放器,FFmpeg开发调试工具

ffmpeg开发视频播放器,FFmpeg开发调试工具

2024-07-13 02:20:04
本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。 上一篇 我们在Visual Studio上搭建好了FFmpeg4的环境,本篇文章我们来学习FFmpeg的视频解封装。文

本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。

上一篇 我们在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简单使用:解封装 ---- 基本流程》

XTw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。

免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!

联系邮箱:773537036@qq.com

标签: 解封 开发 FFmpeg