【专题2:qt工程师】 之 【41.ffmpeg介绍】

  笔者在嵌入式领域深耕6年,对嵌入式项目构建,BLDC电机控制,产品上位机开发以及产品量产和产品售后维护有多年工作经验。经验分享,从0到1, 让我带你从实际工作的角度走进嵌入式成长之路。

  原创不易欢迎大家关注我的微信公众号嵌入式工程师成长之路扫下面二维码
                     在这里插入图片描述
所有文章总目录:【电子工程师 qt工程师】

原创视频总目录:【电子工程师 qt工程师】

1.概述

  FFMPEG的视音频编解码功能确实太强大了,几乎囊括了现存所有的视音频编码标准,因此只要做视音频开发,几乎离不开它。主要用FFmpeg来做解码,编码一般使用硬编码。

(1)使用FFMPEG作为内核视频播放器:
Mplayer,ffplay,射手播放器,暴风影音,KMPlayer,QQ影音…

(2)使用FFMPEG作为内核的Directshow Filter:
ffdshow,lav filters…

(3)使用FFMPEG作为内核的转码工具:
ffmpeg,格式工厂…

2.FFmpeg一共包含8个库:

  • avcodec:编解码(最重要的库)。
  • avformat:封装格式处理。
  • avfilter:滤镜特效处理。avdevice:各种设备的输入输出。
  • avutil:工具库(大部分库都需要这个库的支持)。
  • postproc:后加工。
  • swresample:音频采样数据格式转换。
  • swscale:视频像素数据格式转换。

3.FFmpeg解码流程图

【专题2:qt工程师】 之 【41.ffmpeg介绍】_第1张图片

  • av_register_all():注册所有组件。
  • avformat_open_input():打开输入视频文件。
  • avformat_find_stream_info():获取视频文件信息。
  • avcodec_find_decoder():查找解码器。
  • avcodec_open2():打开解码器。
  • av_read_frame():从输入文件读取一帧压缩数据。
  • avcodec_decode_video2():解码一帧压缩数据。
  • avcodec_close():关闭解码器。
  • avformat_close_input():关闭输入视频文件。

你可能感兴趣的:(专题2:qt工程师)