深入理解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();

相关推荐
木斯佳10 小时前
鸿蒙开发入门指南:前端开发者快速理解视频编码概念——输入模式
华为·音视频·harmonyos
EasyDSS14 小时前
私有化音视频系统/视频直播点播/高清点播/云点播/云直播EasyDSS优化升级重塑智慧文旅直播运营新体系
音视频
CV实验室16 小时前
Remote Sensing 29个SITS基准数据集综述:多模态遥感分类的新起点
人工智能·深度学习·计算机视觉·音视频
EasyDSS18 小时前
安全可控、全场景适配:私有化音视频系统/视频直播点播EasyDSS一站式云平台重构视频协作新模式
安全·重构·音视频
superantwmhsxx19 小时前
Seedance 2.0 初探:从文生视频到可控创作的 AI 视频工作流
人工智能·计算机视觉·音视频
EasyDSS19 小时前
私有化视频会议系统/企业级融媒体平台EasyDSS优化升级打造轻量化高效视频协作场景
网络·音视频·媒体
searchforAI19 小时前
网盘视频转文字后,如何高效做笔记并长期归档?
人工智能·笔记·学习·ai·音视频·语音识别·网盘
兆。20 小时前
LangChain语音音频集成指南:面向多媒体开发者
langchain·音视频
“码”力全开20 小时前
解耦品牌壁垒:基于 Docker 与边缘计算的高并发视频中台架构(支持 GB28181/RTSP 统一接入与源码交付)
docker·音视频·边缘计算
EasyCVR21 小时前
监控“孤岛”困局:国标GB28181视频监控平台EasyCVR一站式视频融合平台实现视频系统统一管理
android·音视频