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

相关推荐
EasyCVR2 小时前
EasyRTC嵌入式音视频通话SDK:基于ICE与STUN/TURN的实时音视频通信解决方案
人工智能·音视频·webrtc·实时音视频·h.265
云空2 小时前
《FastRTC:开启实时音视频应用开发新时代》
python·实时音视频
九丶黎2 小时前
爬虫案例七Python协程爬取视频
爬虫·python·音视频
是小果果蛋儿啊3 小时前
H.264,H.265,H.266标准技术改进
h.265·h.264·h.266
羑悻的小杀马特3 小时前
通义万相 2.1 + 蓝耘算力,AI 视频生成的梦幻组合
人工智能·音视频·ai大模型·蓝耘
曦月合一10 小时前
SSM架构 +Nginx+FFmpeg实现rtsp流转hls流,在前端html上实现视频播放
nginx·架构·ffmpeg·摄像头·实时预览
悟纤15 小时前
Luno Api - AI音乐开发「人声伴奏分离 – 自定义音频」「Luno Api系列|AI音乐API」第7篇
人工智能·音视频·suno api·luno api·ai music·luno
Black蜡笔小新19 小时前
实时音视频通信SDK/API:EasyRTC嵌入式SDK去中心化WebP2P架构设计,Linux、ARM、小程序适配
linux·去中心化·webrtc·实时音视频·p2p·webp2p
DogDaoDao20 小时前
探秘沃尔什-哈达玛变换(WHT)原理
图像处理·数学·音视频·hadamard·哈达玛变换·wht·视频编码器
挣扎与觉醒中的技术人21 小时前
OpenCV视频解码性能优化十连击(实测帧率提升300%)
人工智能·opencv·ffmpeg·音视频·实时音视频·视频编解码·外包转型