ffmpeg源码分析

1 简述

ffmpeg.exe 是一个非常快速的音频视频转换工具, 我们可以通过它进行格式,编码转换,还可以加滤镜。它可以读取普通文件,网络文件,甚至抓取设备数据。ffmpeg 转码的过程如下图所示:

ffmpeg 涉及的c 文件有三个:ffmpeg.c , ffmpeg_opt.c,cmdutils.c ,有关ffmpeg.exe 框架,引用雷神画的流程图:

从上图我们可以看到,main() 函数中调用的函数有:

1)av_register_all() 

2)show_banner() :打印ffmpeg 版本,编译器版本,已配置的编解码器,以及动态库的版本信息。

3)parse_options():解析命令行传入的参数,并根据传入的参数,去打开相应的stream,创建该输出的流。

4)transcode() : 转码,还支持滤镜的添加

5)exit_program()

下面我们围绕show_banner(), parse_option(), transcode() 三个函数来介绍ffmpeg.

2 show_banner()

 这函数在cmdutils.c 文件中实现的,我们每次使用FFMPEG 进行转码时,都会有下面的输出, 这些都是在show_banner() 函数中输出的。

函数十分简单,直接上源码。

void show_banner(int argc, char **argv, const OptionDef *options)
{
    int idx = locate_option(argc, argv, options, "version");
    if (hide_banner || idx)
        return;

    print_program_info (INDENT|SHOW_COPYRIGHT, AV_LOG_INFO);
    print_all_libs_info(INDENT|SHOW_CONFIG,  AV_LOG_INFO);
    print_all_libs_info(INDENT|SHOW
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值