FFmpeg的认识及学习

安装

http://ffmpeg.org/
官方下载以及介绍
在这里插入图片描述
https://ffmpeg.org/doxygen/trunk/examples.html
官方文档的链接,可以进行随时查看

视频解码器(FFmpeg)
H.264->YUV
视频显示(SDL)
实现YUV->电脑屏幕
视频播放器(FFmpeg+SDL)
实现H.264->YUV->电脑屏幕

视频编码数据

视频编码的作用:将视频像素数据(RGB,YUV)压缩成为视频码流,从而降低视频的数据量

H.264的格式简介

数据由大小不固定的NALU构成
最常见的情况下,1个NALU存储了一帧画面的压缩编码后的数据

H.264压缩方法

比较复杂,包含了帧内预测,帧间预测,环路滤波等环节构成
可以将图像数据压缩100倍以上

音频编码数据

音频编码的作用

将音频采样数据压缩成为音频码流,从而降低音频的数据流

视频像素数据

YUV格式:Y只包含亮度值,而UV只包含色度信息
YUV420p首先存储了整张图像的Y信息,然后存储了整张图像的U信息
最后存储了整张图像的V信息

注:新版本下的代码和雷神的代码有所不同,由于,新版本下将编码和解码进行了分离

AVFormatContext数据结构下有AVStream,但是AVStream数据结构下没有AVCodecContext

解码的一些过程

在这里插入图片描述

解码后的数据存储在这些数组中
frame_yuv->data[0] //y
frame_yuv->data[1] //u
frame_yuv->data[2] //v
frame_yuv->linesize[0] //y宽度
frame_yuv->linesize[1] //u宽度
frame_yuv->linesize[2] //v宽度



YUV420的存储
第i需要偏移i*frame_yuv->linesize[0] ,起始地址就是frame_yuv->data[0]+i*frame_yuv->linesize[0] 
而UV分量的高度是其一半

利用OPenCV来播放ffmpeg解码后的YUV文件

此内容借鉴了下面博主的内容
此博主的博客连接,点击进入
https://blog.csdn.net/weixin_45774698/article/details/123965078?spm=1001.2014.3001.5502

SDL的API文档的查看

https://wiki.libsdl.org/SDL2/APIByCategory#Basics

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值