ffmpeg
文章平均质量分 61
Adonis_sz
这个作者很懒,什么都没留下…
展开
-
从头用脚分析FFmpeg源码 - av_interleaved_write_frame | av_write_frame
本文所使用的是FFmpeg n4.4的源码,所有分析均来自博主瞎猜,如果有误,欢迎批评指正。原创 2023-04-10 15:17:57 · 885 阅读 · 0 评论 -
从头用脚分析FFmpeg源码 - av_read_frame
从AVInputFormat或者raw_packet_buffer中读取一个AVPacket,如果raw_packet_buffer中有,就从raw_packet_buffer中读取,没有的话,只能从对应的AVInputFormat中读取。)分析出视频一帧(或音频若干帧),返回,下次进入循环的时候,如果上次的数据没有完全取完,则st = s->cur_st;读取一个AVPacket,如果buffer里面存在,就从buffer中读,没有就调用read_frame_internal函数,从流中读。原创 2023-03-29 10:10:28 · 467 阅读 · 0 评论 -
从头用脚分析FFmpeg源码 - avformat_write_header
看源码之后感觉申请数据没发现什么,这个函数最重要的就干了两个事情,第一个是调用avformat_init_output,初始化mutex,实际上大部分都是检查格式,然后写入options。这个函数就三个作用,第一个作用是把options设置到AVFormatContext中,第二个作用就是遍历所有的AVStream,然后检测AVStream中的参数是否正确。其实就是init_muxer的一个封装,avformat_init_output在回输出多个文件的格式中会调用多次,比如m3u8格式。原创 2023-03-22 18:02:21 · 464 阅读 · 0 评论 -
从头用脚分析FFmpeg源码 - avcodec_open2
worker线程函数,就是等待ThreadContext中的信号量,如果等到了,就判断当前唤醒的是否是自己这个task_index,如果唤醒的是自己这个task,就进行编码操作,编码用的来源frame和输出pkt,都是来自于ThreadContext的tasks数组中,如果不是就继续等待下一个信号量。代码贼多,和avformat_find_stream_info有的一拼,但实际上没干很多东西,基本都是在malloc然后check,需要注意的就是多线程编码。按照惯例,看FFmpeg的解释。原创 2023-03-20 16:26:33 · 370 阅读 · 0 评论 -
从头用脚分析FFmpeg源码 - avcodec_alloc_context3
这个函数平平无奇,就是分配了一块内存给AVCodecContext,然后调用init_context_defaults初始化了这个函数。avcodec_alloc_context3主要就是生成一个AVCodecContext,然后初始化。按照惯例,先看FFmpeg怎么解释的。初始化函数也平平无奇。原创 2023-03-15 17:24:56 · 606 阅读 · 0 评论 -
从头用脚分析FFmpeg源码 --- avcodec_find_decoder | avcodec_find_encoder
实际调用的是find_codec函数,输入AVCodecID和一个判断函数,avcodec_find_encoder中输入函数指针作用是编解码器是否为编码器,avcodec_find_decoder中则是判断是否为解码器。就很简单,就是根据输入的AVCodecID类型,找到对应的解码器。根据输入的AVCodecID类型,找到对应的编码器。原创 2023-03-15 16:43:31 · 173 阅读 · 0 评论 -
从头用脚分析FFmpeg源码 ---avformat_alloc_output_context2
从头用脚分析FFmpeg源码 ---avformat_alloc_output_context2原创 2023-03-15 14:08:05 · 216 阅读 · 0 评论 -
从头用脚分析FFmpeg源码 --- avformat_find_stream_info
从头用脚分析FFmpeg源码 --- avformat_find_stream_info原创 2023-03-15 14:07:38 · 167 阅读 · 0 评论 -
从头用脚分析FFmpeg源码 --- avformat_open_input
本文所使用的是FFmpeg n4.4的源码,所有分析均来自博主瞎猜,如果有误,欢迎批评指正。原创 2023-03-01 16:15:34 · 729 阅读 · 2 评论 -
FFmpeg 生成mp4时 Annexb转Avcc失败
FFmpeg 生成mp4时 Annexb转Avcc失败原创 2023-02-23 18:23:19 · 512 阅读 · 2 评论 -
FFmpeg转码实战
FFmpeg转码源码实现原创 2022-06-06 17:43:25 · 398 阅读 · 0 评论 -
MacOS编译ffmpeg 出现 ERROR: openssl not found
今天心血来潮,突然想开始研究ffmpeg的源码,所有依赖库下载完成后,在用一下命令configure的时候sh configure --prefix=/usr/local/ffmpeg \--enable-gpl \--enable-version3 \--enable-nonfree \--enable-postproc \--enable-libass \--disable-libcelt \--enable-libfdk-aac \--enable-libfreetype \--e原创 2022-03-18 10:39:41 · 5763 阅读 · 0 评论