FFmpeg QT 实现h264、h265 音视频播放(Native方式)

本文介绍了FFmpeg 4.0在Ubuntu 18.04环境下,结合Qt 5.12实现h264、h265音视频播放的Native方式。内容涵盖音视频格式(如AVI、MP4、MKV等),FFmpeg解码流程,视频解码至YUV,音频解码至PCM并进行重采样,以及视频显示和音频播放的细节。文章最后提供了代码链接。
摘要由CSDN通过智能技术生成

前言

FFmpeg 3.0 以后统一了音视频的编码方式,原有的API已经标记为弃用 或者已经被删除

测试环境: FFmpeg 4.0 Qt 5.12 Ubuntu 18.04

音视频格式

封装格式

常见的视频格式有AVI、MPEG、QuickTime、Flash、Mpeg-4、MKV、WebM,不同的格式有不同的特点

AVI: AVI视频格式,文件名以“.avi”结尾。AVI是英文Audio Video Interleave的缩写,该格式由微软开发。在所有Windows系统都能运行这种格式

MPEG: MPEG是英文Moving Pictures Expert Group的缩写。MPEG是跨平台的视频格式,基本上在所有浏览器上都能正常播放

QuickTime: 文件名以“.mov”结尾。该视频格式是由苹果公司开发出来的

MPEG-4: 文件名以“.mp4”结尾,是比较流行的一种视频格式,现在主流平台都支持该格式。Flash播放器、HTML5网站都能正常播放该视频格式视频

Flash: 文件名以“.swf”或“.flv”结尾。之前一般用在网页上使用Flash进行播放。 现在可以使用开源解码器播放, 用在网络直播上

MKV: 开放标准的自由的容器和文件格式, 能够在一个文件中容纳无限数量的视频、音频、图片或字幕轨道
WebM: 由Google提出,是一个开放、免费的媒体文件格式, 以MKV格式为基础

视频编码格式

常见视频编码格式 MEPG系列、H.26x系列、VP8、VP9

MPEG系列: MPEG1(VCD 用的就是它)、MPEG2(DVD 使用)、MPEG4。由 ISO [国际标准组织机构]下属的 MPEG [运动图象专家组]开发

H.26x: 包括 H261、H262、H263、H263+、H263++、H264 H265(HEVC)。 由 ITU [国际电传视讯联盟]主导,侧重网络传输

VP8/9: 由Google主导为了解决H264等专利问题,免费使用

音频编码格式

常见的音频编码格式PCM、MP3、ACC、OGG

PCM: PCM音频数据 PCM(Pulse Code Modulation)也被称为脉冲编码调制, 将模拟音频变成数字音频
MP3: 拥有极高的压缩比,现在比较流行的音频编码格式,但是存在专利费用
ACC: 高级音频编码技术,Advanced Audio Coding, 为了替代MP3格式而产生的、有着较高的压缩比和质量,已经逐渐成为主流
OGG: 完全免费、开放和没有专利限制编码格式,该格式可以在不更改播放器的情况下,优化格式来提高音频质量

FFmpeg 解码流程

avformat_open_input
avcodec_find_decoder
av_read_frame
avcodec_send_packet
avcodec_receive_frame
sws_scale/swr_convert_frame
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值