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

相关推荐
深圳市青牛科技实业有限公司 小芋圆5 小时前
GC1809:高性能音频接收与转换芯片
科技·单片机·嵌入式硬件·音视频·智能家居·新能源
xx155802862xx5 小时前
Python如何给视频添加音频和字幕
java·python·音视频
Phoenixtree_DongZhao5 小时前
感知万物:图像与视频中识别、解释、描述与分割万物
音视频
LabVIEW开发7 小时前
LabVIEW音频测试分析
音视频·labview·labview知识
头发那是一根不剩了8 小时前
用 FFmpeg 实现 RTMP 推流直播
ffmpeg
有你有我OK8 小时前
FFmpeg介绍
ffmpeg
博思云为9 小时前
客户案例 | 短视频点播企业海外视频加速与成本优化:MediaPackage+Cloudfront 技术重构实践
重构·音视频
嘟嘟实验室10 小时前
SAM2Long本地部署,视频分割处理,绿幕抠像,超长视频支持
windows·python·音视频
dntktop10 小时前
音乐“穿梭机”AudioRelay,让你的音频“无缝对接”
运维·windows·电脑·音视频
灰灰的99613 小时前
基于ffmpeg+sdl的audio player
ffmpeg