深入理解FFmpeg--libavformat接口使用

libavformat(lavf)是一个用于处理各种媒体容器格式的库。它的主要两个目的是去复用(即将媒体文件拆分为组件流)和复用的反向过程(以指定的容器格式写入提供的数据)。它还有一个I/O模块,支持多种访问数据的协议(如文件、tcp、http等)。在使用lavf之前,您需要调用av_register_all()来注册所有已编译的复用器、解复用器和协议。除非您绝对确定不会使用libavformat的网络功能,否则还应该调用avformat_network_init();

一、媒体流封装(Muxing)

媒体流封装主要是指以AVPackets的形式获取编码后的数据后,以指定的容器格式将其写入到文件或者其他方式输出到字节流中。

Muxing实际执行的主要API有:

初始化:avformat_alloc_output_context2();

创建媒体流(如果有的话):avformat_new_stream();

写文件头:avformat_write_header();

写数据包:av_write_frame()/av_interleaved_write_frame();

写文件尾:av_write_trailer();

相关推荐
八月的雨季 最後的冰吻6 小时前
FFmepg-- 38-Jitter Buffer固定值c程序分析
服务器·音视频
简佐义的博客7 小时前
转录组数据分析实战,仅需99元(视频版)
大数据·人工智能·数据挖掘·数据分析·音视频
斯幽柏雷科技7 小时前
【Unity】解决Win10无法播放H265(HEVC)视频
音视频
ai产品老杨8 小时前
打破异构算力壁垒:基于GB28181/RTSP与Docker容器化的企业级AI视频平台架构解析(附源码交付方案)
人工智能·docker·音视频
AI科技8 小时前
清唱歌词的音频变完整歌曲,原创音乐人用AI编曲软件作编曲伴奏一步到位
人工智能·音视频
木斯佳8 小时前
前端八股文面经大全:字节跳动音视频前端一面·下(2026-03-03)·面经深度解析
前端·音视频·状态模式
EasyDSS8 小时前
音视频技术迭代下EasyDSS直播点播视频会议能力的发展方向与价值升级
音视频·webrtc·语音识别·点播技术·流媒体直播
AI科技10 小时前
AI编曲软件助力原创音乐人,可以给清唱歌词的音频制作编曲伴奏,完整快速出歌曲
人工智能·音视频
西***634710 小时前
无死机、高流畅!FPGA架构高清画面分割器解锁多场景应用新可能
分布式·音视频
大模型任我行11 小时前
字节:14B模型实时生成长视频
人工智能·语言模型·音视频·论文笔记