使用FFmpeg4.2.1解码H264为YUV420P(C++代码)

本文介绍了如何使用最新版FFmpeg-4.2.1在Windows环境下,利用C++将H264视频文件解码为YUV420P格式。内容包括FFmpeg官网链接、Windows VS2013编译环境配置步骤,以及详细的C++解码代码示例。同时,提供了VS工程的下载链接以供直接编译和运行。
摘要由CSDN通过智能技术生成

概要

  1. 使用的是截止目前最新的ffmpeg-4.2.1版本,接口使用的也都是最新的,废弃的接口本次不涉及。本次主要记录读取H264文件,解码成YUV420P格式。
  2. PS:整理这篇文章晚了几天,刚下载该版本时还没有发布4.2.2版本,2019-12-31刚发布了4.2.2的版本,只是小版本号发生了变化,API接口原型不会有变化,理论上也是适用4.2.2版本的。
  3. 本次讲解的是windows C++版本的代码示例,由于时间关系暂不整理Linux版本的,后续会移植到Linux上面。

FFmpeg官网

  • 官网: http://ffmpeg.org/
  1. 官网源码:http://ffmpeg.org/download.html#get-sources
  2. 官网提供windows的开发版本:https://ffmpeg.zeranoe.com/builds/
  3. 官网提供Linux的开发版本:https://johnvansickle.com/ffmpeg/

windows vs2013 编译环境配置

  • 获取官网提供windows的开发版本和运行版本,当然也可以自己编译
  1. ffmpeg-20191224-287620f-win64-dev.zip 是编译时依赖的库和头文件,解压到当前的工程目录下,命名为ffmpeg-win64-dev
  2. ffmpeg-20191224-287620f-win64-shared.zip 是运行时依赖的库,解压其中的动态库供运行时使用
  • 配置vs字符集为多字符集(当时用的环境)
  • 配置C++包含目录:$(ProjectDir)ffmpeg-win64-dev\include
  • 配置预处理:_CRT_SECURE_NO_WARNINGS
  • 配置连接器的附加依赖项及库目录
avcodec.lib
avdevice.lib
avfilter.lib
avformat.lib
avutil.lib
postproc.lib
swresample.lib
swscale.lib
  • 配置连接器的附加库目录: $(ProjectDir)ffmpeg-win64-dev\lib
  • 将vs工程配置成x64工程:配置管理器->Release->x64->平台->新建->x64->复制从win32

C++ 代码如下

// DecH264ToYuv420.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include "stdlib.h"
#include <string.h>
#include <math.h>
#include <chrono> //C++11时间类标准模板库
#include <fstream>

using namespace std;

extern "C"{
#include "libavformat/avformat.h"
#include "libavcodec/avcodec.h"
#include "
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值