本文的内容是解码裸流,即从本地读取AAC码流,然后解码成PCM流的过程。通过调用 avcodec_find_decoder函数根据ID来查找注册的解码器,这里的ID在源码的libavcodec/codec_id.h文件中的AVCodecID枚举中有定义,我们用作音频AAC解码的ID使用AV_CODEC_ID_AAC即可。
流程下面附一张使用FFmpeg编码视频的流程图。使用该流程,不仅可以编码H.264的视频,而且可以编码MPEG4/MPEG2/VP8等等各种简单介绍一下流程中各个函数的意义:av_register_all():注册FFmpeg所有编解码器。
2:文字水印:编译的时候需要支持 FreeType、FontConfig、iconv,系统中需要有相关的子库,在 FFmpeg 中增加纯字母水印可以使用 drawtext 滤镜进行支持:相关使用实例:3:图片水印:为视频添加图片水印可以使用 movie 滤镜,相关参数:使用实例:4:生成画中画:可以通过 overlay 将 多个视频流、多个多媒体采集设备、多个视频文件合并到一个界面中,生成画中画的效果。
2) avformat_find_stream_info 从封装格式上下文中找到所有的媒体数据流AVStream,如音频流、视频流、字幕流等 AVStream中则包含了这些数据流的解码信息,如分辨率、采样率、解码器参数、帧率等等。原文链接:Android FFmpeg + OpenGL ES YUV Player - 鎺橀噾。