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

相关推荐
Say-hai3 小时前
音视频入门知识(七):时间戳及其音视频播放原理
音视频
Java搬砖组长3 小时前
youtube下载的视频怎么保存到本地
音视频
科技小E3 小时前
国标GB28181设备管理软件EasyGBS:P2P远程访问故障排查指南(设备端)
网络协议·智能路由器·音视频·p2p
神仙别闹4 小时前
基于C#实现的(WinForm)模拟操作系统文件管理系统
java·git·ffmpeg
Say-hai5 小时前
音视频入门知识(二)、图像篇
音视频
Fre丸子_17 小时前
ffmpeg之播放一个yuv视频
ffmpeg·音视频
9527华安17 小时前
FPGA多路MIPI转FPD-Link视频缩放拼接显示,基于IMX327+FPD953架构,提供2套工程源码和技术支持
fpga开发·架构·音视频
catmes19 小时前
设置浏览器声音或视频的自动播放策略
chrome·音视频·edge浏览器
yinqinggong19 小时前
从源码编译支持FFmpeg的OpenCV
opencv·ffmpeg
冰山一脚201320 小时前
ffmpeg添加sps,pps
ffmpeg