项目背景介绍
使用ffmpeg集成rtmpdump项目的librtmp库,推送rtmp流。视频编码采用h264,音频采用AAC。本项目的开发过程是一步一步来的,前面有一些编码,采集的准备知识。如果是0基础,建议从前面的博客开始学起
环境
- VS 版本: Visual Studio Professional 2022 (64 位)
- QT 版本: 5.12.0
- c++ 语言
- ffmpeg3.4 window编译的动态库
- fdk-aac v0.1.6,编译后集成到ffmpeg
- x264库
- librtmp库
- srs rtmp服务
联系我:
复制代码
- 邮箱: gu19860621@163.com
- 微信: p13071210551
代码
- 源码仓库:
https://github.com/SnailCoderGu/MediaPush.git
- 讲解视频地址:
https://www.bilibili.com/video/BV1qn4y1X7Uy/?vd_source=2ab45245b7588a1df906fbf0327a6921
直播效果
用源码方式启动srs
启动直播后的控制台打印的信息
在调用 avio_open 方法 wiresharek抓包的信息
这里就是rtmp连接的信息,关于rtmp协议我后面再讲解
在调用 avformat_write_header的抓包
这里是发送metadata和第一个sps,pps,和ASC帧
metadata
sps,pps信息,当然这里做了一些封装,具体理解要看协议
ASC 信息可以用于音频解码