FFMPEG

函数介绍

av_register_all

已被弃用,在高版本中可以不使用。

首先检测是不是调用过了,如果调用了,那么直接返回。 初始化所有的封装和解封装器(或称为复用器和解复用器),比如flv mp4 mp3

mov,但是在这个函数源码开始的时候会先调用avcodec_register_all(…)来注册所有的编码和解码器。那么什么是注册呢,就是把av_register_all中代码提到的也就是ffmpeg支持的所有封装格式加入到链表中去,等后面需要的时候再去这个链表中查找使用

avcodec_register_all

首先检测是否已经注册,如果注册,则返回。

初始化所有的编解码器,如h264,h265等,解码和编码器也维护一个链表用于存储所有支持的编解码器。

avformat_network_init

初始化所有的网络库,比如rtmp,rtsp等。

avformat_open_input

  • 所属库:libavformat(**lavf**)

  • 头文件:libavformat/avformat.h

  • 声明:
    功能:打开音视频资源(不翻译成流是为了与AVStream概念区分),并读取文件头,获取必要的信息。注意解码器并未打开,并未对音视频包进行解码。
    参数ps:该参数可空,为空时,本函数内部将创建AVFormatContext。在需要使用自定义的I/O层回调函数方法时,那就必须要在该函数外部创建AVFormatContext,并创建AVIOContext并赋值给AVFormatContext.pb成员。
    参数url:音视频资源的url
    参数fmt:如果不为空,则表示强制指定了输入文件的文件格式,不再进行文件格式的探测,如果为空,则本函数内部将对输入文件参数进行自动的探测。ffmpeg工具命令行中的-f选项用以指定该输入格式。
    _参数options_:该选项信息将被应用到AVFormatContext的成员字段,以及解封装器(AVInputFormat)的私有字段上去。

avformat_find_stream_Info

  • 所属库:libavformat(lavf)

  • 头文件:avformat.h

  • 声明: 从如下声明的解释可以获知以下几点信息
    1)该函数将读取媒体文件的音视频包去获取流信息。本函数常用于avformat_open_input()函数之后,在avformat_open_input()函数中会调用输入文件格式的read_header()函数,比如flv格式的flv_read_header()函数来读取文件头,由于flv格式的头很简单,只能知道是否存在音频流和视频流,获取不到流的编码信息,因此,对于flv格式来说,本函数就非常重要,本函数会读取flv文件中的音视频包,从这些包中获知流的编解码信息。对于没有文件头的MPEG格式来说存在同样的情况。
    2)本函数还会在MPEG的重复帧模式下计算真实的帧率。
    3)本函数不会改变文件的逻辑位置(即程序访问文件时的文件偏移offset),那些读取并用来做检测的数据包将被缓冲,并留作后续处理使用。
    4) 本函数的入参AVDictionary **options如果不为空,那么该入参是一个AVDictionary列表,第几个AVDictionary就作用于AVFormatContext.nb_streams的第几个流,如果在对应的流中找不到相应的选项,函数返回时,那么该入参中还会保留着没有找到的选项
    5)本函数不会保证打开所有的编解码器,因此,在函数返回时,选项非空是正常行为。
    6)本函数通过options来让用户决定哪些信息是需要的,因此,不浪费时间在获取一些用户根本需要的信息。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值