本文的内容是解码裸流,即从本地读取AAC码流,然后解码成PCM流的过程。通过调用 avcodec_find_decoder函数根据ID来查找注册的解码器,这里的ID在源码的libavcodec/codec_id.h文件中的AVCodecID枚举中有定义,我们用作音频AAC解码的ID使用AV_CODEC_ID_AAC即可。
2:文字水印:编译的时候需要支持 FreeType、FontConfig、iconv,系统中需要有相关的子库,在 FFmpeg 中增加纯字母水印可以使用 drawtext 滤镜进行支持:相关使用实例:3:图片水印:为视频添加图片水印可以使用 movie 滤镜,相关参数:使用实例:4:生成画中画:可以通过 overlay 将 多个视频流、多个多媒体采集设备、多个视频文件合并到一个界面中,生成画中画的效果。
色彩平衡 ffplay -i jidu.mp4 -vf curves=vintage 色彩变幻 ffplay -i jidu.mp4 -vf hue=“H=2PIt: s=sin+1“ 彩色转换黑白 ffplay -i jidu.mp4 -vf lutyuv=”u=128:v=128“
从代码层面以及自由度来说,用ffmpeg来写全能播放组件是最佳方案,尽管已经有优秀的vlc/mpv等方案可以直接用,但是vlc/mpv对标主要是播放器应用层面,其他层面比如视频监控行业领域就比较鸡肋,所以还是从底层一点一滴做解码编码会让自己更熟练。