FFmpeg编解码处理1-转码全流程简介

本文介绍了FFmpeg的音视频转码全流程,包括解复用、解码、滤镜、编码和复用等步骤。重点讨论了转码中的时间戳处理,并提供了转码例程的简单概述,涉及视频转码、音频转码及其时间戳转换。此外,还提到了如何编译和验证转码程序。
摘要由CSDN通过智能技术生成

FFmpeg编解码处理系列笔记: [0]. FFmpeg时间戳详解 [1]. FFmpeg编解码处理1-转码全流程简介 [2]. FFmpeg编解码处理2-编解码API详解 [3]. FFmpeg编解码处理3-视频编码 [4]. FFmpeg编解码处理4-音频编码

基于 FFmpeg 4.1 版本。

1. 转码全流程简介

看一下 FFmpeg 常规处理流程:

大流程可以划分为输入、输出、转码、播放四大块。其中转码涉及比较多的处理环节,从图中可以看出,转码功能在整个功能图中占比很大。转码的核心功能在解码和编码两个部分,但在一个可用的示例程序中,编码解码与输入输出是难以分割的。解复用器为解码器提供输入,解码器会输出原始帧,对原始帧可进行各种复杂的滤镜处理,滤镜处理后的帧经编码器生成编码帧,多路流的编码帧经复用器输出到输出文件。

1.1 解复用

从输入文件中读取编码帧,判断流类型,根据流类型将编码帧送入视频解码器或音频解码器。

av_read_frame(ictx.fmt_ctx, &ipacket);
if (codec_type == AVMEDIA_TYPE_VIDEO) {
    transcode_video(&stream, &ipacket);
} else if (codec_type == AVMEDIA_TYPE_AUDIO) {
    transcode_audio(&stream, &ipacket);
}
else {
    av_interleaved_write_frame(octx.fmt_ctx, &ipacket);
}

1.2 解码

将视音频编码帧解码生成原始帧。后文详述。

1.3 滤镜

FFmpeg 提供多种多样的滤镜,用来处理原始帧数据。

本例中,为每个音频流/视频流使用空滤镜,即滤镜图中将 buffer 滤镜和 buffersink 滤镜直接相连。目的是:通过视频 buffersink 滤镜将视频流输出像素格式转换为编码器采用的像素格式;通过音频 abuffersink 滤镜将音频流输出声道布局转换为编码器采用的声道布局。为下一步的编码操作作好准备。如果不使用这种方法,则需要处理图像格式转换和音频重采样,从而确保进入编码器的帧是编码器支持的格式。

当然,例程可扩展,可以很容易的在 buffer 滤镜和 buffersink 滤镜中间插入其他功能滤镜,实现丰富的视音频处理功能。

滤镜的使用方法不是本实验关注的重点。详

敬告:该系列的课程在抓紧录制更新中,敬请大家关注。敬告:本课程项目仅供学习参考,请不要直接商用,概不负责任何法律责任。 该系列的课程涉及:FFmpeg,WebRTC,SRS,Nginx,Darwin,Live555,等。包括:音视频、流媒体、直播、Android、视频监控28181、等。 我将带领大家一起来学习使用FFmpeg开发视频监控项目,并动手操练。具体内容包括: 一、视频监控的架构和流程二、FFmpeg4.3+SDL2+Qt5开发环境的搭建三、FFmpeg的SDK编程回顾总结并操练四、SDL2.0的编程回顾总结并操练五、颜色空间转换RGB和YUV的原理与实战六、Qt5+FFmpeg本地摄像头采集预览实战七、代码封装:摄像头h264/5编码并存储八、Qt5+FFmpeg单路网络摄像头采集预览九、Qt5+FFmpeg单路网络摄像头采集预览录制会看十、onvif与GB/T-28181的简介  音视频与流媒体是一门很复杂的技术,涉及的概念、原理、理论非常多,很多初学者不学 基础理论,而是直接做项目,往往会看到c/c++的代码时一头雾水,不知道代码到底是什么意思,这是为什么呢?   因为没有学习音视频和流媒体的基础理论,就比如学习英语,不学习基本单词,而是天天听英语新闻,总也听不懂。 所以呢,一定要认真学习基础理论,然后再学习播放器、转码器、非编、流媒体直播、视频监控、等等。   梅老师从事音视频与流媒体行业18年;曾在永新视博、中科大洋、百度、美国Harris广播事业部等公司就职,经验丰富;曾亲手主导广电直播套项目,精通h.264/h.265/aac,曾亲自参与百度app上的网页播放器等实战产品。  目前身心自主创业,主要聚焦音视频+流媒体行业,精通音视频加密、流媒体在线转码快编等热门产品。  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值