FFMPEG 3.4.2 - ffmpeg源代码分析 (四)-

2018-12-01  本文已影响0人  RonZheng2010

1.前置说明

这里分析的是x264的测试程序x264的结构。命令如下:

./x264 -o akiyo.mkv --input-res 176x144 ~/yuv/akiyo_qcif.yuv

它读入文件akiyo_qcif.mkv,用h.264压缩编码后,写入akiyo.mkv。--input-res是输入文件的解析度。

2. 程序结构

x264分三个步骤:从命令行解析x264编码参数;编码;清理工作。

x264的参数有2个:x264_param_t和cli_opt_t,它们作为parse()的参数传递,并得到设置,然后传递给encode()。

3. parse() - 命令行解析

在x264_init_vid_filters()中,首先要调用x264_register_vid_filters(),将filters保存在全局链表first_filter中。然后它依次调用source、resize和depth的初始化函数init()。x264_init_vid_filter使用filter name在first_filter链表中找到filter,然后调用其init()函数。

4. encode() - 编码

x264_encoder_open()得到是一个x264_t类型变量。后面的encode_frame()要参考它。

get_frame()和encode_frame()使用了cli_pic_t和x264_picture_t两个变量保存帧。

在x264_encoder_encode()中,则使用x264_frame_t保存帧。

相关链接

FFMPEG 3.4.2 - ffmpeg源代码分析 (一)
FFMPEG 3.4.2 - ffmpeg源代码分析 (二)
FFMPEG 3.4.2 - ffmpeg源代码分析 (三)
FFMPEG 3.4.2 - ffmpeg源代码分析 (四)- x264
FFMPEG 3.4.2 - ffplay源代码分析 (一)
FFMPEG 3.4.2 - ffplay源代码分析 (二)
FFMPEG 3.4.2 - ffplay源代码分析 (三)

上一篇 下一篇

猜你喜欢

热点阅读